1
0
forked from aniani/vim

runtime(netrw): Decode multibyte percent-encoding filename correctly (#13842)

Use `printf("%c")` instead of `nr2char()` to handle '%xx' as a byte.

Close #13787

Signed-off-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
K.Takata
2024-01-13 01:30:01 +09:00
committed by GitHub
parent 28d71b566a
commit 2357765304

View File

@@ -11587,7 +11587,7 @@ endfun
" netrw#RFC2396: converts %xx into characters {{{2 " netrw#RFC2396: converts %xx into characters {{{2
fun! netrw#RFC2396(fname) fun! netrw#RFC2396(fname)
" call Dfunc("netrw#RFC2396(fname<".a:fname.">)") " call Dfunc("netrw#RFC2396(fname<".a:fname.">)")
let fname = escape(substitute(a:fname,'%\(\x\x\)','\=nr2char("0x".submatch(1))','ge')," \t") let fname = escape(substitute(a:fname,'%\(\x\x\)','\=printf("%c","0x".submatch(1))','ge')," \t")
" call Dret("netrw#RFC2396 ".fname) " call Dret("netrw#RFC2396 ".fname)
return fname return fname
endfun endfun