> Patch 7.3.366
> Problem:    A tags file with an extremely long name causes errors.
> Solution:   Ignore tags that are too long. (Arno Renevier)
> Files:      src/tag.c 

Thanks for applying my patch.
But unfortunately, I noticed, it is wrong:
With this patch, vims ends up in an infinite loop.
The behaviour seems correct when using:

    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();
        }
        i = OK;
    } else {
        /* Corrupted tag line. */
        line_error = TRUE;
        break; 
    }

Actually, as of today, I still don't have a thorough understanding of the
find_tags function, and its huge loop.
So, I'm not totally confident this fix is the right one.

I attach a problematic tag file.
The problematic line is the long 26th line.
I can trigger the bug by opening vim in the same directory, and executing
:tselect test
May be, the binary search won't run through this line, so you may need to move
that line to some other places. Eventually, a tag file containing only the
headers and the offending line, triggers the bug.

Regards,
arno Renevier

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui