diff --git a/autoload/gnupg.vim b/autoload/gnupg.vim index f9247b2..2dae193 100644 --- a/autoload/gnupg.vim +++ b/autoload/gnupg.vim @@ -1,5 +1,5 @@ " Name: autoload/gnupg.vim -" Last Change: 2020 Nov 09 +" Last Change: 2020 Nov 11 " Maintainer: James McCoy " Original Author: Markus Braun " Summary: Vim plugin for transparent editing of gpg encrypted files. @@ -685,7 +685,8 @@ function gnupg#edit_recipients() augroup GPGRecipients au! * " add a autocommand to regenerate the recipients after a write - autocmd BufHidden,BufUnload,BufWriteCmd call s:GPGFinishRecipientsBuffer() + autocmd BufHidden,BufWriteCmd call s:GPGFinishRecipientsBuffer() + autocmd BufUnload exe 'au! GPGRecipients * ') .'>' augroup END " put some comments to the scratch buffer @@ -768,8 +769,14 @@ function s:GPGFinishRecipientsBuffer() " go to buffer before doing work if (bufnr("%") != expand("")) - " switch to scratch buffer window - execute 'silent! ' . bufwinnr(expand(":p")) . "wincmd w" + let winnr = bufwinnr(expand(':p')) + if winnr >= 0 + " switch to scratch buffer window + execute 'silent! ' . winnr . "wincmd w" + else + call s:GPGDebug(3, '<<<<<<<< Leaving s:GPGFinishRecipientsBuffer() early because buffer is not displayed') + return + endif endif " get the recipients from the scratch buffer @@ -861,7 +868,8 @@ function gnupg#edit_options() augroup GPGOptions au! * " add a autocommand to regenerate the options after a write - autocmd BufHidden,BufUnload,BufWriteCmd call s:GPGFinishOptionsBuffer() + autocmd BufHidden,BufWriteCmd call s:GPGFinishOptionsBuffer() + autocmd BufUnload exe 'au! GPGOptions * ') .'>' augroup END " put some comments to the scratch buffer @@ -913,8 +921,14 @@ function s:GPGFinishOptionsBuffer() " go to buffer before doing work if (bufnr("%") != expand("")) - " switch to scratch buffer window - execute 'silent! ' . bufwinnr(expand(":p")) . "wincmd w" + let winnr = bufwinnr(expand(':p')) + if winnr >= 0 + " switch to scratch buffer window + execute 'silent! ' . winnr . "wincmd w" + else + call s:GPGDebug(3, '<<<<<<<< Leaving s:GPGFinishOptionsBuffer() early because buffer is not displayed') + return + endif endif " clear options and unknownOptions diff --git a/plugin/gnupg.vim b/plugin/gnupg.vim index f94c0a7..4b89e70 100644 --- a/plugin/gnupg.vim +++ b/plugin/gnupg.vim @@ -1,5 +1,5 @@ " Name: gnupg.vim -" Last Change: 2020 Nov 09 +" Last Change: 2020 Nov 11 " Maintainer: James McCoy " Original Author: Markus Braun " Summary: Vim plugin for transparent editing of gpg encrypted files. @@ -15,7 +15,7 @@ if (exists("g:loaded_gnupg") || &cp || exists("#GnuPG")) finish endif -let g:loaded_gnupg = '2.7.0' +let g:loaded_gnupg = '2.7.1-dev' " check for correct vim version {{{2 if (v:version < 702)