mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
vim-patch:c4be066: runtime(zip): Opening a remote zipfile don't work
Problem: Opening a zipfile from HTTP gives an empty buffer.
Solution: Ensure that the magic bytes check does not
skip protocol processing.
Also use readblob() and remove commented out lines.
closes: vim/vim#15396
c4be066817
Co-authored-by: Damien <141588647+xrandomname@users.noreply.github.com>
This commit is contained in:
parent
1dd2bf926d
commit
34fa34e720
@ -1,6 +1,6 @@
|
|||||||
" zip.vim: Handles browsing zipfiles
|
" zip.vim: Handles browsing zipfiles
|
||||||
" AUTOLOAD PORTION
|
" AUTOLOAD PORTION
|
||||||
" Date: Jul 24, 2024
|
" Date: Jul 30, 2024
|
||||||
" Version: 33
|
" Version: 33
|
||||||
" Maintainer: This runtime file is looking for a new maintainer.
|
" Maintainer: This runtime file is looking for a new maintainer.
|
||||||
" Former Maintainer: Charles E Campbell
|
" Former Maintainer: Charles E Campbell
|
||||||
@ -8,6 +8,7 @@
|
|||||||
" 2024 Jun 16 by Vim Project: handle whitespace on Windows properly (#14998)
|
" 2024 Jun 16 by Vim Project: handle whitespace on Windows properly (#14998)
|
||||||
" 2024 Jul 23 by Vim Project: fix 'x' command
|
" 2024 Jul 23 by Vim Project: fix 'x' command
|
||||||
" 2024 Jul 24 by Vim Project: use delete() function
|
" 2024 Jul 24 by Vim Project: use delete() function
|
||||||
|
" 2024 Jul 20 by Vim Project: fix opening remote zipfile
|
||||||
" License: Vim License (see vim's :help license)
|
" License: Vim License (see vim's :help license)
|
||||||
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
|
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
|
||||||
" Permission is hereby granted to use and distribute this code,
|
" Permission is hereby granted to use and distribute this code,
|
||||||
@ -73,15 +74,11 @@ endif
|
|||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" zip#Browse: {{{2
|
" zip#Browse: {{{2
|
||||||
fun! zip#Browse(zipfile)
|
fun! zip#Browse(zipfile)
|
||||||
" call Dfunc("zip#Browse(zipfile<".a:zipfile.">)")
|
" sanity check: ensure that the zipfile has "PK" as its first two letters
|
||||||
" sanity check: insure that the zipfile has "PK" as its first two letters
|
" (zip files have a leading PK as a "magic cookie")
|
||||||
" (zipped files have a leading PK as a "magic cookie")
|
if filereadable(a:zipfile) && readblob(a:zipfile, 0, 2) != 0z50.4B
|
||||||
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
|
exe "noswapfile noautocmd e " .. fnameescape(a:zipfile)
|
||||||
exe "noswapfile noautocmd noswapfile e ".fnameescape(a:zipfile)
|
|
||||||
" call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
|
|
||||||
return
|
return
|
||||||
" else " Decho
|
|
||||||
" call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - it's a zip file")
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let repkeep= &report
|
let repkeep= &report
|
||||||
@ -97,9 +94,7 @@ fun! zip#Browse(zipfile)
|
|||||||
if !executable(g:zip_unzipcmd)
|
if !executable(g:zip_unzipcmd)
|
||||||
redraw!
|
redraw!
|
||||||
echohl Error | echo "***error*** (zip#Browse) unzip not available on your system"
|
echohl Error | echo "***error*** (zip#Browse) unzip not available on your system"
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("zip#Browse")
|
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
if !filereadable(a:zipfile)
|
if !filereadable(a:zipfile)
|
||||||
@ -107,13 +102,10 @@ fun! zip#Browse(zipfile)
|
|||||||
" if it's an url, don't complain, let url-handlers such as vim do its thing
|
" if it's an url, don't complain, let url-handlers such as vim do its thing
|
||||||
redraw!
|
redraw!
|
||||||
echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None
|
echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
endif
|
endif
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("zip#Browse : file<".a:zipfile."> not readable")
|
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
" call Decho("passed sanity checks")
|
|
||||||
if &ma != 1
|
if &ma != 1
|
||||||
set ma
|
set ma
|
||||||
endif
|
endif
|
||||||
|
Loading…
Reference in New Issue
Block a user