| From 5238ab10c5f3082a4be38410bd01a47ab176dfde Mon Sep 17 00:00:00 2001 |
| From: Christian Persch <chpe@gnome.org> |
| Date: Sun, 12 Feb 2012 19:29:42 +0100 |
| Subject: [PATCH] regex: Use g_ascii_is[x]digit |
| |
| --- |
| glib/pcre/pcre_compile.c | 22 ++++++++++++---------- |
| 1 files changed, 12 insertions(+), 10 deletions(-) |
| |
| diff --git a/glib/pcre/pcre_compile.c b/glib/pcre/pcre_compile.c |
| index 8070f51..eb985df 100644 |
| --- a/glib/pcre/pcre_compile.c |
| +++ b/glib/pcre/pcre_compile.c |
| @@ -52,6 +52,7 @@ supporting internal functions that are not used by other modules. */ |
| |
| #include "pcre_internal.h" |
| |
| +#include "gstrfuncs.h" |
| |
| /* When PCRE_DEBUG is defined, we need the pcre(16)_printint() function, which |
| is also used by pcretest. PCRE_DEBUG is not defined when building a production |
| @@ -513,6 +514,7 @@ into a subtraction and unsigned comparison). */ |
| |
| #define IS_DIGIT(x) ((x) >= CHAR_0 && (x) <= CHAR_9) |
| |
| +#if 0 |
| #ifndef EBCDIC |
| |
| /* This is the "normal" case, for ASCII systems, and EBCDIC systems running in |
| @@ -626,7 +628,7 @@ static const pcre_uint8 ebcdic_chartab[] = { /* chartable partial dup */ |
| 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, /* 0 - 7 */ |
| 0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x00};/* 8 -255 */ |
| #endif |
| - |
| +#endif /* 0 */ |
| |
| /* Definition to allow mutual recursion */ |
| |
| @@ -812,10 +814,10 @@ else |
| { |
| /* In JavaScript, \u must be followed by four hexadecimal numbers. |
| Otherwise it is a lowercase u letter. */ |
| - if (MAX_255(ptr[1]) && (digitab[ptr[1]] & ctype_xdigit) != 0 |
| - && MAX_255(ptr[2]) && (digitab[ptr[2]] & ctype_xdigit) != 0 |
| - && MAX_255(ptr[3]) && (digitab[ptr[3]] & ctype_xdigit) != 0 |
| - && MAX_255(ptr[4]) && (digitab[ptr[4]] & ctype_xdigit) != 0) |
| + if (MAX_255(ptr[1]) && g_ascii_isxdigit(ptr[1]) != 0 |
| + && MAX_255(ptr[2]) && g_ascii_isxdigit(ptr[2]) != 0 |
| + && MAX_255(ptr[3]) && g_ascii_isxdigit(ptr[3]) != 0 |
| + && MAX_255(ptr[4]) && g_ascii_isxdigit(ptr[4]) != 0) |
| { |
| c = 0; |
| for (i = 0; i < 4; ++i) |
| @@ -1012,8 +1014,8 @@ else |
| { |
| /* In JavaScript, \x must be followed by two hexadecimal numbers. |
| Otherwise it is a lowercase x letter. */ |
| - if (MAX_255(ptr[1]) && (digitab[ptr[1]] & ctype_xdigit) != 0 |
| - && MAX_255(ptr[2]) && (digitab[ptr[2]] & ctype_xdigit) != 0) |
| + if (MAX_255(ptr[1]) && g_ascii_isxdigit(ptr[1]) != 0 |
| + && MAX_255(ptr[2]) && g_ascii_isxdigit(ptr[2]) != 0) |
| { |
| c = 0; |
| for (i = 0; i < 2; ++i) |
| @@ -1036,7 +1038,7 @@ else |
| const pcre_uchar *pt = ptr + 2; |
| |
| c = 0; |
| - while (MAX_255(*pt) && (digitab[*pt] & ctype_xdigit) != 0) |
| + while (MAX_255(*pt) && g_ascii_isxdigit(*pt) != 0) |
| { |
| register int cc = *pt++; |
| if (c == 0 && cc == CHAR_0) continue; /* Leading zeroes */ |
| @@ -1060,7 +1062,7 @@ else |
| |
| if (c < 0) |
| { |
| - while (MAX_255(*pt) && (digitab[*pt] & ctype_xdigit) != 0) pt++; |
| + while (MAX_255(*pt) && g_ascii_isxdigit(*pt) != 0) pt++; |
| *errorcodeptr = ERR34; |
| } |
| |
| @@ -1078,7 +1080,7 @@ else |
| /* Read just a single-byte hex-defined char */ |
| |
| c = 0; |
| - while (i++ < 2 && MAX_255(ptr[1]) && (digitab[ptr[1]] & ctype_xdigit) != 0) |
| + while (i++ < 2 && MAX_255(ptr[1]) && g_ascii_isxdigit(ptr[1]) != 0) |
| { |
| int cc; /* Some compilers don't like */ |
| cc = *(++ptr); /* ++ in initializers */ |
| -- |
| 1.7.5.1.217.g4e3aa.dirty |
| |