diff src/filepath.c @ 26173:460790b520dd v8.2.3618

patch 8.2.3618: getcwd() is unclear about how 'autochdir' is used Commit: https://github.com/vim/vim/commit/851c7a699ae00bdc14a4db874cf722b7b7393b53 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Nov 18 20:47:31 2021 +0000 patch 8.2.3618: getcwd() is unclear about how 'autochdir' is used Problem: getcwd() is unclear about how 'autochdir' is used. Solution: Update the help for getcwd(). Without any arguments always return the actual current directory. (closes #9142)
author Bram Moolenaar <Bram@vim.org>
date Thu, 18 Nov 2021 22:00:06 +0100
parents e8e2c4d33b9b
children bce848ec8b1b
line wrap: on
line diff
--- a/src/filepath.c
+++ b/src/filepath.c
@@ -1102,13 +1102,15 @@ f_getcwd(typval_T *argvars, typval_T *re
     else
 	wp = find_tabwin(&argvars[0], &argvars[1], &tp);
 
-    if (wp != NULL && wp->w_localdir != NULL)
+    if (wp != NULL && wp->w_localdir != NULL
+					   && argvars[0].v_type != VAR_UNKNOWN)
 	rettv->vval.v_string = vim_strsave(wp->w_localdir);
-    else if (tp != NULL && tp->tp_localdir != NULL)
+    else if (tp != NULL && tp->tp_localdir != NULL
+					   && argvars[0].v_type != VAR_UNKNOWN)
 	rettv->vval.v_string = vim_strsave(tp->tp_localdir);
     else if (wp != NULL || tp != NULL || global)
     {
-	if (globaldir != NULL)
+	if (globaldir != NULL && argvars[0].v_type != VAR_UNKNOWN)
 	    rettv->vval.v_string = vim_strsave(globaldir);
 	else
 	{