Standardize technique for temporary cd

This commit is contained in:
Tim Pope
2010-01-13 17:50:18 -05:00
parent a792da75c4
commit 8681f64dbf

View File

@@ -610,12 +610,12 @@ call s:command("-nargs=? -complete=customlist,s:CommitComplete Gcommit :execute
function! s:Commit(args) abort function! s:Commit(args) abort
let old_type = s:buffer().type() let old_type = s:buffer().type()
let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd '
let cd .= s:fnameescape(getcwd()) let dir = getcwd()
let msgfile = s:repo().dir('COMMIT_EDITMSG') let msgfile = s:repo().dir('COMMIT_EDITMSG')
let outfile = tempname() let outfile = tempname()
let errorfile = tempname() let errorfile = tempname()
try try
cd `=s:repo().tree()` execute cd.'`=s:repo().tree()`'
let command = 'GIT_EDITOR=false '.s:repo().git_command('commit').' '.a:args let command = 'GIT_EDITOR=false '.s:repo().git_command('commit').' '.a:args
if a:args =~# '\%(^\| \)--interactive\>' if a:args =~# '\%(^\| \)--interactive\>'
execute '!'.command.' 2> '.errorfile execute '!'.command.' 2> '.errorfile
@@ -658,7 +658,7 @@ function! s:Commit(args) abort
finally finally
call delete(outfile) call delete(outfile)
call delete(errorfile) call delete(errorfile)
exe cd execute cd.'`=dir`'
call fugitive#reload_status() call fugitive#reload_status()
endtry endtry
endfunction endfunction
@@ -701,9 +701,9 @@ function! s:Grep(bang,arg) abort
let grepprg = &grepprg let grepprg = &grepprg
let grepformat = &grepformat let grepformat = &grepformat
let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd '
let cd .= s:fnameescape(getcwd()) let dir = getcwd()
try try
cd `=s:repo().tree()` execute cd.'`=s:repo().tree()`'
let &grepprg = s:repo().git_command('--no-pager', 'grep', '-n') let &grepprg = s:repo().git_command('--no-pager', 'grep', '-n')
let &grepformat = '%f:%l:%m' let &grepformat = '%f:%l:%m'
exe 'grep! '.a:arg exe 'grep! '.a:arg
@@ -726,7 +726,7 @@ function! s:Grep(bang,arg) abort
finally finally
let &grepprg = grepprg let &grepprg = grepprg
let &grepformat = grepformat let &grepformat = grepformat
exe cd execute cd.'`=dir`'
endtry endtry
endfunction endfunction
@@ -751,16 +751,16 @@ function! s:Log(cmd,...)
let grepformat = &grepformat let grepformat = &grepformat
let grepprg = &grepprg let grepprg = &grepprg
let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd '
let cd .= s:fnameescape(getcwd()) let dir = getcwd()
try try
cd `=s:repo().tree()` execute cd.'`=s:repo().tree()`'
let &grepprg = call(s:repo().git_command,cmd,s:repo()) let &grepprg = call(s:repo().git_command,cmd,s:repo())
let &grepformat = '%f::%m' let &grepformat = '%f::%m'
exe a:cmd exe a:cmd
finally finally
let &grepformat = grepformat let &grepformat = grepformat
let &grepprg = grepprg let &grepprg = grepprg
exe cd execute cd.'`=dir`'
endtry endtry
endfunction endfunction