From 46ca2365256e9d9fa7d845d6757b15ea96e47fbc Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Tue, 4 Aug 2026 15:45:45 +0200 Subject: fix(cwd): validate getcwd(…, -1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/nvim/eval.lua | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/nvim/eval.lua') diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index 9384b03933..4df067481e 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -4116,9 +4116,8 @@ M.funcs = { directory of the window indicated by {winnr}. If {bufnr} is provided, {winnr} and {tabnr} must be -1 and the - working directory of that buffer is returned. If {bufnr} is - -1, it is ignored, and the global working directory is - returned. + working directory of that buffer is returned. An argument may + be -1 only if all preceding arguments are -1. Examples of buffer usage: >vim getcwd(-1, -1, 0) " Get current buffer's directory getcwd(-1, -1, 3) " Get directory of buffer #3 @@ -5429,15 +5428,15 @@ M.funcs = { args = { 0, 3 }, base = 1, desc = [=[ - Checks whether the window, tabpage or buffer has set a local + Checks whether the tabpage, window or buffer has set a local working directory. Returns 1 when the window has set a local path via |:lcd|, or when {winnr} is -1 and the tabpage has set a local path via |:tcd|, or when {winnr} and {tabnr} are -1 and {bufnr} has set a local path via |:bcd|, otherwise 0. Tabs, windows and buffers are identified by their respective - numbers, 0 means current tab or window. Missing argument - implies 0. Thus the following are equivalent: >vim + numbers, 0 means current tab, window or buffer. Missing + argument implies 0. Thus the following are equivalent: >vim echo haslocaldir() echo haslocaldir(0) echo haslocaldir(0, 0) @@ -5446,7 +5445,8 @@ M.funcs = { {winnr} is a |window-number| or |window-ID|. If {winnr} is -1 it is ignored, only the tab is resolved. If {bufnr} is provided, {winnr} and {tabnr} must be -1 and - only the buffer is resolved. + only the buffer is resolved. An argument may be -1 only if + all preceding arguments are -1. Examples of buffer usage: >vim haslocaldir(-1, -1, 0) " Current buf has a local directory? haslocaldir(-1, -1, 3) " Buf #3 has a local directory? -- cgit