mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-10 12:55:48 +01:00
95 lines
3.4 KiB
Diff
95 lines
3.4 KiB
Diff
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
|
|
|