From 18b2683b97ae54d4f2f15c19076f33aa29eaf2b7 Mon Sep 17 00:00:00 2001 From: Yukihiro Matz Matsumoto Date: Wed, 27 Mar 2013 23:41:23 +0900 Subject: use new mrb_format API from mrb_raisef; its only format specifier is "%S" (stringify) and takes mrb_value; close #1062 --- src/symbol.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/symbol.c') 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) { -- cgit v1.2.3