summaryrefslogtreecommitdiffstats
path: root/range.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-20 21:02:54 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-20 21:02:54 +0000
commitf40302aff9c06bf0b93879c05dc89291736f0481 (patch)
tree5a51148d3bb5f06025c7e1c22ce7f8825c69130b /range.c
parent5ef87a3798b04ba845767a3115142324006d6325 (diff)
downloadruby-f40302aff9c06bf0b93879c05dc89291736f0481.tar.gz
ruby-f40302aff9c06bf0b93879c05dc89291736f0481.tar.xz
ruby-f40302aff9c06bf0b93879c05dc89291736f0481.zip
* range.c (range_initialize_copy): Range is now a Struct.
[ruby-core:18353] * struct.c (rb_struct_init_copy): made public. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'range.c')
-rw-r--r--range.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/range.c b/range.c
index bbf983055..09dc762ac 100644
--- a/range.c
+++ b/range.c
@@ -15,6 +15,8 @@
VALUE rb_cRange;
static ID id_cmp, id_succ, id_beg, id_end, id_excl;
+extern VALUE rb_struct_init_copy(VALUE copy, VALUE s);
+
#define RANGE_BEG(r) (RSTRUCT(r)->as.ary[0])
#define RANGE_END(r) (RSTRUCT(r)->as.ary[1])
#define RANGE_EXCL(r) (RSTRUCT(r)->as.ary[2])
@@ -88,6 +90,7 @@ range_initialize(int argc, VALUE *argv, VALUE range)
return Qnil;
}
+#define range_initialize_copy rb_struct_init_copy /* :nodoc: */
/*
* call-seq:
@@ -912,6 +915,7 @@ Init_Range(void)
rb_include_module(rb_cRange, rb_mEnumerable);
rb_marshal_define_compat(rb_cRange, rb_cObject, range_dumper, range_loader);
rb_define_method(rb_cRange, "initialize", range_initialize, -1);
+ rb_define_method(rb_cRange, "initialize_copy", range_initialize_copy, 1);
rb_define_method(rb_cRange, "==", range_eq, 1);
rb_define_method(rb_cRange, "===", range_eqq, 1);
rb_define_method(rb_cRange, "eql?", range_eql, 1);