summaryrefslogtreecommitdiff
path: root/complex.c
diff options
context:
space:
mode:
authortadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-05-09 11:31:26 +0000
committertadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-05-09 11:31:26 +0000
commit6c81a8e44e3abe05ccffc7c26813308e7b347bcb (patch)
tree310c37ed62054a1cc4cbb66866db06b4bd32ca8f /complex.c
parent140e1f0b15bc995b45caff0ac62af960d52b4441 (diff)
* complex.c (string_to_c_internal): a refactoring.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'complex.c')
-rw-r--r--complex.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/complex.c b/complex.c
index c2d15ed2b6..0fcf63cf81 100644
--- a/complex.c
+++ b/complex.c
@@ -1498,7 +1498,6 @@ string_to_c_internal(VALUE self)
m = f_match(comp_pat2, s);
if (NIL_P(m))
return rb_assoc_new(Qnil, self);
- /* string is of form "x+yi" */
sr = f_aref(m, INT2FIX(1));
if (NIL_P(f_aref(m, INT2FIX(2))))
si = Qnil;
@@ -1519,7 +1518,7 @@ string_to_c_internal(VALUE self)
if (!NIL_P(sr)) {
if (strchr(RSTRING_PTR(sr), '/'))
r = f_to_r(sr);
- else if (strchr(RSTRING_PTR(sr), '.') || strchr(RSTRING_PTR(sr), 'e') || strchr(RSTRING_PTR(sr), 'E'))
+ else if (strpbrk(RSTRING_PTR(sr), ".eE"))
r = f_to_f(sr);
else
r = f_to_i(sr);
@@ -1527,7 +1526,7 @@ string_to_c_internal(VALUE self)
if (!NIL_P(si)) {
if (strchr(RSTRING_PTR(si), '/'))
i = f_to_r(si);
- else if (strchr(RSTRING_PTR(si), '.') || strchr(RSTRING_PTR(si), 'e') || strchr(RSTRING_PTR(si), 'E'))
+ else if (strpbrk(RSTRING_PTR(si), ".eE"))
i = f_to_f(si);
else
i = f_to_i(si);