[Pcre-svn] [811] code/trunk: Fix alnum parsing in glob conve…

Top Page
Delete this message
Author: Subversion repository
Date:  
To: pcre-svn
Subject: [Pcre-svn] [811] code/trunk: Fix alnum parsing in glob conversion.
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