aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/textadept.c21
1 files changed, 5 insertions, 16 deletions
diff --git a/src/textadept.c b/src/textadept.c
index 8bc8c2bf..a3e4b4ee 100644
--- a/src/textadept.c
+++ b/src/textadept.c
@@ -273,22 +273,11 @@ static int a_command_line(GApplication*_, GApplicationCommandLine *cmdline,
int argc = 0;
char **argv = g_application_command_line_get_arguments(cmdline, &argc);
if (argc > 1) {
- lua_getglobal(lua, "args");
- if (lua_istable(lua, -1)) {
- lua_getfield(lua, -1, "process");
- if (lua_isfunction(lua, -1)) {
- lua_newtable(lua);
- const char *cwd = g_application_command_line_get_cwd(cmdline);
- lua_pushstring(lua, cwd ? cwd : ""), lua_rawseti(lua, -2, -1);
- for (int i = 0; i < argc; i++)
- lua_pushstring(lua, argv[i]), lua_rawseti(lua, -2, i);
- if (lua_pcall(lua, 1, 0, 0) != LUA_OK) {
- lL_event(lua, "error", LUA_TSTRING, lua_tostring(lua, -1), -1);
- lua_pop(lua, 1); // error message
- }
- } else lua_pop(lua, 1); // non-function
- }
- lua_pop(lua, 1); // args
+ lua_newtable(lua);
+ const char *cwd = g_application_command_line_get_cwd(cmdline);
+ lua_pushstring(lua, cwd ? cwd : ""), lua_rawseti(lua, -2, -1);
+ while (--argc) lua_pushstring(lua, argv[argc]), lua_rawseti(lua, -2, argc);
+ lL_event(lua, "cmd_line", LUA_TTABLE, luaL_ref(lua, LUA_REGISTRYINDEX), -1);
}
g_strfreev(argv);
return (gtk_window_present(GTK_WINDOW(window)), 0);