summaryrefslogtreecommitdiffstats
path: root/re.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-05 16:39:38 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-05 16:39:38 +0000
commit38f566c7e8be6cbbc789ce8d460addee1640bce9 (patch)
treef9d898bc07fb54817bb98979b41ee96664a3ca87 /re.c
parente6b9da345fc86af1b62ee279538ef79ad6477b5c (diff)
downloadruby-38f566c7e8be6cbbc789ce8d460addee1640bce9.tar.gz
ruby-38f566c7e8be6cbbc789ce8d460addee1640bce9.tar.xz
ruby-38f566c7e8be6cbbc789ce8d460addee1640bce9.zip
* re.c (rb_reg_initialize_str): /\x80/n is not an error even if script
encoding is EUC-JP. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 're.c')
-rw-r--r--re.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/re.c b/re.c
index 9de2a0efa..50fa341d1 100644
--- a/re.c
+++ b/re.c
@@ -2035,8 +2035,14 @@ rb_reg_initialize(VALUE obj, const char *s, int len, rb_encoding *enc,
static int
rb_reg_initialize_str(VALUE obj, VALUE str, int options, onig_errmsg_buffer err)
{
- return rb_reg_initialize(obj, RSTRING_PTR(str), RSTRING_LEN(str), rb_enc_get(str),
- options, err);
+ int ret;
+ rb_encoding *enc = rb_enc_get(str);
+ if (options & ARG_ENCODING_NONE)
+ enc = rb_ascii8bit_encoding();
+ ret = rb_reg_initialize(obj, RSTRING_PTR(str), RSTRING_LEN(str), enc,
+ options, err);
+ RB_GC_GUARD(str);
+ return ret;
}
static VALUE