wdye: pass script arguments
This commit is contained in:
parent
017cb1d570
commit
0f20cce9c8
@ -1376,9 +1376,9 @@ xlua_panic (lua_State *L)
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
if (argc != 2)
|
if (argc < 2)
|
||||||
{
|
{
|
||||||
fprintf (stderr, "Usage: %s program.lua\n", argv[0]);
|
fprintf (stderr, "Usage: %s program.lua [args...]\n", argv[0]);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1399,16 +1399,20 @@ main (int argc, char *argv[])
|
|||||||
luaL_setfuncs (g.L, xlua_pattern_table, 0);
|
luaL_setfuncs (g.L, xlua_pattern_table, 0);
|
||||||
lua_pop (g.L, 1);
|
lua_pop (g.L, 1);
|
||||||
|
|
||||||
const char *path = argv[1];
|
luaL_checkstack (g.L, argc, NULL);
|
||||||
|
|
||||||
lua_pushcfunction (g.L, xlua_error_handler);
|
lua_pushcfunction (g.L, xlua_error_handler);
|
||||||
if (luaL_loadfile (g.L, path)
|
if (luaL_loadfile (g.L, strcmp (argv[1], "-") ? argv[1] : NULL))
|
||||||
|| lua_pcall (g.L, 0, 0, -2))
|
goto error;
|
||||||
{
|
for (int i = 2; i < argc; i++)
|
||||||
|
lua_pushstring (g.L, argv[i]);
|
||||||
|
if (lua_pcall (g.L, argc - 2, 0, 1))
|
||||||
|
goto error;
|
||||||
|
lua_close (g.L);
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
error:
|
||||||
print_error ("%s", lua_tostring (g.L, -1));
|
print_error ("%s", lua_tostring (g.L, -1));
|
||||||
lua_pop (g.L, 1);
|
|
||||||
lua_close (g.L);
|
lua_close (g.L);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
lua_close (g.L);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user