changeset 103:efbe60d4865d

Merge pull request #62 from GitHub.
author Ludovic Chabant <ludovic@chabant.com>
date Fri, 25 Mar 2016 19:26:59 -0700
parents 05fc1e2172cc (diff) 7db339a3961f (current diff)
children 563fbba43288
files
diffstat 1 files changed, 18 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/autoload/gutentags/ctags.vim	Wed Mar 02 10:47:55 2016 -0500
+++ b/autoload/gutentags/ctags.vim	Fri Mar 25 19:26:59 2016 -0700
@@ -198,13 +198,27 @@
     let l:lines = readfile(a:path)
     let l:outlines = []
     for line in l:lines
-        let l:exarg = matchend(line, '\v^\-\-exclude=')
-        if l:exarg < 0
+        let l:exarg_idx = matchend(line, '\v^\-\-exclude=')
+        if l:exarg_idx < 0
             call add(l:outlines, line)
             continue
         endif
-        let l:fullp = gutentags#normalizepath(l:proj_dir.'/'.
-                    \strpart(line, l:exarg + 1))
+
+        " Don't convert things that don't look like paths.
+        let l:exarg = strpart(line, l:exarg_idx + 1)
+        let l:do_convert = 1
+        if l:exarg[0] == '@'   " Manifest file path
+            let l:do_convert = 0
+        endif
+        if stridx(l:exarg, '/') < 0 && stridx(l:exarg, '\\') < 0   " Filename
+            let l:do_convert = 0
+        endif
+        if l:do_convert == 0
+            call add(l:outlines, line)
+            continue
+        endif
+
+        let l:fullp = l:proj_dir . gutentags#normalizepath('/'.l:exarg)
         let l:ol = '--exclude='.l:fullp
         call add(l:outlines, l:ol)
     endfor