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

ruby-changes:9367

From: matz <ko1@a...>
Date: Mon, 22 Dec 2008 10:43:36 +0900 (JST)
Subject: [ruby-changes:9367] Ruby:r20905 (trunk): * parse.y (gettable_gen): the encoding of __FILE__ should be

matz	2008-12-22 10:43:16 +0900 (Mon, 22 Dec 2008)

  New Revision: 20905

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

  Log:
    * parse.y (gettable_gen): the encoding of __FILE__ should be
      rb_filesystem_encoding().  [ruby-list:45733]
    * parse.y (gettable_gen): __FILE__ should be ASCII-8BIT when
      filesystem encoding is US-ASCII and __FILE__ contains non 7bit
      characters.

  Modified files:
    trunk/ChangeLog
    trunk/parse.y

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 20904)
+++ ChangeLog	(revision 20905)
@@ -1,3 +1,12 @@
+Mon Dec 22 09:54:43 2008  Yukihiro Matsumoto  <matz@r...>
+
+	* parse.y (gettable_gen): the encoding of __FILE__ should be
+	  rb_filesystem_encoding().  [ruby-list:45733]
+
+	* parse.y (gettable_gen): __FILE__ should be ASCII-8BIT when
+	  filesystem encoding is US-ASCII and __FILE__ contains non 7bit
+	  characters.
+
 Mon Dec 22 02:54:56 2008  Hidetoshi NAGAI  <nagai@a...>
 
 	* ext/tk/lib/tk.rb: temporary patch for trouble on TkAqua (> Tk8.4.9).
Index: parse.y
===================================================================
--- parse.y	(revision 20904)
+++ parse.y	(revision 20905)
@@ -7923,7 +7923,13 @@
 	return NEW_FALSE();
     }
     else if (id == keyword__FILE__) {
-	return NEW_STR(STR_NEW2(ruby_sourcefile));
+	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);
     }
     else if (id == keyword__LINE__) {
 	return NEW_LIT(INT2FIX(ruby_sourceline));

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

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