mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #466 from iij/pr-signed-char
two more wrapper macros for ctype.h
This commit is contained in:
@@ -274,6 +274,8 @@ mrb_value mrb_check_funcall(mrb_state *mrb, mrb_value recv, mrb_sym mid, int arg
|
||||
#define ISALPHA(c) (ISASCII(c) && isalpha((int)(unsigned char)(c)))
|
||||
#define ISDIGIT(c) (ISASCII(c) && isdigit((int)(unsigned char)(c)))
|
||||
#define ISXDIGIT(c) (ISASCII(c) && isxdigit((int)(unsigned char)(c)))
|
||||
#define TOUPPER(c) (ISASCII(c) ? toupper((int)(unsigned char)(c)) : (c))
|
||||
#define TOLOWER(c) (ISASCII(c) ? tolower((int)(unsigned char)(c)) : (c))
|
||||
#endif
|
||||
|
||||
mrb_value mrb_exc_new(mrb_state *mrb, struct RClass *c, const char *ptr, long len);
|
||||
|
||||
+4
-4
@@ -866,12 +866,12 @@ mrb_str_capitalize_bang(mrb_state *mrb, mrb_value str)
|
||||
if (s->len == 0 || !s->ptr) return mrb_nil_value();
|
||||
p = s->ptr; pend = s->ptr + s->len;
|
||||
if (ISLOWER(*p)) {
|
||||
*p = toupper(*p);
|
||||
*p = TOUPPER(*p);
|
||||
modify = 1;
|
||||
}
|
||||
while (++p < pend) {
|
||||
if (ISUPPER(*p)) {
|
||||
*p = tolower(*p);
|
||||
*p = TOLOWER(*p);
|
||||
modify = 1;
|
||||
}
|
||||
}
|
||||
@@ -1079,7 +1079,7 @@ mrb_str_downcase_bang(mrb_state *mrb, mrb_value str)
|
||||
pend = s->ptr + s->len;
|
||||
while (p < pend) {
|
||||
if (ISUPPER(*p)) {
|
||||
*p = tolower(*p);
|
||||
*p = TOLOWER(*p);
|
||||
modify = 1;
|
||||
}
|
||||
p++;
|
||||
@@ -2744,7 +2744,7 @@ mrb_str_upcase_bang(mrb_state *mrb, mrb_value str)
|
||||
pend = RSTRING_END(str);
|
||||
while (p < pend) {
|
||||
if (ISLOWER(*p)) {
|
||||
*p = toupper(*p);
|
||||
*p = TOUPPER(*p);
|
||||
modify = 1;
|
||||
}
|
||||
p++;
|
||||
|
||||
Reference in New Issue
Block a user