Patch 8.2.0876

7 views
Skip to first unread message

Bram Moolenaar

unread,
Jun 1, 2020, 10:26:57 AM6/1/20
to vim...@googlegroups.com

Patch 8.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)
Files: runtime/doc/editing.txt, src/ex_docmd.c, src/testdir/test_cd.vim


*** ../vim-8.2.0875/runtime/doc/editing.txt 2019-12-17 21:27:14.686319918 +0100
--- runtime/doc/editing.txt 2020-06-01 16:22:43.851604185 +0200
***************
*** 1327,1332 ****
--- 1338,1358 ----
*:pw* *:pwd* *E187*
:pw[d] Print the current directory name.
Also see |getcwd()|.
+ *:pwd-verbose*
+ When 'verbose' is non-zero, |:pwd| will also display
+ what scope the current directory was set. Example: >
+
+ " Set by :cd
+ :verbose pwd
+ [global] /path/to/current
+
+ " Set by :lcd
+ :verbose pwd
+ [window] /path/to/current
+
+ " Set by :tcd
+ :verbose pwd
+ [tabpage] /path/to/current

So long as no |:lcd| or |:tcd| command has been used, all windows share the
same current directory. Using a command to jump to another window doesn't
*** ../vim-8.2.0875/src/ex_docmd.c 2020-05-30 20:30:42.892816571 +0200
--- src/ex_docmd.c 2020-06-01 16:25:16.431062838 +0200
***************
*** 6619,6627 ****

/*
* 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.
* Returns TRUE if the directory is successfully changed.
*/
int
--- 6619,6628 ----

/*
* Change directory function used by :cd/:tcd/:lcd Ex commands and the
! * 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,6757 ****
#ifdef BACKSLASH_IN_FILENAME
slash_adjust(NameBuff);
#endif
! msg((char *)NameBuff);
}
else
emsg(_("E187: Unknown"));
--- 6752,6769 ----
#ifdef BACKSLASH_IN_FILENAME
slash_adjust(NameBuff);
#endif
! 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"));
*** ../vim-8.2.0875/src/testdir/test_cd.vim 2020-04-25 15:24:40.551354115 +0200
--- src/testdir/test_cd.vim 2020-06-01 16:19:50.120214786 +0200
***************
*** 97,112 ****
--- 97,115 ----
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'))
*** ../vim-8.2.0875/src/version.c 2020-06-01 16:09:30.270292723 +0200
--- src/version.c 2020-06-01 16:25:53.446930930 +0200
***************
*** 748,749 ****
--- 748,751 ----
{ /* Add new patch number below this line */
+ /**/
+ 876,
/**/

--
"After a few years of marriage a man can look right at a woman
without seeing her and a woman can see right through a man
without looking at him."
- Helen Rowland

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
Reply all
Reply to author
Forward
0 new messages