summaryrefslogtreecommitdiff
path: root/complex.c
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-04 08:55:20 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-04 08:55:20 +0000
commit7580da68860930ec74d2f2d91a16f4e0ee89be97 (patch)
tree2a0462953cab2a58d7cc1d9e9fb952e41725b5df /complex.c
parent4cef7e44c2fa2182f0c0b7798a9499ae0806cb21 (diff)
merges r20474 from trunk into ruby_1_9_1.
* complex.c (nurat_{to_s,inspect}): provides better representation for in-finite imag part. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'complex.c')
-rw-r--r--complex.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/complex.c b/complex.c
index 4230af22d6..70eba23ec7 100644
--- a/complex.c
+++ b/complex.c
@@ -922,6 +922,8 @@ nucomp_to_s(VALUE self)
rb_str_cat2(s, !impos ? "-" : "+");
rb_str_concat(s, f_to_s(f_abs(dat->imag)));
+ if (!rb_isdigit(RSTRING_PTR(s)[RSTRING_LEN(s) - 1]))
+ rb_str_cat2(s, "*");
rb_str_cat2(s, "i");
return s;
@@ -930,18 +932,11 @@ nucomp_to_s(VALUE self)
static VALUE
nucomp_inspect(VALUE self)
{
- VALUE s, impos;
-
- get_dat1(self);
-
- impos = f_tpositive_p(dat->imag);
+ VALUE s;
s = rb_str_new2("(");
- rb_str_concat(s, f_inspect(dat->real));
- rb_str_cat2(s, !impos ? "-" : "+");
-
- rb_str_concat(s, f_inspect(f_abs(dat->imag)));
- rb_str_cat2(s, "i)");
+ rb_str_concat(s, nucomp_to_s(self));
+ rb_str_cat2(s, ")");
return s;
}