summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-05 12:44:06 +0000
committertadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-05 12:44:06 +0000
commit2fb410d66e951f4d4283c9be43dd4ff87e83e8ca (patch)
tree460cd98f3feb5c1880d423a766688191f3c6f7ce
parent18fd8d377ef874bafc38d3a50e1040cfdd5c83c0 (diff)
downloadruby-2fb410d66e951f4d4283c9be43dd4ff87e83e8ca.tar.gz
ruby-2fb410d66e951f4d4283c9be43dd4ff87e83e8ca.tar.xz
ruby-2fb410d66e951f4d4283c9be43dd4ff87e83e8ca.zip
* complex.c: inpsect should not depend on to_s.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--complex.c14
2 files changed, 14 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 5671e172c..d957b91ca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Fri Dec 5 21:42:44 2008 Tadayoshi Funaba <tadf@dotrb.org>
+
+ * complex.c: inpsect should not depend on to_s.
+
Fri Dec 5 19:06:04 2008 Tanaka Akira <akr@fsij.org>
* lib/open3.rb (Open3.pipeline_start): new method.
diff --git a/complex.c b/complex.c
index 70eba23ec..f69c976ac 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");
@@ -930,12 +930,18 @@ nucomp_to_s(VALUE self)
}
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;