summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-24 07:25:46 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-24 07:25:46 +0000
commit4e3ee05a0b9db5654de0bc52c2d5ada05500beb0 (patch)
tree551969d2352cc6390faf610f2e569f00afa55210
parent17585e60bdbd5401c0e5373a26f6314de52bad03 (diff)
downloadruby-4e3ee05a0b9db5654de0bc52c2d5ada05500beb0.tar.gz
ruby-4e3ee05a0b9db5654de0bc52c2d5ada05500beb0.tar.xz
ruby-4e3ee05a0b9db5654de0bc52c2d5ada05500beb0.zip
* parse.y (reg_fragment_setenc_gen): recognize regexp with option n as
as ASCII-8BIT instead of US-ASCII. [ruby-dev:33339] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--parse.y4
2 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 346710468..37687ce2b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jan 24 16:24:25 2008 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * parse.y (reg_fragment_setenc_gen): recognize regexp with option n as
+ as ASCII-8BIT instead of US-ASCII. [ruby-dev:33339]
+
Thu Jan 24 15:44:42 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
* array.c (collect_bang_i): use rb_ary_store() to avoid potential
diff --git a/parse.y b/parse.y
index aabcc5c18..d6434d78c 100644
--- a/parse.y
+++ b/parse.y
@@ -456,6 +456,7 @@ static int lvar_defined_gen(struct parser_params*, ID);
#define RE_OPTION_ENCODING_SHIFT 8
#define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
#define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
+#define RE_OPTION_ENCODING_NONE(o) ((o)&32)
#define RE_OPTION_MASK 0xff
#define NODE_STRTERM NODE_ZARRAY /* nothing to gc */
@@ -8478,6 +8479,9 @@ reg_fragment_setenc_gen(struct parser_params* parser, VALUE str, int options)
}
ENCODING_SET(str, idx);
}
+ else if (RE_OPTION_ENCODING_NONE(options)) {
+ rb_enc_associate(str, rb_ascii8bit_encoding());
+ }
}
static void