diff options
author | Bram Moolenaar <Bram@vim.org> | 2011-12-08 15:12:11 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2011-12-08 15:12:11 +0100 |
commit | 0a11f8ce4e796e576a8008326d058de7f64fc6c8 (patch) | |
tree | 177ca7e94f95c6c0f7541831d164fb84f4a0798c | |
parent | f0b6b0cc3bc227a33beb4378308e8150f06270b2 (diff) | |
download | vim-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.c | 18 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 18 insertions, 2 deletions
@@ -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, |