patch 8.0.1488: emacs tags no longer work
Problem: Emacs tags no longer work. (zdohnal)
Solution: Do not skip over end of line.
diff --git a/src/tag.c b/src/tag.c
index 3d18a41..cdad6a3 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -2958,12 +2958,9 @@
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);
}
diff --git a/src/testdir/test_tagjump.vim b/src/testdir/test_tagjump.vim
index 0e51098..9f0accc 100644
--- a/src/testdir/test_tagjump.vim
+++ b/src/testdir/test_tagjump.vim
@@ -229,4 +229,32 @@
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
diff --git a/src/version.c b/src/version.c
index 043cc62..eb0c02a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1488,
+/**/
1487,
/**/
1486,