mirror of
https://github.com/vim/vim
synced 2025-07-16 09:12:00 +00:00
updated for version 7.3.538
Problem: 'efm' does not handle Tabs in pointer lines. Solution: Add Tab support. Improve tests. (Lech Lorens)
This commit is contained in:
@ -247,7 +247,7 @@ qf_init_ext(qi, efile, buf, tv, errorformat, newlist, lnumfirst, lnumlast,
|
||||
{'t', "."},
|
||||
{'m', ".\\+"},
|
||||
{'r', ".*"},
|
||||
{'p', "[- .]*"},
|
||||
{'p', "[- .]*"},
|
||||
{'v', "\\d\\+"},
|
||||
{'s', ".\\+"}
|
||||
};
|
||||
@ -677,11 +677,23 @@ restofline:
|
||||
}
|
||||
if ((i = (int)fmt_ptr->addr[7]) > 0) /* %p */
|
||||
{
|
||||
char_u *match_ptr;
|
||||
|
||||
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;
|
||||
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 */
|
||||
{
|
||||
|
@ -8,41 +8,81 @@ STARTTEST
|
||||
: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
|
||||
gR=a
|
||||
lgR=a
|
||||
|
||||
:cf Xerrorfile1
|
||||
:cf Xerrorfile1
|
||||
grA
|
||||
:cn
|
||||
:cn
|
||||
gRLINE 6, COL 19
|
||||
:cn
|
||||
:cn
|
||||
gRNO COLUMN SPECIFIED
|
||||
:cn
|
||||
:cn
|
||||
gRAGAIN NO COLUMN
|
||||
:cn
|
||||
: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
|
||||
:wincmd p
|
||||
lgR=a
|
||||
|
||||
:w! test.out " Write contents of this file
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
start of errorfile
|
||||
start of errorfile
|
||||
"Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
|
||||
"Xtestfile", line 7 col 19; this is an error
|
||||
"Xtestfile", line 6 col 19; this is an error
|
||||
gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
|
||||
Xtestfile:13: parse error before `asd'
|
||||
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
|
||||
^
|
||||
|
||||
@ -50,25 +90,25 @@ 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?
|
||||
"Xtestfile", line 22 col 9: What is the title of the quickfix window?
|
||||
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
|
||||
|
||||
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
|
||||
|
@ -1,23 +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
|
||||
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
|
||||
|
@ -714,6 +714,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
538,
|
||||
/**/
|
||||
537,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user