fix: always set arg0 to lua scripts

Sets script's basename when no extra arguments are given
This commit is contained in:
Mike
2023-06-26 08:44:54 +02:00
parent cd6458123f
commit bb9ee80a39
2 changed files with 13 additions and 1 deletions

View File

@@ -1361,7 +1361,7 @@ static void command_line_scan(mparm_T *parmp)
} }
parmp->luaf = argv[0]; parmp->luaf = argv[0];
argc--; argc--;
if (argc > 0) { // Lua args after "-l <file>". if (argc >= 0) { // Lua args after "-l <file>".
parmp->lua_arg0 = parmp->argc - argc; parmp->lua_arg0 = parmp->argc - argc;
argc = 0; argc = 0;
} }

View File

@@ -144,6 +144,18 @@ describe('startup', function()
end) end)
it('sets _G.arg', function() it('sets _G.arg', function()
-- nvim -l foo.lua
assert_l_out([[
bufs:
nvim args: 3
lua args: {
[0] = "test/functional/fixtures/startup.lua"
}]],
{},
{}
)
eq(0, eval('v:shell_error'))
-- nvim -l foo.lua [args] -- nvim -l foo.lua [args]
assert_l_out([[ assert_l_out([[
bufs: bufs: