diff --git a/ChangeLog b/ChangeLog index 5671e172cc..d957b91ca0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Fri Dec 5 21:42:44 2008 Tadayoshi Funaba + + * complex.c: inpsect should not depend on to_s. + Fri Dec 5 19:06:04 2008 Tanaka Akira * lib/open3.rb (Open3.pipeline_start): new method. diff --git a/complex.c b/complex.c index 70eba23ec7..f69c976ac0 100644 --- a/complex.c +++ b/complex.c @@ -910,7 +910,7 @@ f_tpositive_p(VALUE x) } static VALUE -nucomp_to_s(VALUE self) +nucomp_format(VALUE self, VALUE (*func)(VALUE)) { VALUE s, impos; @@ -918,10 +918,10 @@ nucomp_to_s(VALUE self) impos = f_tpositive_p(dat->imag); - s = f_to_s(dat->real); + s = (*func)(dat->real); rb_str_cat2(s, !impos ? "-" : "+"); - rb_str_concat(s, f_to_s(f_abs(dat->imag))); + rb_str_concat(s, (*func)(f_abs(dat->imag))); if (!rb_isdigit(RSTRING_PTR(s)[RSTRING_LEN(s) - 1])) rb_str_cat2(s, "*"); rb_str_cat2(s, "i"); @@ -929,13 +929,19 @@ nucomp_to_s(VALUE self) return s; } +static VALUE +nucomp_to_s(VALUE self) +{ + return nucomp_format(self, f_to_s); +} + static VALUE nucomp_inspect(VALUE self) { VALUE s; s = rb_str_new2("("); - rb_str_concat(s, nucomp_to_s(self)); + rb_str_concat(s, nucomp_format(self, f_inspect)); rb_str_cat2(s, ")"); return s;