From a30ee7f23e93c827b4857d337f04c1ddf3c0c16e Mon Sep 17 00:00:00 2001 From: Andy Stewart Date: Tue, 13 Oct 2015 12:37:49 +0100 Subject: [PATCH] Handle filenames containing equals signs. --- autoload/gitgutter/sign.vim | 2 +- test/=fixture=.txt | 0 test/filenameWithEquals.expected | 5 +++++ test/testFilenameWithEquals.vim | 12 ++++++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 test/=fixture=.txt create mode 100644 test/filenameWithEquals.expected create mode 100644 test/testFilenameWithEquals.vim diff --git a/autoload/gitgutter/sign.vim b/autoload/gitgutter/sign.vim index d170a42..e520c50 100644 --- a/autoload/gitgutter/sign.vim +++ b/autoload/gitgutter/sign.vim @@ -77,7 +77,7 @@ function! gitgutter#sign#find_current_signs() silent execute "sign place buffer=" . bufnr redir END - for sign_line in filter(split(signs, '\n'), 'v:val =~# "="') + for sign_line in filter(split(signs, '\n')[2:], 'v:val =~# "="') " Typical sign line: line=88 id=1234 name=GitGutterLineAdded " We assume splitting is faster than a regexp. let components = split(sign_line) diff --git a/test/=fixture=.txt b/test/=fixture=.txt new file mode 100644 index 0000000..e69de29 diff --git a/test/filenameWithEquals.expected b/test/filenameWithEquals.expected new file mode 100644 index 0000000..a78b977 --- /dev/null +++ b/test/filenameWithEquals.expected @@ -0,0 +1,5 @@ + +--- Signs --- +Signs for =fixture=.txt: + line=1 id=3000 name=GitGutterLineAdded + line=2 id=3001 name=GitGutterLineAdded diff --git a/test/testFilenameWithEquals.vim b/test/testFilenameWithEquals.vim new file mode 100644 index 0000000..082ff02 --- /dev/null +++ b/test/testFilenameWithEquals.vim @@ -0,0 +1,12 @@ +source helper.vim + +edit =fixture=.txt +normal ggo* +try + write + write + call DumpSigns('filenameWithEquals') +finally + call system('git reset HEAD =fixture=.txt') + call system('git checkout =fixture=.txt') +endtry