From 0d2073773218736e368786f0db7024bd9b9e7912 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar <Bram@vim.org> Date: Fri, 9 Feb 2018 19:25:29 +0100 Subject: [PATCH] patch 8.0.1488: emacs tags no longer work Problem: Emacs tags no longer work. (zdohnal) Solution: Do not skip over end of line. --- src/tag.c | 7 ++----- src/testdir/test_tagjump.vim | 28 ++++++++++++++++++++++++++++ src/version.c | 2 ++ 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 @@ -771,6 +771,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1488, /**/ 1487, /**/ -- 2.40.0