Mercurial > vim
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