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 | |
| parent | eec0905173702423569222bfabae1eb0500b4626 (diff) | |
| download | lua-5893fcb71a81fe1e7857cab6938904de9f91830b.tar.gz lua-5893fcb71a81fe1e7857cab6938904de9f91830b.tar.bz2 lua-5893fcb71a81fe1e7857cab6938904de9f91830b.zip | |
accept option arguments without spaces (e.g. "-eprint(a)")
| -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, |
