diff options
author | root <root@rshg054.dnsready.net> | 2011-08-24 23:14:38 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2011-08-24 23:14:38 +0000 |
commit | f53c212680c1817ef2337855ef8814dea6b07e4e (patch) | |
tree | c93db9dbaade4f2c86a8d550c237edf7d574f6da /core/pcre/r661.diff | |
parent | 9254c2bc6500471b22eead69781ddef84f87e2bf (diff) |
Wed Aug 24 23:14:37 UTC 2011
Diffstat (limited to 'core/pcre/r661.diff')
-rw-r--r-- | core/pcre/r661.diff | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/core/pcre/r661.diff b/core/pcre/r661.diff new file mode 100644 index 000000000..7bed4ce2e --- /dev/null +++ b/core/pcre/r661.diff @@ -0,0 +1,26 @@ +--- code/trunk/pcre_compile.c 2011/08/02 11:00:40 654 ++++ code/trunk/pcre_compile.c 2011/08/21 09:00:54 661 +@@ -2295,8 +2295,13 @@ + A user pointed out that PCRE was rejecting [:a[:digit:]] whereas Perl was not. + It seems that the appearance of a nested POSIX class supersedes an apparent + external class. For example, [:a[:digit:]b:] matches "a", "b", ":", or +-a digit. Also, unescaped square brackets may also appear as part of class +-names. For example, [:a[:abc]b:] gives unknown class "[:abc]b:]"in Perl. ++a digit. ++ ++In Perl, unescaped square brackets may also appear as part of class names. For ++example, [:a[:abc]b:] gives unknown POSIX class "[:abc]b:]". However, for ++[:a[:abc]b][b:] it gives unknown POSIX class "[:abc]b][b:]", which does not ++seem right at all. PCRE does not allow closing square brackets in POSIX class ++names. + + Arguments: + ptr pointer to the initial [ +@@ -2314,6 +2319,7 @@ + { + if (*ptr == CHAR_BACKSLASH && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET) + ptr++; ++ else if (*ptr == CHAR_RIGHT_SQUARE_BRACKET) return FALSE; + else + { + if (*ptr == terminator && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET) |