# HG changeset patch # User Christian Brabandt # Date 1518201007 -3600 # Node ID b88fa651c824b7274dcc800ca35b99832de453c2 # Parent 900ba1097e6ef785015ec02cf08119234cffd1cd patch 8.0.1488: emacs tags no longer work commit https://github.com/vim/vim/commit/0d2073773218736e368786f0db7024bd9b9e7912 Author: Bram Moolenaar 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. diff --git a/src/tag.c b/src/tag.c --- 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 --- 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 --- 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,