ruby-changes:15261
From: nobu <ko1@a...>
Date: Thu, 1 Apr 2010 14:32:48 +0900 (JST)
Subject: [ruby-changes:15261] Ruby:r27143 (trunk): * enc/utf_16{be,le}.c (utf16{be,le}_mbc_to_code): simplified.
nobu 2010-04-01 14:30:25 +0900 (Thu, 01 Apr 2010) New Revision: 27143 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27143 Log: * enc/utf_16{be,le}.c (utf16{be,le}_mbc_to_code): simplified. Modified files: trunk/ChangeLog trunk/enc/utf_16be.c trunk/enc/utf_16le.c Index: ChangeLog =================================================================== --- ChangeLog (revision 27142) +++ ChangeLog (revision 27143) @@ -1,3 +1,7 @@ +Thu Apr 1 14:30:16 2010 Nobuyoshi Nakada <nobu@r...> + + * enc/utf_16{be,le}.c (utf16{be,le}_mbc_to_code): simplified. + Thu Apr 1 14:07:51 2010 NARUSE, Yui <naruse@r...> * util.c (BSD__hdtoa): don't use C99 macros. (FP_NORMAL etc) Index: enc/utf_16be.c =================================================================== --- enc/utf_16be.c (revision 27142) +++ enc/utf_16be.c (revision 27143) @@ -108,9 +108,8 @@ OnigCodePoint code; if (UTF16_IS_SURROGATE_FIRST(*p)) { - code = ((((p[0] - 0xd8) << 2) + ((p[1] & 0xc0) >> 6) + 1) << 16) - + ((((p[1] & 0x3f) << 2) + (p[2] - 0xdc)) << 8) - + p[3]; + code = ((((p[0] << 8) + p[1]) & 0x03ff) << 10) + + (((p[2] << 8) + p[3]) & 0x03ff) + 0x10000; } else { code = p[0] * 256 + p[1]; Index: enc/utf_16le.c =================================================================== --- enc/utf_16le.c (revision 27142) +++ enc/utf_16le.c (revision 27143) @@ -102,9 +102,8 @@ UChar c1 = *(p+1); if (UTF16_IS_SURROGATE_FIRST(c1)) { - code = ((((c1 - 0xd8) << 2) + ((c0 & 0xc0) >> 6) + 1) << 16) - + ((((c0 & 0x3f) << 2) + (p[3] - 0xdc)) << 8) - + p[2]; + code = ((((c1 << 8) + c0) & 0x03ff) << 10) + + (((p[3] << 8) + p[2]) & 0x03ff) + 0x10000; } else { code = c1 * 256 + p[0]; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/