summaryrefslogtreecommitdiff
path: root/range.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-05-25 08:26:20 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-05-25 08:26:20 +0000
commit1307f8d555235116f0f0c79b9902df9cfd4bff12 (patch)
treefaf8962d1f1fcdb54db653b4a99b148fdecea7e6 /range.c
parent1aba398e29bd9134f83c165a2495883f72cbbb3d (diff)
regexp null pattern
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_3@477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'range.c')
-rw-r--r--range.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/range.c b/range.c
index 51bcc2f81f..88db515fc4 100644
--- a/range.c
+++ b/range.c
@@ -71,7 +71,7 @@ range_s_new(argc, argv, klass)
VALUE *argv;
VALUE klass;
{
- VALUE beg, end, flag, range;
+ VALUE beg, end, flag;
rb_scan_args(argc, argv, "21", &beg, &end, &flag);
return range_new(klass, beg, end, RTEST(flag));
@@ -94,12 +94,12 @@ range_eqq(range, obj)
end = rb_ivar_get(range, id_end);
if (FIXNUM_P(beg) && FIXNUM_P(obj) && FIXNUM_P(end)) {
- if (FIX2INT(beg) <= FIX2INT(obj)) {
+ if (NUM2LONG(beg) <= NUM2LONG(obj)) {
if (EXCL(range)) {
- if (FIX2INT(obj) < FIX2INT(end)) return Qtrue;
+ if (NUM2LONG(obj) < NUM2LONG(end)) return Qtrue;
}
else {
- if (FIX2INT(obj) <= FIX2INT(end)) return Qtrue;
+ if (NUM2LONG(obj) <= NUM2LONG(end)) return Qtrue;
}
}
return Qfalse;
@@ -132,7 +132,7 @@ range_each(range)
if (!EXCL(range)) end += 1;
for (i=FIX2LONG(b); i<end; i++) {
- rb_yield(INT2FIX(i));
+ rb_yield(INT2NUM(i));
}
}
else if (TYPE(b) == T_STRING) {
@@ -175,15 +175,16 @@ range_last(obj)
VALUE
rb_range_beg_len(range, begp, lenp, len, err)
VALUE range;
- int *begp, *lenp;
- int len, err;
+ long *begp, *lenp;
+ long len;
+ int err;
{
- int beg, end, b, e;
+ long beg, end, b, e;
if (!rb_obj_is_kind_of(range, rb_cRange)) return Qfalse;
- beg = b = NUM2INT(rb_ivar_get(range, id_beg));
- end = e = NUM2INT(rb_ivar_get(range, id_end));
+ beg = b = NUM2LONG(rb_ivar_get(range, id_beg));
+ end = e = NUM2LONG(rb_ivar_get(range, id_end));
if (beg < 0) {
beg += len;
@@ -265,10 +266,10 @@ range_length(range)
}
if (FIXNUM_P(beg) && FIXNUM_P(end)) {
if (EXCL(range)) {
- return INT2FIX(FIX2INT(end) - FIX2INT(beg));
+ return INT2NUM(NUM2LONG(end) - NUM2LONG(beg));
}
else {
- return INT2FIX(FIX2INT(end) - FIX2INT(beg) + 1);
+ return INT2NUM(NUM2LONG(end) - NUM2LONG(beg) + 1);
}
}
if (!rb_obj_is_kind_of(beg, rb_cNumeric)) {