summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-06-01 16:26:19 +0200
committerBram Moolenaar <Bram@vim.org>2020-06-01 16:26:19 +0200
commit950587242cad52d067a15f0f0c83528a28f75731 (patch)
treeff69b30a48c1bca712733f8ad48944d79de2e74e /src
parent6c9ba0428041d5316871245be38c13faa0107026 (diff)
patch 8.2.0876: :pwd does not give a hint about the scope of the directoryv8.2.0876
Problem: :pwd does not give a hint about the scope of the directory Solution: Make ":verbose pwd" show the scope. (Takuya Fujiwara, closes #5469)
Diffstat (limited to 'src')
-rw-r--r--src/ex_docmd.c20
-rw-r--r--src/testdir/test_cd.vim3
-rw-r--r--src/version.c2
3 files changed, 21 insertions, 4 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 7b53e6c6a6..ea2763e442 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -6619,9 +6619,10 @@ post_chdir(cdscope_T scope)
/*
* Change directory function used by :cd/:tcd/:lcd Ex commands and the
- * chdir() function. If 'winlocaldir' is TRUE, then changes the window-local
- * directory. If 'tablocaldir' is TRUE, then changes the tab-local directory.
- * Otherwise changes the global directory.
+ * chdir() function.
+ * scope == CDSCOPE_WINDOW: changes the window-local directory
+ * scope == CDSCOPE_TABPAGE: changes the tab-local directory
+ * Otherwise: changes the global directory
* Returns TRUE if the directory is successfully changed.
*/
int
@@ -6751,7 +6752,18 @@ ex_pwd(exarg_T *eap UNUSED)
#ifdef BACKSLASH_IN_FILENAME
slash_adjust(NameBuff);
#endif
- msg((char *)NameBuff);
+ if (p_verbose > 0)
+ {
+ char *context = "global";
+
+ if (curwin->w_localdir != NULL)
+ context = "window";
+ else if (curtab->tp_localdir != NULL)
+ context = "tabpage";
+ smsg("[%s] %s", context, (char *)NameBuff);
+ }
+ else
+ msg((char *)NameBuff);
}
else
emsg(_("E187: Unknown"));
diff --git a/src/testdir/test_cd.vim b/src/testdir/test_cd.vim
index da9ef0830f..ad25f3a32e 100644
--- a/src/testdir/test_cd.vim
+++ b/src/testdir/test_cd.vim
@@ -97,16 +97,19 @@ func Test_chdir_func()
lcd z
tabfirst
+ call assert_match('^\[global\] .*/Xdir$', trim(execute('verbose pwd')))
call chdir('..')
call assert_equal('y', fnamemodify(getcwd(1, 2), ':t'))
call assert_equal('z', fnamemodify(3->getcwd(2), ':t'))
tabnext | wincmd t
+ call assert_match('^\[tabpage\] .*/y$', trim(execute('verbose pwd')))
eval '..'->chdir()
call assert_equal('Xdir', fnamemodify(getcwd(1, 2), ':t'))
call assert_equal('Xdir', fnamemodify(getcwd(2, 2), ':t'))
call assert_equal('z', fnamemodify(getcwd(3, 2), ':t'))
call assert_equal('testdir', fnamemodify(getcwd(1, 1), ':t'))
3wincmd w
+ call assert_match('^\[window\] .*/z$', trim(execute('verbose pwd')))
call chdir('..')
call assert_equal('Xdir', fnamemodify(getcwd(1, 2), ':t'))
call assert_equal('Xdir', fnamemodify(getcwd(2, 2), ':t'))
diff --git a/src/version.c b/src/version.c
index 8772e75e6a..ce0e5452b1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 876,
+/**/
875,
/**/
874,