ruby-changes:4313
From: ko1@a...
Date: Wed, 19 Mar 2008 18:37:54 +0900 (JST)
Subject: [ruby-changes:4313] tadf - Ruby:r15803 (trunk): revert.
tadf 2008-03-19 18:37:39 +0900 (Wed, 19 Mar 2008) New Revision: 15803 Modified files: trunk/complex.c trunk/rational.c Log: revert. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/complex.c?r1=15803&r2=15802&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/rational.c?r1=15803&r2=15802&diff_format=u Index: complex.c =================================================================== --- complex.c (revision 15802) +++ complex.c (revision 15803) @@ -202,7 +202,6 @@ } } -#if 0 static VALUE nucomp_s_canonicalize(int argc, VALUE *argv, VALUE klass) { @@ -236,7 +235,6 @@ return nucomp_s_canonicalize_internal(klass, real, image); } -#endif static VALUE nucomp_s_new(int argc, VALUE *argv, VALUE klass) @@ -461,7 +459,6 @@ return DOUBLE2NUM(atan2(RFLOAT_VALUE(y), RFLOAT_VALUE(x))); } -#if 0 static VALUE m_hypot(VALUE x, VALUE y) { @@ -469,7 +466,6 @@ return DOUBLE2NUM(hypot(RFLOAT_VALUE(x), RFLOAT_VALUE(y))); } #endif -#endif static VALUE nucomp_s_polar(VALUE klass, VALUE abs, VALUE arg) @@ -630,7 +626,6 @@ f_to_r(dat->image)), other); } -#if 0 static VALUE nucomp_fdiv(VALUE self, VALUE other) { @@ -640,7 +635,6 @@ f_to_f(dat->real), f_to_f(dat->image)), other); } -#endif static VALUE nucomp_expt(VALUE self, VALUE other) @@ -794,7 +788,6 @@ return f_complex_new2(CLASS_OF(self), dat->real, f_negate(dat->image)); } -#if 0 static VALUE nucomp_real_p(VALUE self) { @@ -819,7 +812,6 @@ { return f_boolcast(!nucomp_exact_p(self)); } -#endif inline static long i_gcd(long x, long y) @@ -986,17 +978,17 @@ s = rb_str_new2(""); else { s = f_to_s(dat->real); - rb_str_cat2(s, (!impos ? "-" : "+")); + rb_str_concat(s, rb_str_new2(!impos ? "-" : "+")); } if (k_rational_p(dat->image) && !f_one_p(f_denominator(dat->image))) { - rb_str_cat2(s, "("); + rb_str_concat(s, rb_str_new2("(")); rb_str_concat(s, f_to_s(rezero ? dat->image : f_abs(dat->image))); - rb_str_cat2(s, ")i"); + rb_str_concat(s, rb_str_new2(")i")); } else { rb_str_concat(s, f_to_s(rezero ? dat->image : f_abs(dat->image))); - rb_str_cat2(s, "i"); + rb_str_concat(s, rb_str_new2("i")); } return s; @@ -1011,9 +1003,9 @@ s = rb_str_new2("Complex("); rb_str_concat(s, f_inspect(dat->real)); - rb_str_cat2(s, ", "); + rb_str_concat(s, rb_str_new2(", ")); rb_str_concat(s, f_inspect(dat->image)); - rb_str_cat2(s, ")"); + rb_str_concat(s, rb_str_new2(")")); return s; } @@ -1117,7 +1109,7 @@ } static VALUE comp_pat1, comp_pat2, a_slash, a_dot_and_an_e, - image_garbages_pat, null_string; + image_garbages_pat, null_string, underscores_pat, an_underscore; #define DIGITS "(?:\\d(?:_\\d|\\d)*)" #define NUMERATOR "(?:" DIGITS "?\\.)?" DIGITS "(?:[eE][-+]?" DIGITS ")?" @@ -1130,15 +1122,15 @@ static void make_patterns(void) { - static const char comp_pat1_source[] = PATTERN1; - static const char comp_pat2_source[] = PATTERN2; - static const char image_garbages_pat_source[] = "[+\\(\\)iIjJ]"; -#define REG_NEW(s) rb_reg_new(s, sizeof(s) - 1, 0) + static char *comp_pat1_source = PATTERN1; + static char *comp_pat2_source = PATTERN2; + static char *image_garbages_pat_source = "[+\\(\\)iIjJ]"; + static char *underscores_pat_source = "_+"; - comp_pat1 = REG_NEW(comp_pat1_source); + comp_pat1 = rb_reg_new(comp_pat1_source, strlen(comp_pat1_source), 0); rb_global_variable(&comp_pat1); - comp_pat2 = REG_NEW(comp_pat2_source); + comp_pat2 = rb_reg_new(comp_pat2_source, strlen(comp_pat2_source), 0); rb_global_variable(&comp_pat2); a_slash = rb_str_new2("/"); @@ -1147,13 +1139,19 @@ a_dot_and_an_e = rb_str_new2(".eE"); rb_global_variable(&a_dot_and_an_e); - image_garbages_pat = REG_NEW(image_garbages_pat_source); + image_garbages_pat = rb_reg_new(image_garbages_pat_source, + strlen(image_garbages_pat_source), 0); rb_global_variable(&image_garbages_pat); null_string = rb_str_new2(""); rb_global_variable(&null_string); -#undef REG_NEW + underscores_pat = rb_reg_new(underscores_pat_source, + strlen(underscores_pat_source), 0); + rb_global_variable(&underscores_pat); + + an_underscore = rb_str_new2("_"); + rb_global_variable(&an_underscore); } #define id_strip rb_intern("strip") @@ -1248,7 +1246,8 @@ static VALUE string_to_c(VALUE self) { - VALUE a = string_to_c_internal(self); + VALUE s = f_gsub(self, underscores_pat, an_underscore); + VALUE a = string_to_c_internal(s); if (!NIL_P(RARRAY_PTR(a)[0])) return RARRAY_PTR(a)[0]; return rb_complex_new1(INT2FIX(0)); Index: rational.c =================================================================== --- rational.c (revision 15802) +++ rational.c (revision 15803) @@ -230,7 +230,6 @@ return nurat_s_new_internal(klass, num, den); } -#if 0 static VALUE nurat_s_canonicalize(int argc, VALUE *argv, VALUE klass) { @@ -260,7 +259,6 @@ return nurat_s_canonicalize_internal(klass, num, den); } -#endif static VALUE nurat_s_new(int argc, VALUE *argv, VALUE klass) @@ -586,14 +584,11 @@ return rb_assoc_new(val, f_sub(self, f_mul(other, val))); } -#if 0 static VALUE nurat_quot(VALUE self, VALUE other) { return f_truncate(f_div(self, other)); } -#endif - static VALUE nurat_rem(VALUE self, VALUE other) { @@ -601,14 +596,12 @@ return f_sub(self, f_mul(other, val)); } -#if 0 static VALUE nurat_quotrem(VALUE self, VALUE other) { VALUE val = f_truncate(f_div(self, other)); return rb_assoc_new(val, f_sub(self, f_mul(other, val))); } -#endif static VALUE nurat_abs(VALUE self) @@ -619,13 +612,11 @@ return f_negate(self); } -#if 0 static VALUE nurat_true(VALUE self) { return Qtrue; } -#endif static VALUE nurat_floor(VALUE self) @@ -783,7 +774,7 @@ return f_mul(RARRAY_PTR(a)[0], f_expt(INT2FIX(FLT_RADIX), RARRAY_PTR(a)[1])); } -static VALUE rat_pat, an_e_pat, a_dot_pat; +static VALUE rat_pat, an_e_pat, a_dot_pat, underscores_pat, an_underscore; #define DIGITS "(?:\\d(?:_\\d|\\d)*)" #define NUMERATOR "(?:" DIGITS "?\\.)?" DIGITS "(?:[eE][-+]?" DIGITS ")?" @@ -793,21 +784,26 @@ static void make_patterns(void) { - static const char rat_pat_source[] = PATTERN; - static const char an_e_pat_source[] = "[eE]"; - static const char a_dot_pat_source[] = "\\."; -#define REG_NEW(s) rb_reg_new(s, sizeof(s) - 1, 0) + static char *rat_pat_source = PATTERN; + static char *an_e_pat_source = "[eE]"; + static char *a_dot_pat_source = "\\."; + static char *underscores_pat_source = "_+"; - rat_pat = REG_NEW(rat_pat_source); + rat_pat = rb_reg_new(rat_pat_source, strlen(rat_pat_source), 0); rb_global_variable(&rat_pat); - an_e_pat = REG_NEW(an_e_pat_source); + an_e_pat = rb_reg_new(an_e_pat_source, strlen(an_e_pat_source), 0); rb_global_variable(&an_e_pat); - a_dot_pat = REG_NEW(a_dot_pat_source); + a_dot_pat = rb_reg_new(a_dot_pat_source, strlen(a_dot_pat_source), 0); rb_global_variable(&a_dot_pat); -#undef REG_NEW + underscores_pat = rb_reg_new(underscores_pat_source, + strlen(underscores_pat_source), 0); + rb_global_variable(&underscores_pat); + + an_underscore = rb_str_new2("_"); + rb_global_variable(&an_underscore); } #define id_strip rb_intern("strip") @@ -912,7 +908,8 @@ static VALUE string_to_r(VALUE self) { - VALUE a = string_to_r_internal(self); + VALUE s = f_gsub(self, underscores_pat, an_underscore); + VALUE a = string_to_r_internal(s); if (!NIL_P(RARRAY_PTR(a)[0])) return RARRAY_PTR(a)[0]; return rb_rational_new1(INT2FIX(0)); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/