aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-28 02:26:23 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-28 02:26:23 +0000
commit4a948632442b735d306c9583f20f734b0bf7577c (patch)
tree586c2c57e304e793604f53229ea845696d18343c
parentc7c263eefc2509df20206763f05383009961d68c (diff)
downloadruby-4a948632442b735d306c9583f20f734b0bf7577c.tar.gz
* parse.y (parser_str_new): encoding of UTF-8 literal string in
US-ASCII script is UTF-8. [ruby-dev:33406] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--parse.y2
-rw-r--r--test/ruby/test_m17n.rb1
3 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b0930a631a..1e09121d7b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jan 28 11:24:49 2008 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * parse.y (parser_str_new): encoding of UTF-8 literal string in
+ US-ASCII script is UTF-8. [ruby-dev:33406]
+
Mon Jan 28 10:25:59 2008 NAKAMURA Usaku <usa@ruby-lang.org>
* test/ruby/test_m17n.rb (test_magic_comment): add test.
diff --git a/parse.y b/parse.y
index 19b8ba658c..721e88cab2 100644
--- a/parse.y
+++ b/parse.y
@@ -4848,7 +4848,7 @@ parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *e
if (rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT) {
rb_enc_associate(str, rb_usascii_encoding());
}
- else if (enc0 == rb_usascii_encoding()) {
+ else if (enc0 == rb_usascii_encoding() && enc != rb_utf8_encoding()) {
rb_enc_associate(str, rb_ascii8bit_encoding());
}
}
diff --git a/test/ruby/test_m17n.rb b/test/ruby/test_m17n.rb
index c503cdbea3..3423a1d58a 100644
--- a/test/ruby/test_m17n.rb
+++ b/test/ruby/test_m17n.rb
@@ -153,6 +153,7 @@ class TestM17N < Test::Unit::TestCase
def test_utf8_literal
assert_equal(Encoding::UTF_8, "\u3042".encoding, "[ruby-dev:33406] \"\\u3042\".encoding")
+ assert_raise(SyntaxError) { eval(a('\u3052\x80')) }
end
def test_string_mixed_unicode