From 52fd87bf348715c13b469fd32b2b56d3bfe1d1f9 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Fri, 19 Nov 2010 18:37:10 +0100 Subject: [PATCH] Add support for "%g" character class in patterns (from Lua 5.2). --- src/lib_string.c | 6 +++--- src/lj_char.h | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib_string.c b/src/lib_string.c index c64baed5..23ef70f9 100644 --- a/src/lib_string.c +++ b/src/lib_string.c @@ -181,9 +181,9 @@ static const char *classend(MatchState *ms, const char *p) } static const unsigned char match_class_map[32] = { - 0, LJ_CHAR_ALPHA, 0, LJ_CHAR_CNTRL, LJ_CHAR_DIGIT, 0,0,0,0,0,0,0, - LJ_CHAR_LOWER, 0,0,0, LJ_CHAR_PUNCT, 0,0, LJ_CHAR_SPACE, 0, - LJ_CHAR_UPPER, 0, LJ_CHAR_ALNUM, LJ_CHAR_XDIGIT, 0,0,0,0,0,0,0 + 0,LJ_CHAR_ALPHA,0,LJ_CHAR_CNTRL,LJ_CHAR_DIGIT,0,0,LJ_CHAR_GRAPH,0,0,0,0, + LJ_CHAR_LOWER,0,0,0,LJ_CHAR_PUNCT,0,0,LJ_CHAR_SPACE,0, + LJ_CHAR_UPPER,0,LJ_CHAR_ALNUM,LJ_CHAR_XDIGIT,0,0,0,0,0,0,0 }; static int match_class(int c, int cl) diff --git a/src/lj_char.h b/src/lj_char.h index d474285c..7b7c1322 100644 --- a/src/lj_char.h +++ b/src/lj_char.h @@ -18,6 +18,7 @@ #define LJ_CHAR_IDENT 0x80 #define LJ_CHAR_ALPHA (LJ_CHAR_LOWER|LJ_CHAR_UPPER) #define LJ_CHAR_ALNUM (LJ_CHAR_ALPHA|LJ_CHAR_DIGIT) +#define LJ_CHAR_GRAPH (LJ_CHAR_ALNUM|LJ_CHAR_PUNCT) /* Only pass -1 or 0..255 to these macros. Never pass a signed char! */ #define lj_char_isa(c, t) (lj_char_bits[(c)+1] & t) @@ -31,6 +32,7 @@ #define lj_char_isident(c) lj_char_isa((c), LJ_CHAR_IDENT) #define lj_char_isalpha(c) lj_char_isa((c), LJ_CHAR_ALPHA) #define lj_char_isalnum(c) lj_char_isa((c), LJ_CHAR_ALNUM) +#define lj_char_isgraph(c) lj_char_isa((c), LJ_CHAR_GRAPH) #define lj_char_toupper(c) ((c) - (lj_char_islower(c) >> 1)) #define lj_char_tolower(c) ((c) + lj_char_isupper(c))