diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-06-01 16:26:19 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-06-01 16:26:19 +0200 |
commit | 950587242cad52d067a15f0f0c83528a28f75731 (patch) | |
tree | ff69b30a48c1bca712733f8ad48944d79de2e74e /src | |
parent | 6c9ba0428041d5316871245be38c13faa0107026 (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.c | 20 | ||||
-rw-r--r-- | src/testdir/test_cd.vim | 3 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |