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

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/

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