From 5bc25a8f112dff0817cb8287521ed696e3141fbb Mon Sep 17 00:00:00 2001 From: Andy Stewart Date: Fri, 5 Apr 2013 11:04:45 +0200 Subject: [PATCH] Make grep optional instead of required. When grep is available we use it for efficiency. When it's unavailable, we filter in Vimscript. --- plugin/gitgutter.vim | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugin/gitgutter.vim b/plugin/gitgutter.vim index 5e6554e..df24cc2 100644 --- a/plugin/gitgutter.vim +++ b/plugin/gitgutter.vim @@ -1,4 +1,4 @@ -if exists('g:loaded_gitgutter') || !executable('git') || !executable('grep') || !has('signs') || &cp +if exists('g:loaded_gitgutter') || !executable('git') || !has('signs') || &cp finish endif let g:loaded_gitgutter = 1 @@ -47,6 +47,8 @@ function! s:init() let s:other_signs = [] let s:dummy_sign_id = 153 + let s:grep_available = executable('grep') + let g:gitgutter_initialised = 1 endif endfunction @@ -189,8 +191,10 @@ endfunction " Diff processing {{{ function! s:run_diff() - let cmd = 'git diff --no-ext-diff --no-color -U0 ' . g:gitgutter_diff_args . ' ' . - \ shellescape(s:file()) . ' | grep -e "^@@ "' + let cmd = 'git diff --no-ext-diff --no-color -U0 ' . g:gitgutter_diff_args . ' ' . shellescape(s:file()) + if s:grep_available + let cmd .= ' | grep -e "^@@ "' + endif let diff = system(s:command_in_directory_of_file(cmd)) return diff endfunction