ruby-changes:12186
From: matz <ko1@a...>
Date: Sat, 27 Jun 2009 03:22:08 +0900 (JST)
Subject: [ruby-changes:12186] Ruby:r23864 (trunk): * numeric.c (int_chr): use default_internal encoding as default
matz 2009-06-27 03:18:12 +0900 (Sat, 27 Jun 2009) New Revision: 23864 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23864 Log: * numeric.c (int_chr): use default_internal encoding as default destination encoding if set. [ruby-dev:38717] Modified files: trunk/ChangeLog trunk/numeric.c Index: ChangeLog =================================================================== --- ChangeLog (revision 23863) +++ ChangeLog (revision 23864) @@ -1,3 +1,8 @@ +Sat Jun 27 03:16:56 2009 Yukihiro Matsumoto <matz@r...> + + * numeric.c (int_chr): use default_internal encoding as default + destination encoding if set. [ruby-dev:38717] + Sat Jun 27 03:09:04 2009 Yukihiro Matsumoto <matz@r...> * io.c (argf_rewind): need to rewind $. and ARGF.lineno. Index: numeric.c =================================================================== --- numeric.c (revision 23863) +++ numeric.c (revision 23864) @@ -1945,10 +1945,15 @@ switch (argc) { case 0: - if (i < 0 || 0xff < i) { + if (i < 0) { out_of_range: rb_raise(rb_eRangeError, "%"PRIdVALUE " out of char range", i); } + if (0xff < i) { + enc = rb_default_internal_encoding(); + if (!enc) goto out_of_range; + goto decode; + } c = (char)i; if (i < 0x80) { return rb_usascii_str_new(&c, 1); @@ -1964,6 +1969,7 @@ } enc = rb_to_encoding(argv[0]); if (!enc) enc = rb_ascii8bit_encoding(); + decode: #if SIZEOF_INT < SIZEOF_LONG if (i > INT_MAX) goto out_of_range; #endif -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/