To: vim_dev@googlegroups.com
Subject: Patch 7.3.538
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------

Patch 7.3.538
Problem:    'efm' does not handle Tabs in pointer lines.
Solution:   Add Tab support. Improve tests. (Lech Lorens)
Files:	    src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok


*** ../vim-7.3.537/src/quickfix.c	2012-04-25 18:57:17.000000000 +0200
--- src/quickfix.c	2012-06-01 18:24:07.000000000 +0200
***************
*** 247,253 ****
  			{'t', "."},
  			{'m', ".\\+"},
  			{'r', ".*"},
! 			{'p', "[- .]*"},
  			{'v', "\\d\\+"},
  			{'s', ".\\+"}
  		    };
--- 247,253 ----
  			{'t', "."},
  			{'m', ".\\+"},
  			{'r', ".*"},
! 			{'p', "[- 	.]*"},
  			{'v', "\\d\\+"},
  			{'s', ".\\+"}
  		    };
***************
*** 677,687 ****
  		}
  		if ((i = (int)fmt_ptr->addr[7]) > 0)		/* %p */
  		{
  		    if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL)
  			continue;
! 		    col = (int)(regmatch.endp[i] - regmatch.startp[i] + 1);
! 		    if (*((char_u *)regmatch.startp[i]) != TAB)
! 			use_viscol = TRUE;
  		}
  		if ((i = (int)fmt_ptr->addr[8]) > 0)		/* %v */
  		{
--- 677,699 ----
  		}
  		if ((i = (int)fmt_ptr->addr[7]) > 0)		/* %p */
  		{
+ 		    char_u	*match_ptr;
+ 
  		    if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL)
  			continue;
! 		    col = 0;
! 		    for (match_ptr = regmatch.startp[i];
! 				   match_ptr != regmatch.endp[i]; ++match_ptr)
! 		    {
! 			++col;
! 			if (*match_ptr == TAB)
! 			{
! 			    col += 7;
! 			    col -= col % 8;
! 			}
! 		    }
! 		    ++col;
! 		    use_viscol = TRUE;
  		}
  		if ((i = (int)fmt_ptr->addr[8]) > 0)		/* %v */
  		{
*** ../vim-7.3.537/src/testdir/test10.in	2011-08-10 18:36:49.000000000 +0200
--- src/testdir/test10.in	2012-06-01 18:22:40.000000000 +0200
***************
*** 8,48 ****
  :7/start of errorfile/,/end of errorfile/w! Xerrorfile1
  :7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
  :/start of testfile/,/end of testfile/w! Xtestfile
  :cf Xerrorfile2
  :clast
  :copen
  :let a=w:quickfix_title
  :wincmd p
! gR=a

  :cf Xerrorfile1
! rA
  :cn
! rB
  :cn
! rC
  :cn
! rD
  :cn
! rE
  :cn
  :wincmd w
  :let a=w:quickfix_title
  :wincmd p
! gR=a

  :w! test.out             " Write contents of this file
  :qa!
  ENDTEST
  
  start of errorfile
  "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
! ﻿"Xtestfile", line 7 col 19; this is an error
  gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include  version.c
! Xtestfile:13: parse error before `asd'
  make: *** [vim] Error 1
! in file "Xtestfile" linenr 16: there is an error
  
  2 returned
! "Xtestfile", linenr 19: yet another problem
  
  Does anyone know what is the problem and how to correction it?
  "Xtestfile", line 21 col 9: What is the title of the quickfix window?
--- 8,88 ----
  :7/start of errorfile/,/end of errorfile/w! Xerrorfile1
  :7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
  :/start of testfile/,/end of testfile/w! Xtestfile
+ :set efm+==%f=\\,\ line\ %l%*\\D%v%*[^\ ]\ %m
+ :set efm^=%AError\ in\ \"%f\"\ at\ line\ %l:,%Z%p^,%C%m
  :cf Xerrorfile2
  :clast
  :copen
  :let a=w:quickfix_title
  :wincmd p
! lgR=a

  :cf Xerrorfile1
! grA
  :cn
! gRLINE 6, COL 19
  :cn
! gRNO COLUMN SPECIFIED
  :cn
! gRAGAIN NO COLUMN
  :cn
! gRCOL 1
  :cn
+ gRCOL 2
+ :cn
+ gRCOL 10
+ :cn
+ gRVCOL 10
+ :cn
+ grI
+ :cn
+ gR. SPACE POINTER
+ :cn
+ gR. DOT POINTER
+ :cn
+ gR. DASH POINTER
+ :cn
+ gR. TAB-SPACE POINTER
+ :clast
+ :cprev
+ :cprev
  :wincmd w
  :let a=w:quickfix_title
  :wincmd p
! lgR=a

  :w! test.out             " Write contents of this file
  :qa!
  ENDTEST
  
  start of errorfile
  "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
! ﻿"Xtestfile", line 6 col 19; this is an error
  gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include  version.c
! Xtestfile:9: parse error before `asd'
  make: *** [vim] Error 1
! in file "Xtestfile" linenr 10: there is an error
  
  2 returned
! "Xtestfile", line 11 col 1; this is an error
! "Xtestfile", line 12 col 2; this is another error
! "Xtestfile", line 14:10; this is an error in column 10
! =Xtestfile=, line 15:10; this is another error, but in vcol 10 this time
! "Xtestfile", linenr 16: yet another problem
! Error in "Xtestfile" at line 17:
! x should be a dot
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 17
!             ^
! Error in "Xtestfile" at line 18:
! x should be a dot
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 18
! .............^
! Error in "Xtestfile" at line 19:
! x should be a dot
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 19
! --------------^
! Error in "Xtestfile" at line 20:
! x should be a dot
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 20
! 	       ^
  
  Does anyone know what is the problem and how to correction it?
  "Xtestfile", line 21 col 9: What is the title of the quickfix window?
***************
*** 50,74 ****
  end of errorfile
  
  start of testfile
! line 2  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 4  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 5  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 6  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 7  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 8  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 9  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 11 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 12 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 13 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 14 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 15 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 16 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 17 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 21 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 22 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  end of testfile
--- 90,114 ----
  end of errorfile
  
  start of testfile
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  2
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  3
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  4
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  5
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  6
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  7
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  8
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  9
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 10
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 11
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 12
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 13
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 14
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 15
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 16
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 17
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 18
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 19
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 20
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 21
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 22
  end of testfile
*** ../vim-7.3.537/src/testdir/test10.ok	2011-08-10 18:36:49.000000000 +0200
--- src/testdir/test10.ok	2012-06-01 18:22:40.000000000 +0200
***************
*** 1,23 ****
  start of testfile
! line 2  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 4  xxxAxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 5  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 6  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 7  xxxxxxxxxxBxxxxxxxxxxxxxxxxxxx
! line 8  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 9  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 11 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 12 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! Cine 13 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 14 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 15 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! Dine 16 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 17 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! Eine 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 21 :cf Xerrorfile1xxxxxxxxxxxxxxx
! line 22 :cf Xerrorfile2xxxxxxxxxxxxxxx
  end of testfile
--- 1,23 ----
  start of testfile
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  2
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  3
! 	xxxxxxxxxxAxxxxxxxxxxxxxxxxxxx    line  4
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  5
! 	xxxxxxxxxxxxxxxxxLINE 6, COL 19   line  6
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  7
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  8
! 	NO COLUMN SPECIFIEDxxxxxxxxxxx    line  9
! 	AGAIN NO COLUMNxxxxxxxxxxxxxxx    line 10
! COL 1	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 11
! 	COL 2xxxxxxxxxxxxxxxxxxxxxxxxx    line 12
! 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 13
! 	xxxxxxxxCOL 10xxxxxxxxxxxxxxxx    line 14
! 	xVCOL 10xxxxxxxxxxxxxxxxxxxxxx    line 15
! 	Ixxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 16
! 	xxxx. SPACE POINTERxxxxxxxxxxx    line 17
! 	xxxxx. DOT POINTERxxxxxxxxxxxx    line 18
! 	xxxxxx. DASH POINTERxxxxxxxxxx    line 19
! 	xxxxxxx. TAB-SPACE POINTERxxxx    line 20
! 	xxxxxxxx:cf Xerrorfile1xxxxxxx    line 21
! 	xxxxxxxx:cf Xerrorfile2xxxxxxx    line 22
  end of testfile
*** ../vim-7.3.537/src/version.c	2012-06-01 17:49:51.000000000 +0200
--- src/version.c	2012-06-01 18:22:27.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     538,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
18. Your wife drapes a blond wig over your monitor to remind you of what she
    looks like.

 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
