aboutsummaryrefslogtreecommitdiffstats
path: root/re.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-10-16 05:06:30 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-10-16 05:06:30 +0000
commit9f00119776a1dec9f26203e0ce46e28d954102e4 (patch)
treeaf7465c38c32260716241db0eb9080708d84747c /re.c
parent4ad19a7dee4fc9133c6fa9e00d74ee4b4b4adc64 (diff)
downloadruby-9f00119776a1dec9f26203e0ce46e28d954102e4.tar.gz
* re.c (rb_reg_s_union): encoding of all regexp objects should
match. [ruby-dev:32076] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 're.c')
-rw-r--r--re.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/re.c b/re.c
index 78a72f2779..1d3e144cf4 100644
--- a/re.c
+++ b/re.c
@@ -1997,6 +1997,7 @@ static VALUE
rb_reg_s_union(VALUE self, VALUE args0)
{
long argc = RARRAY_LEN(args0);
+
if (argc == 0) {
VALUE args[1];
args[0] = rb_str_new2("(?!)");
@@ -2018,11 +2019,14 @@ rb_reg_s_union(VALUE self, VALUE args0)
VALUE kcode_re = Qnil;
VALUE source = rb_str_buf_new(0);
VALUE args[3];
+ VALUE tmp = rb_ary_entry(args0, 0);
+
for (i = 0; i < argc; i++) {
volatile VALUE v;
if (0 < i)
rb_str_buf_cat2(source, "|");
v = rb_check_regexp_type(rb_ary_entry(args0, i));
+ rb_enc_check(tmp, v);
if (!NIL_P(v)) {
if (FL_TEST(v, KCODE_FIXED)) {
if (kcode == -1) {