changeset 13227:b88fa651c824 v8.0.1488

patch 8.0.1488: emacs tags no longer work commit https://github.com/vim/vim/commit/0d2073773218736e368786f0db7024bd9b9e7912 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Feb 9 19:25:29 2018 +0100 patch 8.0.1488: emacs tags no longer work Problem: Emacs tags no longer work. (zdohnal) Solution: Do not skip over end of line.
author Christian Brabandt <cb@256bit.org>
date Fri, 09 Feb 2018 19:30:07 +0100
parents 900ba1097e6e
children 8ece1b2f3081
files src/tag.c src/testdir/test_tagjump.vim src/version.c
diffstat 3 files changed, 32 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/tag.c
+++ b/src/tag.c
@@ -2958,12 +2958,9 @@ matching_line_len(char_u *lbuf)
     char_u	*p = lbuf + 1;
 
     /* does the same thing as parse_match() */
-    p += STRLEN(p) + 2;
+    p += STRLEN(p) + 1;
 #ifdef FEAT_EMACS_TAGS
-    if (*p)
-	p += STRLEN(p);
-    else
-	++p;
+    p += STRLEN(p) + 1;
 #endif
     return (p - lbuf) + STRLEN(p);
 }
--- a/src/testdir/test_tagjump.vim
+++ b/src/testdir/test_tagjump.vim
@@ -229,4 +229,32 @@ func Test_tag_file_encoding()
   call delete('Xtags1')
 endfunc
 
+func Test_tagjump_etags()
+  if !has('emacs_tags')
+    return
+  endif
+  call writefile([
+        \ "void foo() {}",
+        \ "int main(int argc, char **argv)",
+        \ "{",
+        \ "\tfoo();",
+        \ "\treturn 0;",
+        \ "}",
+        \ ], 'Xmain.c')
+
+  call writefile([
+	\ "\x0c",
+        \ "Xmain.c,64",
+        \ "void foo() {}\x7ffoo\x011,0",
+        \ "int main(int argc, char **argv)\x7fmain\x012,14",
+	\ ], 'Xtags')
+  set tags=Xtags
+  ta foo
+  call assert_equal('void foo() {}', getline('.'))
+
+  call delete('Xtags')
+  call delete('Xmain.c')
+  bwipe!
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1488,
+/**/
     1487,
 /**/
     1486,