runtime(netrw): removing trailing slash when copying files in same directory
Commit: https://github.com/vim/vim/commit/e34d0e37e397419636ae5d27d4b236b193efef07 Author: Travis Shelton <tshelton.m...@gmail.com> Date: Tue Jul 30 21:08:56 2024 +0200 runtime(netrw): removing trailing slash when copying files in same directory closes: https://github.com/vim/vim/issues/14756 Signed-off-by: Travis Shelton <tshelton.m...@gmail.com> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim index 9f7afd5b2..cfa85e26f 100644 --- a/runtime/autoload/netrw.vim +++ b/runtime/autoload/netrw.vim @@ -3,7 +3,7 @@ " Maintainer: This runtime file is looking for a new maintainer. " Date: May 03, 2023 " Version: 173a -" Last Change: +" Last Change: {{{1 " 2023 Nov 21 by Vim Project: ignore wildignore when expanding $COMSPEC (v173a) " 2023 Nov 22 by Vim Project: fix handling of very long filename on longlist style (v173a) " 2024 Feb 19 by Vim Project: (announce adoption) @@ -18,6 +18,8 @@ " 2024 Jun 23 by Vim Project: save ad restore registers when liststyle = WIDELIST (#15077, #15114) " 2024 Jul 22 by Vim Project: avoid endless recursion (#15318) " 2024 Jul 23 by Vim Project: escape filename before trying to delete it (#15330) +" 2024 Jul 30 by Vim Project: handle mark-copy to same target directory (#12112) +" }}} " Former Maintainer: Charles E Campbell " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim " Copyright: Copyright (C) 2016 Charles E. Campbell {{{1 @@ -7165,7 +7167,7 @@ fun! s:NetrwMarkFileCopy(islocal,...) endif " copy marked files while within the same directory (ie. allow renaming) - if simplify(s:netrwmftgt) == simplify(b:netrw_curdir) + if s:StripTrailingSlash(simplify(s:netrwmftgt)) == s:StripTrailingSlash(simplify(b:netrw_curdir)) if len(s:netrwmarkfilelist_{bufnr('%')}) == 1 " only one marked file " call Decho("case: only one marked file",'~'.expand("<slnum>")) @@ -7242,7 +7244,7 @@ fun! s:NetrwMarkFileCopy(islocal,...) " call Decho("system(".copycmd." '".args."' '".tgt."')",'~'.expand("<slnum>")) call system(copycmd.g:netrw_localcopycmdopt." '".args."' '".tgt."'") if v:shell_error != 0 - if exists("b:netrw_curdir") && b:netrw_curdir != getcwd() && !g:netrw_keepdir + if exists("b:netrw_curdir") && b:netrw_curdir != getcwd() && g:netrw_keepdir call netrw#ErrorMsg(s:ERROR,"copy failed; perhaps due to vim's current directory<".getcwd()."> not matching netrw's (".b:netrw_curdir.") (see :help netrw-cd)",101) else call netrw#ErrorMsg(s:ERROR,"tried using g:netrw_localcopycmd<".g:netrw_localcopycmd.">; it doesn't work!",80) @@ -11645,6 +11647,14 @@ fun! netrw#WinPath(path) return path endfun +" --------------------------------------------------------------------- +" s:StripTrailingSlash: removes trailing slashes from a path {{{2 +fun! s:StripTrailingSlash(path) + " remove trailing slash + return substitute(a:path, '[/\]$', '', 'g') +endfun + + " --------------------------------------------------------------------- " s:NetrwBadd: adds marked files to buffer list or vice versa {{{2 " cb : bl2mf=0 add marked files to buffer list -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/E1sYsJL-00463E-2s%40256bit.org.