diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-09-26 23:56:40 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-09-26 23:56:40 +0900 |
| commit | d4be545d54ad53e282637f66ef5b770b9effa918 (patch) | |
| tree | cce51556d62705c784274b3ece09fe1e1e965b62 /src/symbol.c | |
| parent | 60cc46a92cf93f408dac22658c6a206e882e0e04 (diff) | |
| download | mruby-d4be545d54ad53e282637f66ef5b770b9effa918.tar.gz mruby-d4be545d54ad53e282637f66ef5b770b9effa918.zip | |
Fixed `codedump` for human readable symbol format; ref #4684
Diffstat (limited to 'src/symbol.c')
| -rw-r--r-- | src/symbol.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/symbol.c b/src/symbol.c index 6ff1e54da..d7718c63e 100644 --- a/src/symbol.c +++ b/src/symbol.c @@ -524,14 +524,14 @@ mrb_sym_str(mrb_state *mrb, mrb_sym sym) return mrb_str_new_static(mrb, name, len); } -MRB_API const char* -mrb_sym_name(mrb_state *mrb, mrb_sym sym) +static const char* +sym_name(mrb_state *mrb, mrb_sym sym, mrb_bool dump) { mrb_int len; const char *name = mrb_sym_name_len(mrb, sym, &len); if (!name) return NULL; - if (strlen(name) == (size_t)len) { + if (strlen(name) == (size_t)len && (!dump || symname_p(name))) { return name; } else { @@ -542,6 +542,18 @@ mrb_sym_name(mrb_state *mrb, mrb_sym sym) } } +MRB_API const char* +mrb_sym_name(mrb_state *mrb, mrb_sym sym) +{ + return sym_name(mrb, sym, FALSE); +} + +MRB_API const char* +mrb_sym_dump(mrb_state *mrb, mrb_sym sym) +{ + return sym_name(mrb, sym, TRUE); +} + #define lesser(a,b) (((a)>(b))?(b):(a)) static mrb_value |
