forked from aniani/vim
updated for version 7.3.609
Problem: File names in :checkpath! output are garbled. Solution: Check for \zs in the pattern. (Lech Lorens)
This commit is contained in:
26
src/search.c
26
src/search.c
@@ -4740,17 +4740,33 @@ find_pattern_in_path(ptr, dir, len, whole, skip_comments,
|
||||
* Isolate the file name.
|
||||
* Include the surrounding "" or <> if present.
|
||||
*/
|
||||
for (p = incl_regmatch.endp[0]; !vim_isfilec(*p); p++)
|
||||
;
|
||||
for (i = 0; vim_isfilec(p[i]); i++)
|
||||
;
|
||||
if (inc_opt != NULL
|
||||
&& strstr((char *)inc_opt, "\\zs") != NULL)
|
||||
{
|
||||
/* pattern contains \zs, use the match */
|
||||
p = incl_regmatch.startp[0];
|
||||
i = (int)(incl_regmatch.endp[0]
|
||||
- incl_regmatch.startp[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* find the file name after the end of the match */
|
||||
for (p = incl_regmatch.endp[0];
|
||||
*p && !vim_isfilec(*p); p++)
|
||||
;
|
||||
for (i = 0; vim_isfilec(p[i]); i++)
|
||||
;
|
||||
}
|
||||
|
||||
if (i == 0)
|
||||
{
|
||||
/* Nothing found, use the rest of the line. */
|
||||
p = incl_regmatch.endp[0];
|
||||
i = (int)STRLEN(p);
|
||||
}
|
||||
else
|
||||
/* Avoid checking before the start of the line, can
|
||||
* happen if \zs appears in the regexp. */
|
||||
else if (p > line)
|
||||
{
|
||||
if (p[-1] == '"' || p[-1] == '<')
|
||||
{
|
||||
|
Reference in New Issue
Block a user