| 74 | #define IS(s) (strcmp(argv[i],s)==0) |
| 75 | |
| 76 | static int doargs(int argc, char* argv[]) |
| 77 | { |
| 78 | int i; |
| 79 | int version=0; |
| 80 | if (argv[0]!=NULL && *argv[0]!=0) progname=argv[0]; |
| 81 | for (i=1; i<argc; i++) |
| 82 | { |
| 83 | if (*argv[i]!='-') /* end of options; keep it */ |
| 84 | break; |
| 85 | else if (IS("--")) /* end of options; skip it */ |
| 86 | { |
| 87 | ++i; |
| 88 | if (version) ++version; |
| 89 | break; |
| 90 | } |
| 91 | else if (IS("-")) /* end of options; use stdin */ |
| 92 | break; |
| 93 | else if (IS("-l")) /* list */ |
| 94 | ++listing; |
| 95 | else if (IS("-o")) /* output file */ |
| 96 | { |
| 97 | output=argv[++i]; |
| 98 | if (output==NULL || *output==0 || (*output=='-' && output[1]!=0)) |
| 99 | usage("'-o' needs argument"); |
| 100 | if (IS("-")) output=NULL; |
| 101 | } |
| 102 | else if (IS("-p")) /* parse only */ |
| 103 | dumping=0; |
| 104 | else if (IS("-s")) /* strip debug information */ |
| 105 | stripping=1; |
| 106 | else if (IS("-v")) /* show version */ |
| 107 | ++version; |
| 108 | else /* unknown option */ |
| 109 | usage(argv[i]); |
| 110 | } |
| 111 | if (i==argc && (listing || !dumping)) |
| 112 | { |
| 113 | dumping=0; |
| 114 | argv[--i]=Output; |
| 115 | } |
| 116 | if (version) |
| 117 | { |
| 118 | printf("%s\n",LUA_COPYRIGHT); |
| 119 | if (version==argc-1) exit(EXIT_SUCCESS); |
| 120 | } |
| 121 | return i; |
| 122 | } |
| 123 | |
| 124 | #define FUNCTION "(function()end)();" |
| 125 | |