tizen 2.4 release
[framework/base/tizen-locale.git] / iconvdata / ibm943.c
index 119bb1f..3bf1eb0 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion from and to IBM943.
-   Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2000-2015 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Masahide Washizawa <washi@jp.ibm.com>, 2000.
 
@@ -14,9 +14,8 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
 
 #include <dlfcn.h>
 #include <stdint.h>
@@ -30,6 +29,7 @@
 #define CHARSET_NAME   "IBM943//"
 #define FROM_LOOP      from_ibm943
 #define TO_LOOP                to_ibm943
+#define ONE_DIRECTION  0
 
 /* Definitions of initialization and destructor function.  */
 #define DEFINE_INIT    1
@@ -66,7 +66,7 @@
            __builtin_expect (res == 0, 0) && ch != 0))                       \
       {                                                                              \
        /* Use the IBM943 table for double byte.  */                          \
-       if (__builtin_expect (inptr + 1 >= inend, 0))                         \
+       if (__glibc_unlikely (inptr + 1 >= inend))                            \
          {                                                                   \
            /* The second character is not available.                         \
               Store the intermediate result.  */                             \
          }                                                                   \
                                                                              \
        ch = (ch * 0x100) + inptr[1];                                         \
+       /* ch was less than 0xfd.  */                                         \
+       assert (ch < 0xfd00);                                                 \
        while (ch > rp2->end)                                                 \
          ++rp2;                                                              \
                                                                              \
-       if (__builtin_expect (rp2 == NULL, 0)                                 \
-           || __builtin_expect (ch < rp2->start, 0)                          \
+       if (__builtin_expect (ch < rp2->start, 0)                             \
            || (res = __ibm943db_to_ucs4[ch + rp2->idx],                      \
            __builtin_expect (res, '\1') == 0 && ch !=0))                     \
          {                                                                   \
     uint32_t high;                                                           \
     uint16_t pccode;                                                         \
                                                                              \
-    if (__builtin_expect (ch >= 0xffff, 0))                                  \
+    if (__glibc_unlikely (ch >= 0xffff))                                     \
       {                                                                              \
        UNICODE_TAG_HANDLER (ch, 4);                                          \
        rp = NULL;                                                            \
        high = (sizeof (__ucs4_to_ibm943db) >> 1)                             \
                / sizeof (__ucs4_to_ibm943db[0][FROM]);                       \
        pccode = ch;                                                          \
-       if (__builtin_expect (rp != NULL, 1))                                 \
+       if (__glibc_likely (rp != NULL))                                      \
          while (low < high)                                                  \
            {                                                                 \
              i = (low + high) >> 1;                                          \
            }                                                                 \
        if (found)                                                            \
          {                                                                   \
-           if (__builtin_expect (outptr + 2 > outend, 0))                    \
+           if (__glibc_unlikely (outptr + 2 > outend))                       \
              {                                                               \
                result = __GCONV_FULL_OUTPUT;                                 \
                break;                                                        \
       }                                                                              \
     else                                                                     \
       {                                                                              \
-       if (__builtin_expect (outptr + 1 > outend, 0))                        \
+       if (__glibc_unlikely (outptr + 1 > outend))                           \
          {                                                                   \
            result = __GCONV_FULL_OUTPUT;                                     \
            break;                                                            \