diff options
Diffstat (limited to 'src/symbol.c')
| -rw-r--r-- | src/symbol.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/symbol.c b/src/symbol.c index 37090111a..2612e0d15 100644 --- a/src/symbol.c +++ b/src/symbol.c @@ -348,6 +348,21 @@ sym_inspect(mrb_state *mrb, mrb_value sym) return str; } +mrb_value +mrb_sym2str(mrb_state *mrb, mrb_sym sym) +{ + size_t len; + const char *name = mrb_sym2name_len(mrb, sym, &len); + + if (!name) return mrb_undef_value(); /* can't happen */ + if (symname_p(name) && strlen(name) == len) { + return mrb_str_new(mrb, name, len); + } + else { + return mrb_str_dump(mrb, mrb_str_new(mrb, name, len)); + } +} + const char* mrb_sym2name(mrb_state *mrb, mrb_sym sym) { |
