mirror of
https://github.com/neovim/neovim.git
synced 2025-09-29 06:28:35 +00:00
feat(lua): send "--" literally to Lua "-l" script
Problem: When "-l" is followed by "--", we stop sending args to the Lua script and treat "--" in the usual way. This was for flexibility but didn't have a strong use-case, and has these problems: - prevents Lua "-l" scripts from handling "--" in their own way. - complicates the startup logic (must call nlua_init before command_line_scan) Solution: Don't treat "--" specially if it follows "-l".
This commit is contained in:
@@ -275,14 +275,14 @@ int main(int argc, char **argv)
|
||||
// Check if we have an interactive window.
|
||||
check_and_set_isatty(¶ms);
|
||||
|
||||
// TODO: should we try to keep param scan before this?
|
||||
nlua_init();
|
||||
TIME_MSG("init lua interpreter");
|
||||
|
||||
// Process the command line arguments. File names are put in the global
|
||||
// argument list "global_alist".
|
||||
command_line_scan(¶ms);
|
||||
|
||||
nlua_init();
|
||||
nlua_set_argv(argv, argc, params.lua_arg0);
|
||||
TIME_MSG("init lua interpreter");
|
||||
|
||||
if (embedded_mode) {
|
||||
const char *err;
|
||||
if (!channel_from_stdio(true, CALLBACK_READER_INIT, &err)) {
|
||||
@@ -1318,14 +1318,9 @@ static void command_line_scan(mparm_T *parmp)
|
||||
}
|
||||
parmp->luaf = argv[0];
|
||||
argc--;
|
||||
argv++;
|
||||
// Lua args after "-l <file>" (upto "--").
|
||||
int l_argc = nlua_set_argv(argv, argc);
|
||||
assert(l_argc >= 0);
|
||||
argc = argc - l_argc;
|
||||
if (argc > 0) { // Found "--".
|
||||
argv = argv + l_argc;
|
||||
had_minmin = true;
|
||||
if (argc > 0) { // Lua args after "-l <file>".
|
||||
parmp->lua_arg0 = parmp->argc - argc;
|
||||
argc = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1438,6 +1433,7 @@ static void init_params(mparm_T *paramp, int argc, char **argv)
|
||||
paramp->server_addr = NULL;
|
||||
paramp->remote = 0;
|
||||
paramp->luaf = NULL;
|
||||
paramp->lua_arg0 = -1;
|
||||
}
|
||||
|
||||
/// Initialize global startuptime file if "--startuptime" passed as an argument.
|
||||
|
Reference in New Issue
Block a user