summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2011-12-08 15:12:11 +0100
committerBram Moolenaar <Bram@vim.org>2011-12-08 15:12:11 +0100
commit0a11f8ce4e796e576a8008326d058de7f64fc6c8 (patch)
tree177ca7e94f95c6c0f7541831d164fb84f4a0798c
parentf0b6b0cc3bc227a33beb4378308e8150f06270b2 (diff)
downloadvim-git-0a11f8ce4e796e576a8008326d058de7f64fc6c8.tar.gz
updated for version 7.3.366v7.3.366
Problem: A tags file with an extremely long name causes errors. Solution: Ignore tags that are too long. (Arno Renevier)
-rw-r--r--src/tag.c18
-rw-r--r--src/version.c2
2 files changed, 18 insertions, 2 deletions
diff --git a/src/tag.c b/src/tag.c
index f06b02360..f9738ef03 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -1906,12 +1906,26 @@ line_read_in:
tagp.tagname = lbuf;
#ifdef FEAT_TAG_ANYWHITE
tagp.tagname_end = skiptowhite(lbuf);
- if (*tagp.tagname_end == NUL) /* corrupted tag line */
+ if (*tagp.tagname_end == NUL)
#else
tagp.tagname_end = vim_strchr(lbuf, TAB);
- if (tagp.tagname_end == NULL) /* corrupted tag line */
+ if (tagp.tagname_end == NULL)
#endif
{
+ if (vim_strchr(lbuf, NL) == NULL)
+ {
+ /* Truncated line, ignore it. Has been reported for
+ * Mozilla JS with extremely long names. */
+ if (p_verbose >= 5)
+ {
+ verbose_enter();
+ MSG(_("Ignoring long line in tags file"));
+ verbose_leave();
+ }
+ continue;
+ }
+
+ /* Corrupted tag line. */
line_error = TRUE;
break;
}
diff --git a/src/version.c b/src/version.c
index 3cb219504..ec69cb198 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 366,
+/**/
365,
/**/
364,