aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-08-04 11:29:51 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-08-04 11:29:51 +0000
commit4fd5436b328f1662f68614507943ae7eb8acd5a9 (patch)
treebfff9ce9e4a5b87c4854f2d4a91b619488fbefb4
parentc9ec81289744231cb3ca9aa2c2bda3de6a668442 (diff)
downloadruby-4fd5436b328f1662f68614507943ae7eb8acd5a9.tar.gz
* numeric.c (Init_Numeric): do not share implementation among
Fixnum#/ and Fixnum#div. [ruby-core:05531] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--numeric.c1
-rw-r--r--range.c8
3 files changed, 10 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a5131e3d98..c0dd1b8926 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Aug 4 20:03:18 2005 Tadashi Saito <shiba@mail2.accsnet.ne.jp>
+
+ * numeric.c (Init_Numeric): do not share implementation among
+ Fixnum#/ and Fixnum#div. [ruby-core:05531]
+
Thu Aug 4 18:38:36 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* ext/tk/tcltklib.c: cannot compile for Tcl7.6/Tk4.2.
diff --git a/numeric.c b/numeric.c
index fcf0ba1a79..88f4109c2f 100644
--- a/numeric.c
+++ b/numeric.c
@@ -2911,7 +2911,6 @@ Init_Numeric()
rb_define_method(rb_cFixnum, "-", fix_minus, 1);
rb_define_method(rb_cFixnum, "*", fix_mul, 1);
rb_define_method(rb_cFixnum, "/", fix_div, 1);
- rb_define_method(rb_cFixnum, "div", fix_div, 1);
rb_define_method(rb_cFixnum, "%", fix_mod, 1);
rb_define_method(rb_cFixnum, "modulo", fix_mod, 1);
rb_define_method(rb_cFixnum, "divmod", fix_divmod, 1);
diff --git a/range.c b/range.c
index a361a347eb..2f3e82098e 100644
--- a/range.c
+++ b/range.c
@@ -467,17 +467,19 @@ rb_range_beg_len(range, begp, lenp, len, err)
int err;
{
VALUE b, e;
- long beg, end;
+ long beg, end, excl;
if (rb_obj_is_kind_of(range, rb_cRange)) {
b = rb_ivar_get(range, id_beg);
e = rb_ivar_get(range, id_end);
+ excl = EXCL(range);
}
else {
b = rb_check_to_integer(range, "begin");
if (NIL_P(b)) return Qnil;
e = rb_check_to_integer(range, "end");
if (NIL_P(e)) return Qnil;
+ excl = RTEST(rb_funcall(range, rb_intern("exclude_end?"), 0));
}
beg = NUM2LONG(b);
end = NUM2LONG(e);
@@ -491,7 +493,7 @@ rb_range_beg_len(range, begp, lenp, len, err)
if (end > len) end = len;
}
if (end < 0) end += len;
- if (!EXCL(range)) end++; /* include end point */
+ if (!excl) end++; /* include end point */
len = end - beg;
if (len < 0) len = 0;
@@ -502,7 +504,7 @@ rb_range_beg_len(range, begp, lenp, len, err)
out_of_range:
if (err) {
rb_raise(rb_eRangeError, "%ld..%s%ld out of range",
- b, EXCL(range)? "." : "", e);
+ b, excl ? "." : "", e);
}
return Qnil;
}