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

ab4ebb62ee

Co-authored-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
zeertzjq
2026-04-23 08:56:32 +08:00
parent 06a47ac994
commit b33dc7fe45
2 changed files with 7 additions and 2 deletions

View File

@@ -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

View File

@@ -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