Problem: Parsing 'errorformat' is not correct.
Solution: Reset "multiignore" at the start of a multi-line message. (Lcd)
fmt_start = fmt_ptr;
if (vim_strchr((char_u *)"AEWI", idx) != NULL)
+ {
multiline = TRUE; /* start of a multi-line message */
+ multiignore = FALSE; /* reset continuation */
+ }
else if (vim_strchr((char_u *)"CZ", idx) != NULL)
{ /* continuation of multi-line msg */
if (qfprev == NULL)
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
test99.out test100.out test101.out test102.out test103.out \
- test104.out test105.out
+ test104.out test105.out test106.out
.SUFFIXES: .in .out
test103.out: test103.in
test104.out: test104.in
test105.out: test105.in
+test106.out: test106.in
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
test100.out test101.out test102.out test103.out test104.out \
- test105.out
+ test105.out test106.out
SCRIPTS32 = test50.out test70.out
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
test100.out test101.out test102.out test103.out test104.out \
- test105.out
+ test105.out test106.out
SCRIPTS32 = test50.out test70.out
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
test100.out test101.out test102.out test103.out test104.out \
- test105.out
+ test105.out test106.out
.SUFFIXES: .in .out
test90.out test91.out test92.out test93.out test94.out \
test95.out test96.out test98.out test99.out \
test100.out test101.out test103.out test104.out \
- test105.out
+ test105.out test106.out
# Known problems:
# test17: ?
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
test99.out test100.out test101.out test102.out test103.out \
- test104.out test105.out
+ test104.out test105.out test106.out
SCRIPTS_GUI = test16.out
--- /dev/null
+Tests for errorformat. vim: set ft=vim ts=8 :
+
+STARTTEST
+:so small.vim
+:if !has('quickfix') | e! test.ok | wq! test.out | endif
+:set efm=%EEEE%m,%WWWW%m,%+CCCC%.%#,%-GGGG%.%#
+:cgetexpr ['WWWW', 'EEEE', 'CCCC']
+:$put =strtrans(string(map(getqflist(), '[v:val.text, v:val.valid]')))
+:cgetexpr ['WWWW', 'GGGG', 'EEEE', 'CCCC']
+:$put =strtrans(string(map(getqflist(), '[v:val.text, v:val.valid]')))
+:cgetexpr ['WWWW', 'GGGG', 'ZZZZ', 'EEEE', 'CCCC', 'YYYY']
+:$put =strtrans(string(map(getqflist(), '[v:val.text, v:val.valid]')))
+:/^Results/,$wq! test.out
+ENDTEST
+
+Results of test106:
--- /dev/null
+Results of test106:
+[['W', 1], ['E^@CCCC', 1]]
+[['W', 1], ['E^@CCCC', 1]]
+[['W', 1], ['ZZZZ', 0], ['E^@CCCC', 1], ['YYYY', 0]]
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 203,
/**/
202,
/**/