Fixed an issue when \p{Any} inside an xclass did not read the current character.

This commit is contained in:
Zoltán Herczeg 2015-08-05 09:04:01 +00:00
parent b89a448d8d
commit 4003ae5911
4 changed files with 12 additions and 3 deletions

View File

@ -102,6 +102,9 @@ be computed.
(?(R<digits>). This omission was discovered by Karl Skomski with the LLVM (?(R<digits>). This omission was discovered by Karl Skomski with the LLVM
fuzzer. fuzzer.
27. Fixed an issue when \p{Any} inside an xclass did not read the current
character.
Version 10.20 30-June-2015 Version 10.20 30-June-2015
-------------------------- --------------------------

View File

@ -4970,9 +4970,8 @@ while (*cc != XCL_END)
/* Any either accepts everything or ignored. */ /* Any either accepts everything or ignored. */
if (cc[-1] == XCL_PROP) if (cc[-1] == XCL_PROP)
{ {
if (list != backtracks) compile_char1_matchingpath(common, OP_ALLANY, cc, backtracks, FALSE);
compile_char1_matchingpath(common, OP_ALLANY, cc, backtracks, FALSE); if (list == backtracks)
else
add_jump(compiler, backtracks, JUMP(SLJIT_JUMP)); add_jump(compiler, backtracks, JUMP(SLJIT_JUMP));
return; return;
} }

3
testdata/testinput4 vendored
View File

@ -2221,4 +2221,7 @@
"[\S\V\H]"utf "[\S\V\H]"utf
/[^\p{Any}]*+x/utf
x
# End of testinput4 # End of testinput4

View File

@ -3741,4 +3741,8 @@ No match
"[\S\V\H]"utf "[\S\V\H]"utf
/[^\p{Any}]*+x/utf
x
0: x
# End of testinput4 # End of testinput4