summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/codegen.c5
-rw-r--r--src/parse.y2
2 files changed, 4 insertions, 3 deletions
diff --git a/src/codegen.c b/src/codegen.c
index 2654fcbe3..8aef2a328 100644
--- a/src/codegen.c
+++ b/src/codegen.c
@@ -802,8 +802,9 @@ readint_float(codegen_scope *s, const char *p, int base)
mrb_float f = 0;
int n;
- while (p <= e) {
- char c = tolower(*p);
+ while (p < e) {
+ char c = *p;
+ c = tolower((unsigned char)c);
for (n=0; n<base; n++) {
if (mrb_digitmap[n] == c) {
f *= base;
diff --git a/src/parse.y b/src/parse.y
index 025707670..af91f09b6 100644
--- a/src/parse.y
+++ b/src/parse.y
@@ -3949,7 +3949,7 @@ parser_yylex(parser_state *p)
}
if (!ISXDIGIT(c)) break;
nondigit = 0;
- tokadd(p, c);
+ tokadd(p, tolower(c));
} while ((c = nextc(p)) != -1);
}
pushback(p, c);