[前][次][番号順一覧][スレッド一覧]

ruby-changes:9415

From: matz <ko1@a...>
Date: Wed, 24 Dec 2008 00:13:41 +0900 (JST)
Subject: [ruby-changes:9415] Ruby:r20952 (trunk): * string.c (rb_external_str_new_with_enc): set ASCII-8BIT if

matz	2008-12-24 00:13:18 +0900 (Wed, 24 Dec 2008)

  New Revision: 20952

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20952

  Log:
    * string.c (rb_external_str_new_with_enc): set ASCII-8BIT if
      encoding is US-ASCII and string contains 8bit characters.

  Modified files:
    trunk/ChangeLog
    trunk/parse.y
    trunk/string.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 20951)
+++ ChangeLog	(revision 20952)
@@ -167,6 +167,11 @@
 
 	* ext/tk/tcltklib.c: fix wrong flag value.
 
+Mon Dec 22 14:35:59 2008  Yukihiro Matsumoto  <matz@r...>
+
+	* string.c (rb_external_str_new_with_enc): set ASCII-8BIT if
+	  encoding is US-ASCII and string contains 8bit characters.
+
 Mon Dec 22 12:26:18 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* cygwin/GNUmakefile.in (rubydll.def), win32/mkexports.rb
Index: string.c
===================================================================
--- string.c	(revision 20951)
+++ string.c	(revision 20952)
@@ -538,6 +538,11 @@
     VALUE str;
 
     str = rb_tainted_str_new(ptr, len);
+    if (rb_enc_str_coderange(str) != ENC_CODERANGE_7BIT &&
+	eenc == rb_usascii_encoding()) {
+	rb_enc_associate(str, rb_ascii8bit_encoding());
+	return str;
+    }
     rb_enc_associate(str, eenc);
     return rb_str_conv_enc(str, eenc, rb_default_internal_encoding());
 }
Index: parse.y
===================================================================
--- parse.y	(revision 20951)
+++ parse.y	(revision 20952)
@@ -7923,13 +7923,8 @@
 	return NEW_FALSE();
     }
     else if (id == keyword__FILE__) {
-	VALUE str = rb_external_str_new_with_enc(ruby_sourcefile, strlen(ruby_sourcefile),
-						 rb_filesystem_encoding());
-	if (rb_enc_str_coderange(str) != ENC_CODERANGE_7BIT &&
-	    ENCODING_GET(str) == rb_usascii_encindex()) {
-	    rb_enc_associate(str, rb_ascii8bit_encoding());
-	}
-	return NEW_STR(str);
+	return NEW_STR(rb_external_str_new_with_enc(ruby_sourcefile, strlen(ruby_sourcefile),
+						    rb_filesystem_encoding()));
     }
     else if (id == keyword__LINE__) {
 	return NEW_LIT(INT2FIX(ruby_sourceline));

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]