aboutsummaryrefslogtreecommitdiff
path: root/lua.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2002-06-18 14:43:49 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2002-06-18 14:43:49 -0300
commit5893fcb71a81fe1e7857cab6938904de9f91830b (patch)
treed3993b45514456bfa308a041664e49791b3fad55 /lua.c
parenteec0905173702423569222bfabae1eb0500b4626 (diff)
downloadlua-5893fcb71a81fe1e7857cab6938904de9f91830b.tar.gz
lua-5893fcb71a81fe1e7857cab6938904de9f91830b.tar.bz2
lua-5893fcb71a81fe1e7857cab6938904de9f91830b.zip
accept option arguments without spaces (e.g. "-eprint(a)")
Diffstat (limited to 'lua.c')
-rw-r--r--lua.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/lua.c b/lua.c
index dbbd09a2..9b8f584e 100644
--- a/lua.c
+++ b/lua.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lua.c,v 1.90 2002/06/06 12:40:22 roberto Exp roberto $ 2** $Id: lua.c,v 1.91 2002/06/18 17:12:05 roberto Exp roberto $
3** Lua stand-alone interpreter 3** Lua stand-alone interpreter
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -301,27 +301,29 @@ static int handle_argv (char *argv[], int *toclose) {
301 break; 301 break;
302 } 302 }
303 case 'e': { 303 case 'e': {
304 i++; 304 const char *chunk = argv[i] + 2;
305 if (argv[i] == NULL) { 305 if (*chunk == '\0') chunk = argv[++i];
306 if (chunk == NULL) {
306 print_usage(); 307 print_usage();
307 return EXIT_FAILURE; 308 return EXIT_FAILURE;
308 } 309 }
309 if (dostring(argv[i], "=prog. argument") != 0) { 310 if (dostring(chunk, "=prog. argument") != 0) {
310 fprintf(stderr, "%s: error running argument `%.99s'\n", 311 fprintf(stderr, "%s: error running argument `%.99s'\n",
311 progname, argv[i]); 312 progname, chunk);
312 return EXIT_FAILURE; 313 return EXIT_FAILURE;
313 } 314 }
314 break; 315 break;
315 } 316 }
316 case 'f': { 317 case 'f': {
317 i++; 318 const char *filename = argv[i] + 2;
318 if (argv[i] == NULL) { 319 if (*filename == '\0') filename = argv[++i];
320 if (filename == NULL) {
319 print_usage(); 321 print_usage();
320 return EXIT_FAILURE; 322 return EXIT_FAILURE;
321 } 323 }
322 getargs(argv+i); /* collect remaining arguments */ 324 getargs(argv+i); /* collect remaining arguments */
323 lua_setglobal(L, "arg"); 325 lua_setglobal(L, "arg");
324 return file_input(argv[i]); /* stop scanning arguments */ 326 return file_input(filename); /* stop scanning arguments */
325 } 327 }
326 case 's': { 328 case 's': {
327 fprintf(stderr, 329 fprintf(stderr,