Revision: 811
http://www.exim.org/viewvc/pcre2?view=rev&revision=811
Author: zherczeg
Date: 2017-05-28 05:05:58 +0100 (Sun, 28 May 2017)
Log Message:
-----------
Fix alnum parsing in glob conversion.
Modified Paths:
--------------
code/trunk/src/pcre2_convert.c
code/trunk/testdata/testinput24
code/trunk/testdata/testoutput24
Modified: code/trunk/src/pcre2_convert.c
===================================================================
--- code/trunk/src/pcre2_convert.c 2017-05-28 03:53:09 UTC (rev 810)
+++ code/trunk/src/pcre2_convert.c 2017-05-28 04:05:58 UTC (rev 811)
@@ -509,7 +509,7 @@
return 0;
class_ptr = posix_classes;
-class_index = 0;
+class_index = 1;
while (TRUE)
{
@@ -554,19 +554,19 @@
{
switch (class_index)
{
- case 0: return isalnum(c);
- case 1: return isalpha(c);
- case 2: return 1;
- case 3: return c == CHAR_HT || c == CHAR_SPACE;
- case 4: return iscntrl(c);
- case 5: return isdigit(c);
- case 6: return isgraph(c);
- case 7: return islower(c);
- case 8: return isprint(c);
- case 9: return ispunct(c);
- case 10: return isspace(c);
- case 11: return isupper(c);
- case 12: return isalnum(c) || c == CHAR_UNDERSCORE;
+ case 1: return isalnum(c);
+ case 2: return isalpha(c);
+ case 3: return 1;
+ case 4: return c == CHAR_HT || c == CHAR_SPACE;
+ case 5: return iscntrl(c);
+ case 6: return isdigit(c);
+ case 7: return isgraph(c);
+ case 8: return islower(c);
+ case 9: return isprint(c);
+ case 10: return ispunct(c);
+ case 11: return isspace(c);
+ case 12: return isupper(c);
+ case 13: return isalnum(c) || c == CHAR_UNDERSCORE;
default: return isxdigit(c);
}
}
Modified: code/trunk/testdata/testinput24
===================================================================
--- code/trunk/testdata/testinput24 2017-05-28 03:53:09 UTC (rev 810)
+++ code/trunk/testdata/testinput24 2017-05-28 04:05:58 UTC (rev 811)
@@ -225,7 +225,7 @@
/[^a\\b\c][!]][!-][^\]\-]/
-/[[:alpha:][:xdigit:][:word:]]/
+/[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]]/
"[/-/]"
Modified: code/trunk/testdata/testoutput24
===================================================================
--- code/trunk/testdata/testoutput24 2017-05-28 03:53:09 UTC (rev 810)
+++ code/trunk/testdata/testoutput24 2017-05-28 04:05:58 UTC (rev 811)
@@ -357,8 +357,8 @@
/[^a\\b\c][!]][!-][^\]\-]/
(?s)\A[^/a\\bc][^/\]][^/\-][^/\]\-]\z
-/[[:alpha:][:xdigit:][:word:]]/
-(?s)\A[[:alpha:][:xdigit:][:word:]]\z
+/[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]]/
+(?s)\A[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]](?<!/)\z
"[/-/]"
(?s)\A[/-/](?<!/)\z