diff options
author | Mike Pall <mike> | 2010-11-19 18:37:10 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-11-19 18:37:10 +0100 |
commit | 52fd87bf348715c13b469fd32b2b56d3bfe1d1f9 (patch) | |
tree | cdb4725e0176a4db9715fe1aa9ca87baafb95cce | |
parent | 7cc981c14067d4b0e774a6bfb0acfc2f5c911f0d (diff) | |
download | luajit-52fd87bf348715c13b469fd32b2b56d3bfe1d1f9.tar.gz luajit-52fd87bf348715c13b469fd32b2b56d3bfe1d1f9.tar.bz2 luajit-52fd87bf348715c13b469fd32b2b56d3bfe1d1f9.zip |
Add support for "%g" character class in patterns (from Lua 5.2).
-rw-r--r-- | src/lib_string.c | 6 | ||||
-rw-r--r-- | 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) | |||
181 | } | 181 | } |
182 | 182 | ||
183 | static const unsigned char match_class_map[32] = { | 183 | static const unsigned char match_class_map[32] = { |
184 | 0, LJ_CHAR_ALPHA, 0, LJ_CHAR_CNTRL, LJ_CHAR_DIGIT, 0,0,0,0,0,0,0, | 184 | 0,LJ_CHAR_ALPHA,0,LJ_CHAR_CNTRL,LJ_CHAR_DIGIT,0,0,LJ_CHAR_GRAPH,0,0,0,0, |
185 | LJ_CHAR_LOWER, 0,0,0, LJ_CHAR_PUNCT, 0,0, LJ_CHAR_SPACE, 0, | 185 | LJ_CHAR_LOWER,0,0,0,LJ_CHAR_PUNCT,0,0,LJ_CHAR_SPACE,0, |
186 | LJ_CHAR_UPPER, 0, LJ_CHAR_ALNUM, LJ_CHAR_XDIGIT, 0,0,0,0,0,0,0 | 186 | LJ_CHAR_UPPER,0,LJ_CHAR_ALNUM,LJ_CHAR_XDIGIT,0,0,0,0,0,0,0 |
187 | }; | 187 | }; |
188 | 188 | ||
189 | static int match_class(int c, int cl) | 189 | 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 @@ | |||
18 | #define LJ_CHAR_IDENT 0x80 | 18 | #define LJ_CHAR_IDENT 0x80 |
19 | #define LJ_CHAR_ALPHA (LJ_CHAR_LOWER|LJ_CHAR_UPPER) | 19 | #define LJ_CHAR_ALPHA (LJ_CHAR_LOWER|LJ_CHAR_UPPER) |
20 | #define LJ_CHAR_ALNUM (LJ_CHAR_ALPHA|LJ_CHAR_DIGIT) | 20 | #define LJ_CHAR_ALNUM (LJ_CHAR_ALPHA|LJ_CHAR_DIGIT) |
21 | #define LJ_CHAR_GRAPH (LJ_CHAR_ALNUM|LJ_CHAR_PUNCT) | ||
21 | 22 | ||
22 | /* Only pass -1 or 0..255 to these macros. Never pass a signed char! */ | 23 | /* Only pass -1 or 0..255 to these macros. Never pass a signed char! */ |
23 | #define lj_char_isa(c, t) (lj_char_bits[(c)+1] & t) | 24 | #define lj_char_isa(c, t) (lj_char_bits[(c)+1] & t) |
@@ -31,6 +32,7 @@ | |||
31 | #define lj_char_isident(c) lj_char_isa((c), LJ_CHAR_IDENT) | 32 | #define lj_char_isident(c) lj_char_isa((c), LJ_CHAR_IDENT) |
32 | #define lj_char_isalpha(c) lj_char_isa((c), LJ_CHAR_ALPHA) | 33 | #define lj_char_isalpha(c) lj_char_isa((c), LJ_CHAR_ALPHA) |
33 | #define lj_char_isalnum(c) lj_char_isa((c), LJ_CHAR_ALNUM) | 34 | #define lj_char_isalnum(c) lj_char_isa((c), LJ_CHAR_ALNUM) |
35 | #define lj_char_isgraph(c) lj_char_isa((c), LJ_CHAR_GRAPH) | ||
34 | 36 | ||
35 | #define lj_char_toupper(c) ((c) - (lj_char_islower(c) >> 1)) | 37 | #define lj_char_toupper(c) ((c) - (lj_char_islower(c) >> 1)) |
36 | #define lj_char_tolower(c) ((c) + lj_char_isupper(c)) | 38 | #define lj_char_tolower(c) ((c) + lj_char_isupper(c)) |