diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-05-25 08:26:20 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-05-25 08:26:20 +0000 |
commit | 1307f8d555235116f0f0c79b9902df9cfd4bff12 (patch) | |
tree | faf8962d1f1fcdb54db653b4a99b148fdecea7e6 /range.c | |
parent | 1aba398e29bd9134f83c165a2495883f72cbbb3d (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.c | 25 |
1 files changed, 13 insertions, 12 deletions
@@ -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)) { |