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

ruby-changes:19826

From: nobu <ko1@a...>
Date: Wed, 1 Jun 2011 01:15:22 +0900 (JST)
Subject: [ruby-changes:19826] nobu:r31872 (trunk): * io.c (io_encoding_set): should honor already set ecflags since it

nobu	2011-06-01 01:15:15 +0900 (Wed, 01 Jun 2011)

  New Revision: 31872

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

  Log:
    * io.c (io_encoding_set): should honor already set ecflags since it
      might be set by mode option.  fixed #4804

  Modified files:
    trunk/ChangeLog
    trunk/io.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 31871)
+++ ChangeLog	(revision 31872)
@@ -1,3 +1,8 @@
+Wed Jun  1 01:15:12 2011  Nobuyoshi Nakada  <nobu@r...>
+
+	* io.c (io_encoding_set): should honor already set ecflags since it
+	  might be set by mode option.  fixed #4804
+
 Wed Jun  1 00:34:04 2011  CHIKANAGA Tomoyuki  <nagachika00@g...>
 
 	* ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): remove unused
Index: io.c
===================================================================
--- io.c	(revision 31871)
+++ io.c	(revision 31872)
@@ -7959,7 +7959,7 @@
 io_encoding_set(rb_io_t *fptr, VALUE v1, VALUE v2, VALUE opt)
 {
     rb_encoding *enc, *enc2;
-    int ecflags;
+    int ecflags = fptr->encs.ecflags;
     VALUE ecopts, tmp;
 
     if (!NIL_P(v2)) {
@@ -7980,24 +7980,22 @@
 	}
 	else
 	    enc = rb_to_encoding(v2);
-        ecflags = rb_econv_prepare_opts(opt, &ecopts);
+	ecflags = rb_econv_prepare_options(opt, &ecopts, ecflags);
     }
     else {
 	if (NIL_P(v1)) {
 	    /* Set to default encodings */
 	    rb_io_ext_int_to_encs(NULL, NULL, &enc, &enc2);
-            ecflags = 0;
             ecopts = Qnil;
 	}
 	else {
 	    tmp = rb_check_string_type(v1);
 	    if (!NIL_P(tmp) && rb_enc_asciicompat(rb_enc_get(tmp))) {
                 parse_mode_enc(RSTRING_PTR(tmp), &enc, &enc2, NULL);
-                ecflags = rb_econv_prepare_opts(opt, &ecopts);
+                ecflags = rb_econv_prepare_options(opt, &ecopts, ecflags);
 	    }
 	    else {
 		rb_io_ext_int_to_encs(rb_to_encoding(v1), NULL, &enc, &enc2);
-                ecflags = 0;
                 ecopts = Qnil;
 	    }
 	}

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

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