** Create the 'arg' table, which stores all arguments from the ** command line ('argv'). It should be aligned so that, at index 0, ** it has 'argv[script]', which is the script name. The arguments ** to the script (everything after 'script') go to positive indices; ** other arguments (before the script name) go to negative indices. ** If there is no script name, assume interpreter's name as base.
| 157 | ** If there is no script name, assume interpreter's name as base. |
| 158 | */ |
| 159 | static void createargtable (lua_State *L, char **argv, int argc, int script) { |
| 160 | int i, narg; |
| 161 | if (script == argc) script = 0; /* no script name? */ |
| 162 | narg = argc - (script + 1); /* number of positive indices */ |
| 163 | lua_createtable(L, narg, script + 1); |
| 164 | for (i = 0; i < argc; i++) { |
| 165 | lua_pushstring(L, argv[i]); |
| 166 | lua_rawseti(L, -2, i - script); |
| 167 | } |
| 168 | lua_setglobal(L, "arg"); |
| 169 | } |
| 170 | |
| 171 | |
| 172 | static int dochunk (lua_State *L, int status) { |
no test coverage detected