Fix callout display bug in pcre2test.
This commit is contained in:
parent
7010fc1fa0
commit
2fe6229033
@ -54,6 +54,10 @@ not recognize this syntax.
|
||||
7. Automatic callouts are no longer generated before and after callouts in the
|
||||
pattern.
|
||||
|
||||
8. When pcre2test was outputing information from a callout, the caret indicator
|
||||
for the current position in the subject line was incorrect if it was after an
|
||||
escape sequence for a character whose code point was greater than \x{ff}.
|
||||
|
||||
|
||||
Version 10.22 29-July-2016
|
||||
--------------------------
|
||||
|
@ -2528,6 +2528,8 @@ static int
|
||||
pchar(uint32_t c, BOOL utf, FILE *f)
|
||||
{
|
||||
int n = 0;
|
||||
char tempbuffer[16];
|
||||
|
||||
if (PRINTOK(c))
|
||||
{
|
||||
if (f != NULL) fprintf(f, "%c", c);
|
||||
@ -2549,6 +2551,8 @@ if (c < 0x100)
|
||||
}
|
||||
|
||||
if (f != NULL) n = fprintf(f, "\\x{%02x}", c);
|
||||
else n = sprintf(tempbuffer, "\\x{%02x}", c);
|
||||
|
||||
return n >= 0 ? n : 0;
|
||||
}
|
||||
|
||||
@ -5070,7 +5074,7 @@ during matching. */
|
||||
#ifdef SUPPORT_PCRE2_8
|
||||
if (test_mode == PCRE8_MODE)
|
||||
{
|
||||
VALGRIND_MAKE_MEM_UNDEFINED(pbuffer8 + valgrind_access_length,
|
||||
VALGRIND_MAKE_MEM_UNDEFINED(pbuffer8 + valgrind_access_length,
|
||||
pbuffer8_size - valgrind_access_length);
|
||||
}
|
||||
#endif
|
||||
@ -5360,10 +5364,10 @@ if (post_start > 0)
|
||||
for (i = 0; i < subject_length - pre_start - post_start + 4; i++)
|
||||
fprintf(outfile, " ");
|
||||
|
||||
if (cb->next_item_length != 0)
|
||||
if (cb->next_item_length != 0)
|
||||
fprintf(outfile, "%.*s", (int)(cb->next_item_length),
|
||||
pbuffer8 + cb->pattern_position);
|
||||
|
||||
|
||||
fprintf(outfile, "\n");
|
||||
first_callout = FALSE;
|
||||
|
||||
@ -7708,14 +7712,14 @@ while (notdone)
|
||||
skipping = FALSE;
|
||||
setlocale(LC_CTYPE, "C");
|
||||
}
|
||||
|
||||
/* Otherwise, if we are not skipping, and the line is not a data comment
|
||||
|
||||
/* Otherwise, if we are not skipping, and the line is not a data comment
|
||||
line starting with "\=", process a data line. */
|
||||
|
||||
|
||||
else if (!skipping && !(p[0] == '\\' && p[1] == '=' && isspace(p[2])))
|
||||
{
|
||||
{
|
||||
rc = process_data();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* We do not have a pattern set up for testing. Lines starting with # are
|
||||
|
3
testdata/testinput5
vendored
3
testdata/testinput5
vendored
@ -1733,4 +1733,7 @@
|
||||
|
||||
/ab(?<=A\RB)/utf
|
||||
|
||||
/../utf,auto_callout
|
||||
\n\x{123}\x{123}\x{123}\x{123}
|
||||
|
||||
# End of testinput5
|
||||
|
9
testdata/testoutput5
vendored
9
testdata/testoutput5
vendored
@ -4171,4 +4171,13 @@ Failed: error 125 at offset 1: lookbehind assertion is not fixed length
|
||||
/ab(?<=A\RB)/utf
|
||||
Failed: error 125 at offset 2: lookbehind assertion is not fixed length
|
||||
|
||||
/../utf,auto_callout
|
||||
\n\x{123}\x{123}\x{123}\x{123}
|
||||
--->\x{0a}\x{123}\x{123}\x{123}\x{123}
|
||||
+0 ^ .
|
||||
+0 ^ .
|
||||
+1 ^ ^ .
|
||||
+2 ^ ^
|
||||
0: \x{123}\x{123}
|
||||
|
||||
# End of testinput5
|
||||
|
Loading…
Reference in New Issue
Block a user