runtime(zip): use defer to restore old settings Commit: https://github.com/vim/vim/commit/afea6b946827e964271eb19579946a7f88d2f329 Author: Christian Brabandt <c...@256bit.org> Date: Tue Aug 6 18:50:59 2024 +0200
runtime(zip): use defer to restore old settings Problem: RestoreOpts() plugin called too often Solution: use :defer to have the RestoreOpts() function called when the function returns automatically Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/runtime/autoload/zip.vim b/runtime/autoload/zip.vim index 55e8760ea..148e45bcb 100644 --- a/runtime/autoload/zip.vim +++ b/runtime/autoload/zip.vim @@ -92,11 +92,11 @@ fun! zip#Browse(zipfile) endif let dict = s:SetSaneOpts() + defer s:RestoreOpts(dict) " sanity checks if !executable(g:zip_unzipcmd) call s:Mess('Error', "***error*** (zip#Browse) unzip not available on your system") - call s:RestoreOpts(dict) return endif if !filereadable(a:zipfile) @@ -104,7 +104,6 @@ fun! zip#Browse(zipfile) " if it's an url, don't complain, let url-handlers such as vim do its thing call s:Mess('Error', "***error*** (zip#Browse) File not readable <".a:zipfile.">") endif - call s:RestoreOpts(dict) return endif if &ma != 1 @@ -140,7 +139,6 @@ fun! zip#Browse(zipfile) exe "keepj r ".fnameescape(a:zipfile) let &ei= eikeep keepj 1d - call s:RestoreOpts(dict) return endif @@ -152,27 +150,24 @@ fun! zip#Browse(zipfile) noremap <silent> <buffer> <leftmouse> <leftmouse>:call <SID>ZipBrowseSelect()<cr> endif - call s:RestoreOpts(dict) endfun " --------------------------------------------------------------------- " ZipBrowseSelect: {{{2 fun! s:ZipBrowseSelect() let dict = s:SetSaneOpts() + defer s:RestoreOpts(dict) let fname= getline(".") if !exists("b:zipfile") - call s:RestoreOpts(dict) return endif " sanity check if fname =~ '^"' - call s:RestoreOpts(dict) return endif if fname =~ '/$' call s:Mess('Error', "***error*** (zip#Browse) Please specify a file, not a directory") - call s:RestoreOpts(dict) return endif @@ -188,13 +183,13 @@ fun! s:ZipBrowseSelect() exe "noswapfile e ".fnameescape("zipfile://".zipfile.'::'.fname) filetype detect - call s:RestoreOpts(dict) endfun " --------------------------------------------------------------------- " zip#Read: {{{2 fun! zip#Read(fname,mode) let dict = s:SetSaneOpts() + defer s:RestoreOpts(dict) if has("unix") let zipfile = substitute(a:fname,'zipfile://\(.\{-}\)::[^\].*$',' ','') @@ -207,7 +202,6 @@ fun! zip#Read(fname,mode) " sanity check if !executable(substitute(g:zip_unzipcmd,'\s\+.*$','','')) call s:Mess('Error', "***error*** (zip#Read) sorry, your system doesn't appear to have the ".g:zip_unzipcmd." program") - call s:RestoreOpts(dict) return endif @@ -227,23 +221,21 @@ fun! zip#Read(fname,mode) " cleanup set nomod - call s:RestoreOpts(dict) endfun " --------------------------------------------------------------------- " zip#Write: {{{2 fun! zip#Write(fname) let dict = s:SetSaneOpts() + defer s:RestoreOpts(dict) " sanity checks if !executable(substitute(g:zip_zipcmd,'\s\+.*$','','')) call s:Mess('Error', "***error*** (zip#Write) sorry, your system doesn't appear to have the ".g:zip_zipcmd." program") - call s:RestoreOpts(dict) return endif if !exists("*mkdir") call s:Mess('Error', "***error*** (zip#Write) sorry, mkdir() doesn't work on your system") - call s:RestoreOpts(dict) return endif @@ -256,7 +248,6 @@ fun! zip#Write(fname) " attempt to change to the indicated directory if s:ChgDir(tmpdir,s:ERROR,"(zip#Write) cannot cd to temporary directory") - call s:RestoreOpts(dict) return endif @@ -321,7 +312,6 @@ fun! zip#Write(fname) call delete(tmpdir, "rf") setlocal nomod - call s:RestoreOpts(dict) endfun " --------------------------------------------------------------------- @@ -329,16 +319,15 @@ endfun fun! zip#Extract() let dict = s:SetSaneOpts() + defer s:RestoreOpts(dict) let fname= getline(".") " sanity check if fname =~ '^"' - call s:RestoreOpts(dict) return endif if fname =~ '/$' call s:Mess('Error', "***error*** (zip#Extract) Please specify a file, not a directory") - call s:RestoreOpts(dict) return endif @@ -352,9 +341,6 @@ fun! zip#Extract() echomsg "***note*** successfully extracted ".fname endif - " restore option - call s:RestoreOpts(dict) - endfun " --------------------------------------------------------------------- -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/E1sbOwk-001kFs-8N%40256bit.org.