changeset 5716:fb24b025c7cf v7.4.203

updated for version 7.4.203 Problem: Parsing 'errorformat' is not correct. Solution: Reset "multiignore" at the start of a multi-line message. (Lcd)
author Bram Moolenaar <bram@vim.org>
date Wed, 12 Mar 2014 19:41:55 +0100
parents c493330e972c
children 0cc52481bfd4
files src/quickfix.c src/testdir/Make_amiga.mak src/testdir/Make_dos.mak src/testdir/Make_ming.mak src/testdir/Make_os2.mak src/testdir/Make_vms.mms src/testdir/Makefile src/testdir/test106.in src/testdir/test106.ok src/version.c
diffstat 10 files changed, 32 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- 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)
--- 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
--- 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
 
--- 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
 
--- 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
 
--- 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: ?
--- 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
 
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:
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]]
--- 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,