diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2026-04-23 08:56:32 +0800 |
|---|---|---|
| committer | zeertzjq <zeertzjq@outlook.com> | 2026-04-23 12:51:11 +0800 |
| commit | b33dc7fe45597ca5ab105a3b0b207023261e6153 (patch) | |
| tree | 00502917d06f6f5d44ac641b2829e78cd5b86da8 | |
| parent | 06a47ac994e056fd38050c98881760ce6875a5c7 (diff) | |
vim-patch:9.2.0302: runtime(netrw): RFC2396 decoding double escaping spaces
Problem: runtime(netrw): RFC2396 decoding double escaping spaces
(lilydjwg, after 3e60f03d942d6bb0f7eac)
Solution: Remove escape() call, since we are using fnameescape() anyhow
fixes: vim/vim#19913
https://github.com/vim/vim/commit/ab4ebb62ee2cbe5e25fb1746ac5dbe63a9d50260
Co-authored-by: Christian Brabandt <cb@256bit.org>
| -rw-r--r-- | runtime/pack/dist/opt/netrw/autoload/netrw.vim | 4 | ||||
| -rw-r--r-- | test/old/testdir/test_plugin_netrw.vim | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/runtime/pack/dist/opt/netrw/autoload/netrw.vim b/runtime/pack/dist/opt/netrw/autoload/netrw.vim index d7b3d0d8ec..fcf31dc07b 100644 --- a/runtime/pack/dist/opt/netrw/autoload/netrw.vim +++ b/runtime/pack/dist/opt/netrw/autoload/netrw.vim @@ -23,6 +23,7 @@ " 2026 Feb 27 by Vim Project Make the hostname validation more strict " 2026 Mar 01 by Vim Project include portnumber in hostname checking #19533 " 2026 Apr 01 by Vim Project use fnameescape() with netrw#FileUrlEdit() +" 2026 Apr 05 by Vim Project Fix netrw#RFC2396() #19913 " Copyright: Copyright (C) 2016 Charles E. Campbell {{{1 " Permission is hereby granted to use and distribute this code, " with or without modifications, provided that this copyright @@ -8830,8 +8831,7 @@ endfunction " netrw#RFC2396: converts %xx into characters {{{2 function netrw#RFC2396(fname) - let fname = escape(substitute(a:fname,'%\(\x\x\)','\=printf("%c","0x".submatch(1))','ge')," \t") - return fname + return substitute(a:fname, '%\(\x\x\)', '\=printf("%c","0x".submatch(1))', 'ge') endfunction " netrw#UserMaps: supports user-specified maps {{{2 diff --git a/test/old/testdir/test_plugin_netrw.vim b/test/old/testdir/test_plugin_netrw.vim index ddd6b23cb0..c33b3c307e 100644 --- a/test/old/testdir/test_plugin_netrw.vim +++ b/test/old/testdir/test_plugin_netrw.vim @@ -611,4 +611,9 @@ func Test_netrw_FileUrlEdit_pipe_injection() call assert_false(filereadable(fname), 'Command injection via pipe in file URL') endfunc +func Test_netrw_RFC2396() + let fname = 'a%20b' + call assert_equal('a b', netrw#RFC2396(fname)) +endfunc + " vim:ts=8 sts=2 sw=2 et |
