From 103acc7a2337c52389ad1e4b4653f5dcaaff45dc Mon Sep 17 00:00:00 2001 From: Greg Werbin Date: Sun, 17 Apr 2016 20:12:51 -0400 Subject: [PATCH] Support both spaces and quotes in &shell Pass the git command to `jobstart()` as a string, not a list. `jobstart()` does some kind of internal black magic to parse strings like `'"/usr/bin/env bash" -l'`, whereas it would be impossible to pass in an equivalent argument using a list. --- autoload/gitgutter/diff.vim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/autoload/gitgutter/diff.vim b/autoload/gitgutter/diff.vim index 3d7b1a5..3b18777 100644 --- a/autoload/gitgutter/diff.vim +++ b/autoload/gitgutter/diff.vim @@ -132,7 +132,9 @@ function! gitgutter#diff#run_diff(realtime, preserve_full_diff) " Note that when `cmd` doesn't produce any output, i.e. the diff is empty, " the `stdout` event is not fired on the job handler. Therefore we keep " track of the jobs ourselves so we can spot empty diffs. - let job_id = jobstart(split(&shell) + ['-c', cmd], { + + let job_cmd = &shell . ' -c ' . cmd + let job_id = jobstart(job_cmd, { \ 'on_stdout': function('gitgutter#handle_diff_job'), \ 'on_stderr': function('gitgutter#handle_diff_job'), \ 'on_exit': function('gitgutter#handle_diff_job')