1
0
forked from aniani/vim

runtime(zip): Use delete() for deleting directory

This is safer because we don't invoke the shell.

closes: #15335

Signed-off-by: Damien <141588647+xrandomname@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Damien 2024-07-24 20:07:00 +02:00 committed by Christian Brabandt
parent 581d4a7b35
commit 2cad941dc0
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09

View File

@ -1,12 +1,13 @@
" zip.vim: Handles browsing zipfiles " zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION " AUTOLOAD PORTION
" Date: Jul 23, 2024 " Date: Jul 24, 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
" Last Change: " Last Change:
" 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
" 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,
@ -299,7 +300,7 @@ fun! zip#Write(fname)
" place temporary files under .../_ZIPVIM_/ " place temporary files under .../_ZIPVIM_/
if isdirectory("_ZIPVIM_") if isdirectory("_ZIPVIM_")
call s:Rmdir("_ZIPVIM_") call delete("_ZIPVIM_", "rf")
endif endif
call mkdir("_ZIPVIM_") call mkdir("_ZIPVIM_")
cd _ZIPVIM_ cd _ZIPVIM_
@ -362,9 +363,9 @@ fun! zip#Write(fname)
" cleanup and restore current directory " cleanup and restore current directory
cd .. cd ..
call s:Rmdir("_ZIPVIM_") call delete("_ZIPVIM_", "rf")
call s:ChgDir(curdir,s:WARNING,"(zip#Write) unable to return to ".curdir."!") call s:ChgDir(curdir,s:WARNING,"(zip#Write) unable to return to ".curdir."!")
call s:Rmdir(tmpdir) call delete(tmpdir, "rf")
setlocal nomod setlocal nomod
let &report= repkeep let &report= repkeep
@ -456,18 +457,6 @@ fun! s:ChgDir(newdir,errlvl,errmsg)
return 0 return 0
endfun endfun
" ---------------------------------------------------------------------
" s:Rmdir: {{{2
fun! s:Rmdir(fname)
" call Dfunc("Rmdir(fname<".a:fname.">)")
if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
call system("rmdir /S/Q ".s:Escape(a:fname,0))
else
call system("/bin/rm -rf ".s:Escape(a:fname,0))
endif
" call Dret("Rmdir")
endfun
" ------------------------------------------------------------------------ " ------------------------------------------------------------------------
" Modelines And Restoration: {{{1 " Modelines And Restoration: {{{1
let &cpo= s:keepcpo let &cpo= s:keepcpo