summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-02-09 19:25:29 +0100
committerBram Moolenaar <Bram@vim.org>2018-02-09 19:25:29 +0100
commit0d2073773218736e368786f0db7024bd9b9e7912 (patch)
tree9b28dc49158b0918814d7704fb80e4e734083c66
parent8846ac5aedb568b9aae969f0ad2b9b1606522ca9 (diff)
downloadvim-git-0d2073773218736e368786f0db7024bd9b9e7912.tar.gz
patch 8.0.1488: emacs tags no longer workv8.0.1488
Problem: Emacs tags no longer work. (zdohnal) Solution: Do not skip over end of line.
-rw-r--r--src/tag.c7
-rw-r--r--src/testdir/test_tagjump.vim28
-rw-r--r--src/version.c2
3 files changed, 32 insertions, 5 deletions
diff --git a/src/tag.c b/src/tag.c
index 3d18a41eb..cdad6a348 100644
--- 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);
}
diff --git a/src/testdir/test_tagjump.vim b/src/testdir/test_tagjump.vim
index 0e51098eb..9f0accc3d 100644
--- 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
diff --git a/src/version.c b/src/version.c
index 043cc623f..eb0c02a1e 100644
--- 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,