diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-06-18 14:43:49 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-06-18 14:43:49 -0300 |
commit | 5893fcb71a81fe1e7857cab6938904de9f91830b (patch) | |
tree | d3993b45514456bfa308a041664e49791b3fad55 /lua.c | |
parent | eec0905173702423569222bfabae1eb0500b4626 (diff) | |
download | lua-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.c | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -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, |