summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler
diff options
context:
space:
mode:
authordearblue <[email protected]>2019-04-14 16:11:21 +0900
committerdearblue <[email protected]>2019-04-14 16:11:21 +0900
commitc2fa935fee31c201ba4b07e72690e78a3094cf68 (patch)
tree36389e0a5f07dee7671980de599047075b0eac30 /mrbgems/mruby-compiler
parent4d8ff2fba436708a349c858674088542a126cab1 (diff)
downloadmruby-c2fa935fee31c201ba4b07e72690e78a3094cf68.tar.gz
mruby-c2fa935fee31c201ba4b07e72690e78a3094cf68.zip
Fix hexdigits convertion
Diffstat (limited to 'mrbgems/mruby-compiler')
-rw-r--r--mrbgems/mruby-compiler/core/parse.y5
1 files changed, 3 insertions, 2 deletions
diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y
index ca4c90770..f6b883b9e 100644
--- a/mrbgems/mruby-compiler/core/parse.y
+++ b/mrbgems/mruby-compiler/core/parse.y
@@ -5712,10 +5712,11 @@ parser_yylex(parser_state *p)
if (!identchar(c)) {
char buf[36];
const char s[] = "Invalid char in expression: 0x";
+ const char hexdigits[] = "0123456789ABCDEF";
strcpy(buf, s);
- buf[sizeof(s)] = (c & 0xff00) >> 8;
- buf[sizeof(s)+1] = (c & 0xff);
+ buf[sizeof(s)] = hexdigits[(c & 0xf0) >> 4];
+ buf[sizeof(s)+1] = hexdigits[(c & 0x0f)];
buf[sizeof(s)+2] = 0;
yyerror(p, buf);
goto retry;