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