Fix printing of *MARK names containing binary zeroes in pcre2test.
This commit is contained in:
parent
255974ed28
commit
57c44eec15
|
@ -1,8 +1,8 @@
|
||||||
Change Log for PCRE2
|
Change Log for PCRE2
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
Version 10.21 xx-xxx-xxxx
|
Version 10.21-RC1 15-December-2015
|
||||||
-------------------------
|
----------------------------------
|
||||||
|
|
||||||
1. Improve matching speed of patterns starting with + or * in JIT.
|
1. Improve matching speed of patterns starting with + or * in JIT.
|
||||||
|
|
||||||
|
@ -389,6 +389,8 @@ command line arguments.
|
||||||
112. Implemented PCRE2_SUBSTITUTE_UNKNOWN_UNSET and PCRE2_SUBSTITUTE_OVERFLOW_
|
112. Implemented PCRE2_SUBSTITUTE_UNKNOWN_UNSET and PCRE2_SUBSTITUTE_OVERFLOW_
|
||||||
LENGTH.
|
LENGTH.
|
||||||
|
|
||||||
|
113. Fix printing of *MARK names that contain binary zeroes in pcre2test.
|
||||||
|
|
||||||
|
|
||||||
Version 10.20 30-June-2015
|
Version 10.20 30-June-2015
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
|
@ -2545,13 +2545,14 @@ return (int)(pp - p);
|
||||||
*************************************************/
|
*************************************************/
|
||||||
|
|
||||||
/* Must handle UTF-8 strings in utf8 mode. Yields number of characters printed.
|
/* Must handle UTF-8 strings in utf8 mode. Yields number of characters printed.
|
||||||
If handed a NULL file, just counts chars without printing. */
|
For printing *MARK strings, a negative length is given. If handed a NULL file,
|
||||||
|
just counts chars without printing. */
|
||||||
|
|
||||||
static int pchars8(PCRE2_SPTR8 p, int length, BOOL utf, FILE *f)
|
static int pchars8(PCRE2_SPTR8 p, int length, BOOL utf, FILE *f)
|
||||||
{
|
{
|
||||||
uint32_t c = 0;
|
uint32_t c = 0;
|
||||||
int yield = 0;
|
int yield = 0;
|
||||||
if (length < 0) length = strlen((char *)p);
|
if (length < 0) length = p[-1];
|
||||||
while (length-- > 0)
|
while (length-- > 0)
|
||||||
{
|
{
|
||||||
if (utf)
|
if (utf)
|
||||||
|
@ -2579,12 +2580,13 @@ return yield;
|
||||||
*************************************************/
|
*************************************************/
|
||||||
|
|
||||||
/* Must handle UTF-16 strings in utf mode. Yields number of characters printed.
|
/* Must handle UTF-16 strings in utf mode. Yields number of characters printed.
|
||||||
If handed a NULL file, just counts chars without printing. */
|
For printing *MARK strings, a negative length is given. If handed a NULL file,
|
||||||
|
just counts chars without printing. */
|
||||||
|
|
||||||
static int pchars16(PCRE2_SPTR16 p, int length, BOOL utf, FILE *f)
|
static int pchars16(PCRE2_SPTR16 p, int length, BOOL utf, FILE *f)
|
||||||
{
|
{
|
||||||
int yield = 0;
|
int yield = 0;
|
||||||
if (length < 0) length = strlen16(p);
|
if (length < 0) length = p[-1];
|
||||||
while (length-- > 0)
|
while (length-- > 0)
|
||||||
{
|
{
|
||||||
uint32_t c = *p++ & 0xffff;
|
uint32_t c = *p++ & 0xffff;
|
||||||
|
@ -2612,13 +2614,14 @@ return yield;
|
||||||
*************************************************/
|
*************************************************/
|
||||||
|
|
||||||
/* Must handle UTF-32 strings in utf mode. Yields number of characters printed.
|
/* Must handle UTF-32 strings in utf mode. Yields number of characters printed.
|
||||||
If handed a NULL file, just counts chars without printing. */
|
For printing *MARK strings, a negative length is given.If handed a NULL file,
|
||||||
|
just counts chars without printing. */
|
||||||
|
|
||||||
static int pchars32(PCRE2_SPTR32 p, int length, BOOL utf, FILE *f)
|
static int pchars32(PCRE2_SPTR32 p, int length, BOOL utf, FILE *f)
|
||||||
{
|
{
|
||||||
int yield = 0;
|
int yield = 0;
|
||||||
(void)(utf); /* Avoid compiler warning */
|
(void)(utf); /* Avoid compiler warning */
|
||||||
if (length < 0) length = strlen32(p);
|
if (length < 0) length = p[-1];
|
||||||
while (length-- > 0)
|
while (length-- > 0)
|
||||||
{
|
{
|
||||||
uint32_t c = *p++;
|
uint32_t c = *p++;
|
||||||
|
@ -6402,7 +6405,8 @@ else for (gmatched = 0;; gmatched++)
|
||||||
TESTFLD(match_data, mark, !=, NULL))
|
TESTFLD(match_data, mark, !=, NULL))
|
||||||
{
|
{
|
||||||
fprintf(outfile, ", mark=");
|
fprintf(outfile, ", mark=");
|
||||||
PCHARS(rubriclength, CASTFLD(void *, match_data, mark), 0, -1, utf, outfile);
|
PCHARS(rubriclength, CASTFLD(void *, match_data, mark), 0, -1, utf,
|
||||||
|
outfile);
|
||||||
rubriclength += 7;
|
rubriclength += 7;
|
||||||
}
|
}
|
||||||
fprintf(outfile, ": ");
|
fprintf(outfile, ": ");
|
||||||
|
|
|
@ -4786,4 +4786,18 @@ a)"xI
|
||||||
\=offset_limit=1100000000000000000000
|
\=offset_limit=1100000000000000000000
|
||||||
\=copy=11000000000
|
\=copy=11000000000
|
||||||
|
|
||||||
|
/(*MARK:A\x00b)/mark
|
||||||
|
abc
|
||||||
|
|
||||||
|
/(*MARK:A\x00b)/mark,alt_verbnames
|
||||||
|
abc
|
||||||
|
|
||||||
|
# /(*MARK:A\x00b)/
|
||||||
|
/28 2a 4d 41 52 4b 3a 41 00 62 29/mark,hex
|
||||||
|
abc
|
||||||
|
|
||||||
|
# /(*MARK:A\x00b)/
|
||||||
|
/28 2a 4d 41 52 4b 3a 41 00 62 29/mark,hex,alt_verbnames
|
||||||
|
abc
|
||||||
|
|
||||||
# End of testinput2
|
# End of testinput2
|
||||||
|
|
|
@ -15136,4 +15136,26 @@ Failed: error -55 at offset 3 in replacement: requested value is not set
|
||||||
\=copy=11000000000
|
\=copy=11000000000
|
||||||
** Invalid value in 'copy=11000000000'
|
** Invalid value in 'copy=11000000000'
|
||||||
|
|
||||||
|
/(*MARK:A\x00b)/mark
|
||||||
|
abc
|
||||||
|
0:
|
||||||
|
MK: A\x00b
|
||||||
|
|
||||||
|
/(*MARK:A\x00b)/mark,alt_verbnames
|
||||||
|
abc
|
||||||
|
0:
|
||||||
|
MK: A\x00b
|
||||||
|
|
||||||
|
# /(*MARK:A\x00b)/
|
||||||
|
/28 2a 4d 41 52 4b 3a 41 00 62 29/mark,hex
|
||||||
|
abc
|
||||||
|
0:
|
||||||
|
MK: A\x00b
|
||||||
|
|
||||||
|
# /(*MARK:A\x00b)/
|
||||||
|
/28 2a 4d 41 52 4b 3a 41 00 62 29/mark,hex,alt_verbnames
|
||||||
|
abc
|
||||||
|
0:
|
||||||
|
MK: A\x00b
|
||||||
|
|
||||||
# End of testinput2
|
# End of testinput2
|
||||||
|
|
Loading…
Reference in New Issue