From 5f237d79033b2109afb768bc889611fa9630e00b Mon Sep 17 00:00:00 2001 From: akr Date: Thu, 3 Jan 2008 08:44:01 +0000 Subject: * encoding.c (rb_isalnum): defined. (rb_isalpha): ditto. (rb_isblank): ditto. (rb_iscntrl): ditto. (rb_isdigit): ditto. (rb_isgraph): ditto. (rb_islower): ditto. (rb_isprint): ditto. (rb_ispunct): ditto. (rb_isspace): ditto. (rb_isupper): ditto. (rb_isxdigit): ditto. (rb_tolower): ditto. (rb_toupper): ditto. * include/ruby/ruby.h: don't include include/ruby/encoding.h. (rb_isascii): defined. (rb_isalnum): declared. (rb_isalpha): ditto. (rb_isblank): ditto. (rb_iscntrl): ditto. (rb_isdigit): ditto. (rb_isgraph): ditto. (rb_islower): ditto. (rb_isprint): ditto. (rb_ispunct): ditto. (rb_isspace): ditto. (rb_isupper): ditto. (rb_isxdigit): ditto. (rb_tolower): ditto. (rb_toupper): ditto. (ISASCII): simplified. (ISPRINT): ditto. (ISSPACE): ditto. (ISUPPER): ditto. (ISLOWER): ditto. (ISALNUM): ditto. (ISALPHA): ditto. (ISDIGIT): ditto. (ISXDIGIT): ditto. (TOUPPER): ditto. (TOLOWER): ditto. * include/ruby/encoding.h (rb_isascii): removed. (rb_isalnum): ditto. (rb_isalpha): ditto. (rb_isblank): ditto. (rb_iscntrl): ditto. (rb_isdigit): ditto. (rb_isgraph): ditto. (rb_islower): ditto. (rb_isprint): ditto. (rb_ispunct): ditto. (rb_isspace): ditto. (rb_isupper): ditto. (rb_isxdigit): ditto. (rb_tolower): ditto. (rb_toupper): ditto. * common.mk: dependency updated. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- encoding.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'encoding.c') diff --git a/encoding.c b/encoding.c index 0a8e249cd6..27fda8d76f 100644 --- a/encoding.c +++ b/encoding.c @@ -1017,3 +1017,34 @@ Init_Encoding(void) } st_foreach(enc_table_alias, set_encoding_alias, 0); } + +/* locale insensitive functions */ + +#define ctype_test(c, ctype) \ + (rb_isascii(c) && ONIGENC_IS_ASCII_CODE_CTYPE((c), ctype)) + +int rb_isalnum(int c) { return ctype_test(c, ONIGENC_CTYPE_ALNUM); } +int rb_isalpha(int c) { return ctype_test(c, ONIGENC_CTYPE_ALPHA); } +int rb_isblank(int c) { return ctype_test(c, ONIGENC_CTYPE_BLANK); } +int rb_iscntrl(int c) { return ctype_test(c, ONIGENC_CTYPE_CNTRL); } +int rb_isdigit(int c) { return ctype_test(c, ONIGENC_CTYPE_DIGIT); } +int rb_isgraph(int c) { return ctype_test(c, ONIGENC_CTYPE_GRAPH); } +int rb_islower(int c) { return ctype_test(c, ONIGENC_CTYPE_LOWER); } +int rb_isprint(int c) { return ctype_test(c, ONIGENC_CTYPE_PRINT); } +int rb_ispunct(int c) { return ctype_test(c, ONIGENC_CTYPE_PUNCT); } +int rb_isspace(int c) { return ctype_test(c, ONIGENC_CTYPE_SPACE); } +int rb_isupper(int c) { return ctype_test(c, ONIGENC_CTYPE_UPPER); } +int rb_isxdigit(int c) { return ctype_test(c, ONIGENC_CTYPE_XDIGIT); } + +int +rb_tolower(int c) +{ + return rb_isascii(c) ? ONIGENC_ASCII_CODE_TO_UPPER_CASE(c) : c; +} + +int +rb_toupper(int c) +{ + return rb_isascii(c) ? ONIGENC_ASCII_CODE_TO_LOWER_CASE(c) : c; +} + -- cgit v1.2.3