aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2024-07-04 19:57:21 +0200
committerChristian Clason <c.clason@uni-graz.at>2024-07-04 23:01:35 +0200
commit71c50edceb5e097fe4faf9278a5fb4d41a303455 (patch)
treeae1064d186c2a0f2ea18f26625119dd41f96ce10
parentc49bcde9271a5bc22decbdf1a173207e9932fbf3 (diff)
downloadrneovim-71c50edceb5e097fe4faf9278a5fb4d41a303455.tar.gz
rneovim-71c50edceb5e097fe4faf9278a5fb4d41a303455.tar.bz2
rneovim-71c50edceb5e097fe4faf9278a5fb4d41a303455.zip
vim-patch:3146d63: runtime(netrw): fix remaining case of register clobber
complements 62f7b55c1a4564f8744af9446bc7af47fe16a245 closes: vim/vim#15114 https://github.com/vim/vim/commit/3146d63267664e0a0afdbe14be0cec30e7168a04 Co-authored-by: Enno <Konfekt@users.noreply.github.com>
-rw-r--r--runtime/autoload/netrw.vim16
1 files changed, 13 insertions, 3 deletions
diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim
index c7306289e5..0ac216e8b2 100644
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -15,7 +15,7 @@
" 2024 May 13 by Vim Project: prefer scp over pscp
" 2024 Jun 04 by Vim Project: set bufhidden if buffer changed, nohidden is set and buffer shall be switched (#14915)
" 2024 Jun 13 by Vim Project: glob() on Windows fails when a directory name contains [] (#14952)
-" 2024 Jun 23 by Vim Project: save ad restore registers when liststyle = WIDELIST (#15077)
+" 2024 Jun 23 by Vim Project: save ad restore registers when liststyle = WIDELIST (#15077, #15114)
" Former Maintainer: Charles E Campbell
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
@@ -4450,7 +4450,15 @@ fun! s:NetrwGetWord()
call cursor(line("."),filestart+1)
NetrwKeepj norm! ma
endif
- let rega= @a
+
+ let dict={}
+ " save the unnamed register and register 0-9 and a
+ let dict.a=[getreg('a'), getregtype('a')]
+ for i in range(0, 9)
+ let dict[i] = [getreg(i), getregtype(i)]
+ endfor
+ let dict.unnamed = [getreg(''), getregtype('')]
+
let eofname= filestart + b:netrw_cpf + 1
if eofname <= col("$")
call cursor(line("."),filestart+b:netrw_cpf+1)
@@ -4458,8 +4466,10 @@ fun! s:NetrwGetWord()
else
NetrwKeepj norm! "ay$
endif
+
let dirname = @a
- let @a = rega
+ call s:RestoreRegister(dict)
+
" call Decho("2: dirname<".dirname.">",'~'.expand("<slnum>"))
let dirname= substitute(dirname,'\s\+$','','e')
" call Decho("3: dirname<".dirname.">",'~'.expand("<slnum>"))