Mercurial > vim
diff src/quickfix.c @ 502:52e76e2b5b65 v7.0140
updated for version 7.0140
author | vimboss |
---|---|
date | Thu, 01 Sep 2005 20:46:49 +0000 |
parents | f98374445f66 |
children | 5ffc9de8bb26 |
line wrap: on
line diff
--- a/src/quickfix.c +++ b/src/quickfix.c @@ -187,7 +187,7 @@ qf_init_ext(efile, buf, tv, errorformat, char *pattern; } fmt_pat[FMT_PATTERNS] = { - {'f', "\\f\\+"}, + {'f', ".\\+"}, /* only used when at end */ {'n', "\\d\\+"}, {'l', "\\d\\+"}, {'c', "\\d\\+"}, @@ -319,16 +319,25 @@ qf_init_ext(efile, buf, tv, errorformat, ptr += 10; } #endif - if (*efmp == 'f' && efmp[1] != NUL - && efmp[1] != '\\' && efmp[1] != '%') + if (*efmp == 'f' && efmp[1] != NUL) { - /* A file name may contain spaces, but this isn't in - * "\f". For "%f:%l:%m" there may be a ":" in the - * file name. Use ".\{-1,}x" instead (x is the next - * character), the requirement that :999: follows - * should work. */ - STRCPY(ptr, ".\\{-1,}"); - ptr += 7; + if (efmp[1] != '\\' && efmp[1] != '%') + { + /* A file name may contain spaces, but this isn't + * in "\f". For "%f:%l:%m" there may be a ":" in + * the file name. Use ".\{-1,}x" instead (x is + * the next character), the requirement that :999: + * follows should work. */ + STRCPY(ptr, ".\\{-1,}"); + ptr += 7; + } + else + { + /* File name followed by '\\' or '%': include as + * many file name chars as possible. */ + STRCPY(ptr, "\\f\\+"); + ptr += 4; + } } else {