From 43f18ab9155c853a84ded560c6104e6300ad41da Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Mon, 12 Jun 2023 15:58:55 -0400 Subject: [PATCH] Support netrw buffers with blank buffer names Resolves: https://github.com/tpope/vim-fugitive/pull/2179 --- plugin/fugitive.vim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugin/fugitive.vim b/plugin/fugitive.vim index 9bc237f..d88fb8c 100644 --- a/plugin/fugitive.vim +++ b/plugin/fugitive.vim @@ -23,7 +23,7 @@ function! FugitiveGitDir(...) abort return g:fugitive_event endif let dir = get(b:, 'git_dir', '') - if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|terminal\|prompt\)$') + if empty(dir) && (empty(bufname('')) && &filetype !=# 'netrw' || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|terminal\|prompt\)$') return FugitiveExtractGitDir(getcwd()) elseif (!exists('b:git_dir') || b:git_dir =~# s:bad_git_dir) && &buftype =~# '^\%(nowrite\)\=$' let b:git_dir = FugitiveExtractGitDir(bufnr('')) @@ -425,6 +425,9 @@ function! FugitiveExtractGitDir(path) abort return get(a:path, 'fugitive_dir', get(a:path, 'git_dir', '')) elseif type(a:path) == type(0) let path = s:Slash(a:path > 0 ? bufname(a:path) : bufname('')) + if getbufvar(a:path, '&filetype') ==# 'netrw' + let path = s:Slash(getbufvar(a:path, 'netrw_curdir', path)) + endif else let path = s:Slash(a:path) endif