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

ruby-changes:8237

From: matz <ko1@a...>
Date: Mon, 13 Oct 2008 07:52:18 +0900 (JST)
Subject: [ruby-changes:8237] Ruby:r19764 (trunk): * transcode.c (str_transcode0): String#encode() with no encoding

matz	2008-10-13 07:52:01 +0900 (Mon, 13 Oct 2008)

  New Revision: 19764

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

  Log:
    * transcode.c (str_transcode0): String#encode() with no encoding
      specified transcode the string into Encoding.default_internal.
      inspired by [ruby-core:19298].

  Modified files:
    trunk/ChangeLog
    trunk/transcode.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 19763)
+++ ChangeLog	(revision 19764)
@@ -1,3 +1,9 @@
+Mon Oct 13 07:42:57 2008  Yukihiro Matsumoto  <matz@r...>
+
+	* transcode.c (str_transcode0): String#encode() with no encoding
+	  specified transcode the string into Encoding.default_internal.
+	  inspired by [ruby-core:19298].
+
 Sun Oct 12 18:00:18 2008  Masaki Suketa  <masaki.suketa@n...>
 
 	* ext/win32ole/win32ole.c (set_ole_codepage, ole_cp2encoding,
Index: transcode.c
===================================================================
--- transcode.c	(revision 19763)
+++ transcode.c	(revision 19764)
@@ -2448,12 +2448,20 @@
     const char *sname, *dname;
     int dencidx;
 
-    if (argc < 1 || argc > 2) {
-	rb_raise(rb_eArgError, "wrong number of arguments (%d for 1..2)", argc);
+    if (argc <0 || argc > 2) {
+	rb_raise(rb_eArgError, "wrong number of arguments (%d for 0..2)", argc);
     }
 
-    arg1 = argv[0];
-    arg2 = argc==1 ? Qnil : argv[1];
+    if (argc == 0) {
+	arg1 = rb_enc_default_internal();
+	if (NIL_P(arg1)) {
+	    rb_raise(rb_eArgError, "Encoding.default_internal is not specified");
+	}
+    }
+    else {
+	arg1 = argv[0];
+    }
+    arg2 = argc<=1 ? Qnil : argv[1];
     dencidx = str_transcode_enc_args(str, &arg1, &arg2, &sname, &senc, &dname, &denc);
 
     if ((ecflags & (ECONV_UNIVERSAL_NEWLINE_DECORATOR|
@@ -2568,6 +2576,7 @@
  *  call-seq:
  *     str.encode(encoding [, options] )   => str
  *     str.encode(dst_encoding, src_encoding [, options] )   => str
+ *     str.encode([options])   => str
  *
  *  The first form returns a copy of <i>str</i> transcoded
  *  to encoding +encoding+.
@@ -2575,6 +2584,8 @@
  *  from src_encoding to dst_encoding.
  *  The options Hash gives details for conversion. Details
  *  to be added.
+ *  The last form returns a copy of <i>str</i> transcoded to
+ *  <code>Encoding.default_internal</code>.
  */
 
 static VALUE

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

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