From aa65bd478a9860ff4d2490bb49049c78654e811d Mon Sep 17 00:00:00 2001 From: Mike Date: Mon, 26 Jun 2023 11:38:48 +0200 Subject: [PATCH] fix(startup): "nvim -l foo.lua" may not set arg0 #24161 Problem: Using "nvim -l args.lua" without passing extra script args, does not set `_G.arg[0]`. Steps to reproduce: ``` cat > args.lua<luaf = argv[0]; argc--; - if (argc > 0) { // Lua args after "-l ". + if (argc >= 0) { // Lua args after "-l ". parmp->lua_arg0 = parmp->argc - argc; argc = 0; } diff --git a/test/functional/core/startup_spec.lua b/test/functional/core/startup_spec.lua index 58bf7f8681..ef3c2eadd9 100644 --- a/test/functional/core/startup_spec.lua +++ b/test/functional/core/startup_spec.lua @@ -144,6 +144,18 @@ describe('startup', function() end) 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] assert_l_out([[ bufs: