ruby-changes:7611
From: akr <ko1@a...>
Date: Thu, 4 Sep 2008 21:55:26 +0900 (JST)
Subject: [ruby-changes:7611] Ruby:r19132 (trunk): * transcode.c (econv_init): accept an integer as 3rd argument as well.
akr 2008-09-04 21:55:02 +0900 (Thu, 04 Sep 2008) New Revision: 19132 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=19132 Log: * transcode.c (econv_init): accept an integer as 3rd argument as well. Modified files: trunk/ChangeLog trunk/transcode.c Index: ChangeLog =================================================================== --- ChangeLog (revision 19131) +++ ChangeLog (revision 19132) @@ -1,3 +1,7 @@ +Thu Sep 4 21:53:58 2008 Tanaka Akira <akr@f...> + + * transcode.c (econv_init): accept an integer as 3rd argument as well. + Thu Sep 4 21:46:21 2008 Tanaka Akira <akr@f...> * transcode.c (sym_partial_input): new variable. Index: transcode.c =================================================================== --- transcode.c (revision 19131) +++ transcode.c (revision 19132) @@ -2361,21 +2361,25 @@ static VALUE econv_init(int argc, VALUE *argv, VALUE self) { - VALUE source_encoding, destination_encoding, opthash, ecopts; + VALUE source_encoding, destination_encoding, opt, opthash, flags_v, ecopts; int sidx, didx; const char *sname, *dname; rb_encoding *senc, *denc; rb_econv_t *ec; int ecflags; - rb_scan_args(argc, argv, "21", &source_encoding, &destination_encoding, &opthash); + rb_scan_args(argc, argv, "21", &source_encoding, &destination_encoding, &opt); - if (opthash == Qnil) { + if (NIL_P(opt)) { ecflags = 0; ecopts = Qnil; } + else if (!NIL_P(flags_v = rb_check_to_integer(opt, "to_int"))) { + ecflags = NUM2INT(flags_v); + ecopts = Qnil; + } else { - opthash = rb_convert_type(opthash, T_HASH, "Hash", "to_hash"); + opthash = rb_convert_type(opt, T_HASH, "Hash", "to_hash"); ecflags = rb_econv_prepare_opts(opthash, &ecopts); } @@ -3339,8 +3343,15 @@ rb_define_method(rb_cEncodingConverter, "last_error", econv_last_error, 0); rb_define_method(rb_cEncodingConverter, "replacement", econv_get_replacement, 0); rb_define_method(rb_cEncodingConverter, "replacement=", econv_set_replacement, 1); + rb_define_const(rb_cEncodingConverter, "INVALID_MASK", INT2FIX(ECONV_INVALID_MASK)); + rb_define_const(rb_cEncodingConverter, "INVALID_REPLACE", INT2FIX(ECONV_INVALID_REPLACE)); + rb_define_const(rb_cEncodingConverter, "UNDEF_MASK", INT2FIX(ECONV_UNDEF_MASK)); + rb_define_const(rb_cEncodingConverter, "UNDEF_REPLACE", INT2FIX(ECONV_UNDEF_REPLACE)); rb_define_const(rb_cEncodingConverter, "PARTIAL_INPUT", INT2FIX(ECONV_PARTIAL_INPUT)); rb_define_const(rb_cEncodingConverter, "OUTPUT_FOLLOWED_BY_INPUT", INT2FIX(ECONV_OUTPUT_FOLLOWED_BY_INPUT)); + rb_define_const(rb_cEncodingConverter, "UNIVERSAL_NEWLINE_DECODER", INT2FIX(ECONV_UNIVERSAL_NEWLINE_DECODER)); + rb_define_const(rb_cEncodingConverter, "CRLF_NEWLINE_ENCODER", INT2FIX(ECONV_CRLF_NEWLINE_ENCODER)); + rb_define_const(rb_cEncodingConverter, "CR_NEWLINE_ENCODER", INT2FIX(ECONV_CR_NEWLINE_ENCODER)); rb_define_method(rb_eConversionUndefined, "source_encoding_name", ecerr_source_encoding_name, 0); rb_define_method(rb_eConversionUndefined, "destination_encoding_name", ecerr_destination_encoding_name, 0); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/