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 /src | |
| 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).
Diffstat (limited to 'src')
| -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)) |
