# HG changeset patch # User Bram Moolenaar # Date 1394649715 -3600 # Node ID fb24b025c7cf07db79a559a3091db42e02c1af86 # Parent c493330e972ca092e1c3da9d50723ab2735fbed1 updated for version 7.4.203 Problem: Parsing 'errorformat' is not correct. Solution: Reset "multiignore" at the start of a multi-line message. (Lcd) diff --git a/src/quickfix.c b/src/quickfix.c --- a/src/quickfix.c +++ b/src/quickfix.c @@ -751,7 +751,10 @@ restofline: 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) diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak --- a/src/testdir/Make_amiga.mak +++ b/src/testdir/Make_amiga.mak @@ -35,7 +35,7 @@ SCRIPTS = test1.out test3.out test4.out 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 @@ -157,3 +157,4 @@ test102.out: test102.in test103.out: test103.in test104.out: test104.in test105.out: test105.in +test106.out: test106.in diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak --- a/src/testdir/Make_dos.mak +++ b/src/testdir/Make_dos.mak @@ -34,7 +34,7 @@ SCRIPTS = test3.out test4.out test5.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 diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak --- a/src/testdir/Make_ming.mak +++ b/src/testdir/Make_ming.mak @@ -54,7 +54,7 @@ SCRIPTS = test3.out test4.out test5.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 diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak --- a/src/testdir/Make_os2.mak +++ b/src/testdir/Make_os2.mak @@ -36,7 +36,7 @@ SCRIPTS = test1.out test3.out test4.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 diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms --- a/src/testdir/Make_vms.mms +++ b/src/testdir/Make_vms.mms @@ -95,7 +95,7 @@ SCRIPT = test1.out test2.out test3.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: ? diff --git a/src/testdir/Makefile b/src/testdir/Makefile --- a/src/testdir/Makefile +++ b/src/testdir/Makefile @@ -31,7 +31,7 @@ SCRIPTS = test1.out test2.out test3.out 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 diff --git a/src/testdir/test106.in b/src/testdir/test106.in new file mode 100644 --- /dev/null +++ b/src/testdir/test106.in @@ -0,0 +1,16 @@ +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: diff --git a/src/testdir/test106.ok b/src/testdir/test106.ok new file mode 100644 --- /dev/null +++ b/src/testdir/test106.ok @@ -0,0 +1,4 @@ +Results of test106: +[['W', 1], ['E^@CCCC', 1]] +[['W', 1], ['E^@CCCC', 1]] +[['W', 1], ['ZZZZ', 0], ['E^@CCCC', 1], ['YYYY', 0]] diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 203, +/**/ 202, /**/ 201,