diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f11187..826b34c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ## Unreleased -- Adds `:Bwipeout`. Thanks, [Juan Ibiapina](http://juanibiapina.com/)! +- Adds `:Bwipeout`. Thanks, [Juan Ibiapina](http://juanibiapina.com)! +- Fixes `:Bdelete`ing an already unlisted buffer. + That happens when you close a buffer that itself closes when switched away from. + Thanks, [Samuel Simões](http://blog.samuelsimoes.com), for debugging help! ## 1.0.1 (Jul 23, 2013) - Fixes `:Bdelete`ing via buffer number. Finally, perfect! diff --git a/plugin/bbye.vim b/plugin/bbye.vim index d34295d..82d482a 100644 --- a/plugin/bbye.vim +++ b/plugin/bbye.vim @@ -45,7 +45,10 @@ function! s:bdelete(action, bang, buffer_name) " If it hasn't been already deleted by &bufhidden, end its pains now. " Unless it previously was an unnamed buffer and :enew returned it again. - if bufexists(buffer) && buffer != bufnr("%") + " + " Using buflisted() over bufexists() because bufhidden=delete causes the + " buffer to still _exist_ even though it won't be :bdelete-able. + if buflisted(buffer) && buffer != bufnr("%") exe a:action . a:bang . " " . buffer endif endfunction