diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-02-14 19:47:50 -0200 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-02-14 19:47:50 -0200 |
| commit | 2f8e3c5543bf9bf1fb50eaf3742fec1c6f940f44 (patch) | |
| tree | 61ba7b7a798690780c1630cb7f15dab3ecaac088 | |
| parent | b0a5e156b8e6913c6eb8ed65ab28576b8b88f461 (diff) | |
| download | lua-2f8e3c5543bf9bf1fb50eaf3742fec1c6f940f44.tar.gz lua-2f8e3c5543bf9bf1fb50eaf3742fec1c6f940f44.tar.bz2 lua-2f8e3c5543bf9bf1fb50eaf3742fec1c6f940f44.zip | |
prints any results returned by chunk
| -rw-r--r-- | lua.c | 14 |
1 files changed, 6 insertions, 8 deletions
| @@ -201,7 +201,7 @@ static int trap_eof (lua_State *l) { | |||
| 201 | } | 201 | } |
| 202 | 202 | ||
| 203 | 203 | ||
| 204 | static int load_string (int *toprint) { | 204 | static int load_string (void) { |
| 205 | lua_getglobal(L, LUA_ERRORMESSAGE); | 205 | lua_getglobal(L, LUA_ERRORMESSAGE); |
| 206 | lua_pushvalue(L, 1); | 206 | lua_pushvalue(L, 1); |
| 207 | lua_setglobal(L, LUA_ERRORMESSAGE); | 207 | lua_setglobal(L, LUA_ERRORMESSAGE); |
| @@ -214,8 +214,7 @@ static int load_string (int *toprint) { | |||
| 214 | lua_setglobal(L, LUA_ERRORMESSAGE); | 214 | lua_setglobal(L, LUA_ERRORMESSAGE); |
| 215 | return 0; | 215 | return 0; |
| 216 | } | 216 | } |
| 217 | *toprint = !incomplete && buffer[0] == '='; | 217 | if (!incomplete && buffer[0] == '=') { |
| 218 | if (*toprint) { | ||
| 219 | buffer[0] = ' '; | 218 | buffer[0] = ' '; |
| 220 | lua_pushstring(L, "return"); | 219 | lua_pushstring(L, "return"); |
| 221 | } | 220 | } |
| @@ -244,12 +243,11 @@ static int lcall (lua_State *l, const char *name) { | |||
| 244 | 243 | ||
| 245 | 244 | ||
| 246 | static void manual_input (int version) { | 245 | static void manual_input (int version) { |
| 247 | int toprint = 0; | ||
| 248 | if (version) print_version(); | 246 | if (version) print_version(); |
| 249 | lua_pushcfunction(L, trap_eof); /* set up handler for incomplete lines */ | 247 | lua_pushcfunction(L, trap_eof); /* set up handler for incomplete lines */ |
| 250 | while (load_string(&toprint)) { | 248 | while (load_string()) { |
| 251 | ldo(lcall, NULL, 0); | 249 | ldo(lcall, NULL, 0); |
| 252 | if (toprint && lua_gettop(L) > 1) { /* any result to print? */ | 250 | if (lua_gettop(L) > 1) { /* any result to print? */ |
| 253 | lua_getglobal(L, "print"); | 251 | lua_getglobal(L, "print"); |
| 254 | lua_insert(L, 2); | 252 | lua_insert(L, 2); |
| 255 | lua_call(L, lua_gettop(L)-2, 0); | 253 | lua_call(L, lua_gettop(L)-2, 0); |
| @@ -355,8 +353,8 @@ static void openstdlibs (lua_State *l) { | |||
| 355 | int main (int argc, char *argv[]) { | 353 | int main (int argc, char *argv[]) { |
| 356 | int status; | 354 | int status; |
| 357 | int toclose = 0; | 355 | int toclose = 0; |
| 358 | (void)argc; /* unused parameter: avoid warnings */ | 356 | (void)argc; /* to avoid warnings */ |
| 359 | L = lua_open(0); /* create state */ | 357 | L = lua_open(); /* create state */ |
| 360 | LUA_USERINIT(L); /* open libraries */ | 358 | LUA_USERINIT(L); /* open libraries */ |
| 361 | register_getargs(argv); /* create `getargs' function */ | 359 | register_getargs(argv); /* create `getargs' function */ |
| 362 | status = handle_argv(argv+1, &toclose); | 360 | status = handle_argv(argv+1, &toclose); |
