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

ruby-changes:5185

From: mame <ko1@a...>
Date: Thu, 29 May 2008 22:30:26 +0900 (JST)
Subject: [ruby-changes:5185] Ruby:r16680 (trunk): * io.c (argf_external_encoding, argf_internal_encoding): fix SEGV by

mame	2008-05-29 22:30:09 +0900 (Thu, 29 May 2008)

  New Revision: 16680

  Modified files:
    trunk/ChangeLog
    trunk/io.c

  Log:
    * io.c (argf_external_encoding, argf_internal_encoding): fix SEGV by
      ARGF.external_encoding.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16680&r2=16679&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/io.c?r1=16680&r2=16679&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 16679)
+++ ChangeLog	(revision 16680)
@@ -1,3 +1,8 @@
+Thu May 29 22:29:39 2008  Yusuke Endoh  <mame@t...>
+
+	* io.c (argf_external_encoding, argf_internal_encoding): fix SEGV by
+	  ARGF.external_encoding.
+
 Wed May 28 18:05:28 2008  Akinori MUSHA  <knu@i...>
 
 	* array.c (rb_ary_nitems, Init_Array): Axe Array#nitems().
Index: io.c
===================================================================
--- io.c	(revision 16679)
+++ io.c	(revision 16680)
@@ -6942,13 +6942,19 @@
 static VALUE
 argf_external_encoding(VALUE argf)
 {
-    return rb_io_external_encoding(current_file);
+    if (!RTEST(current_file)) {
+	return rb_enc_from_encoding(rb_default_external_encoding());
+    }
+    return rb_io_external_encoding(rb_io_check_io(current_file));
 }
 
 static VALUE
 argf_internal_encoding(VALUE argf)
 {
-    return rb_io_internal_encoding(current_file);
+    if (!RTEST(current_file)) {
+	return rb_enc_from_encoding(rb_default_external_encoding());
+    }
+    return rb_io_internal_encoding(rb_io_check_io(current_file));
 }
 
 static VALUE

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

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