summaryrefslogtreecommitdiffstats
path: root/re.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-26 21:01:52 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-26 21:01:52 +0000
commit7553c7f01e630be37e11d59616a7949299a8831b (patch)
tree487c2de08190f7548d631b09b42aecc4c1239a15 /re.c
parent88ab7fae6605d24603d244cee2b312e3fc5e92be (diff)
downloadruby-7553c7f01e630be37e11d59616a7949299a8831b.tar.gz
ruby-7553c7f01e630be37e11d59616a7949299a8831b.tar.xz
ruby-7553c7f01e630be37e11d59616a7949299a8831b.zip
* re.c (rb_reg_preprocess): force fixed encoding when ASCII
incompatible source string. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 're.c')
-rw-r--r--re.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/re.c b/re.c
index a03bea575..023731907 100644
--- a/re.c
+++ b/re.c
@@ -1908,7 +1908,13 @@ rb_reg_preprocess(const char *p, const char *end, rb_encoding *enc,
buf = rb_str_buf_new(0);
- *fixed_enc = 0;
+ if (rb_enc_asciicompat(enc))
+ *fixed_enc = 0;
+ else {
+ *fixed_enc = enc;
+ rb_enc_associate(buf, enc);
+ }
+
if (unescape_nonascii(p, end, enc, buf, fixed_enc, err) != 0)
return Qnil;