]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(netrw): Decode multibyte percent-encoding filename correctly (#13842)
authorK.Takata <kentkt@csc.jp>
Fri, 12 Jan 2024 16:30:01 +0000 (01:30 +0900)
committerGitHub <noreply@github.com>
Fri, 12 Jan 2024 16:30:01 +0000 (17:30 +0100)
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>
runtime/autoload/netrw.vim

index 3af7ba0f1de1099437d9140873d3044c6c1def9c..bcb1f24751a1599e27343ff51c978fbbfcad1f6d 100644 (file)
@@ -11587,7 +11587,7 @@ endfun
 "  netrw#RFC2396: converts %xx into characters {{{2
 fun! netrw#RFC2396(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)
   return fname
 endfun