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/