summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorcremno <[email protected]>2015-05-15 22:41:46 +0200
committercremno <[email protected]>2015-05-15 22:41:46 +0200
commit406fb9c80922e2355d0034b2fe9d9baecb61f41f (patch)
tree792666b965e9295e5e74b7c2b8a2a2f9c02f4db3
parentbc8308ba8d04f9038df032fd95e4b359f75106e0 (diff)
downloadmruby-406fb9c80922e2355d0034b2fe9d9baecb61f41f.tar.gz
mruby-406fb9c80922e2355d0034b2fe9d9baecb61f41f.zip
let the C compiler validate the identifier
Some C compilers may allow other characters in identifiers such as $. They may also implement C99's extended identifiers (\u30EB\u30D3\u30FC, ルビー).
-rw-r--r--src/dump.c18
1 files changed, 1 insertions, 17 deletions
diff --git a/src/dump.c b/src/dump.c
index 285aa08d9..1ab4c47c5 100644
--- a/src/dump.c
+++ b/src/dump.c
@@ -1020,22 +1020,6 @@ mrb_dump_irep_binary(mrb_state *mrb, mrb_irep *irep, uint8_t flags, FILE* fp)
}
static mrb_bool
-is_valid_c_symbol_name(const char *name)
-{
- const char *c = NULL;
-
- if (name == NULL || name[0] == '\0') return FALSE;
- if (!ISALPHA(name[0]) && name[0] != '_') return FALSE;
-
- c = &name[1];
- for (; *c != '\0'; ++c) {
- if (!ISALNUM(*c) && *c != '_') return FALSE;
- }
-
- return TRUE;
-}
-
-static mrb_bool
dump_bigendian_p(uint8_t flags)
{
switch (flags & DUMP_ENDIAN_NAT) {
@@ -1056,7 +1040,7 @@ mrb_dump_irep_cfunc(mrb_state *mrb, mrb_irep *irep, uint8_t flags, FILE *fp, con
size_t bin_size = 0, bin_idx = 0;
int result;
- if (fp == NULL || initname == NULL || !is_valid_c_symbol_name(initname)) {
+ if (fp == NULL || initname == NULL || initname[0] == '\0') {
return MRB_DUMP_INVALID_ARGUMENT;
}
flags = dump_flags(flags, FLAG_BYTEORDER_NATIVE);