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.

Raspunde prin e-mail lui