Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 5 May 1999 17:08:26 +0000 (17:08 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 5 May 1999 17:08:26 +0000 (17:08 +0000)
* stdio-common/_itoa.c (_itoa): Fix special 32bit platform case
with specific bases and only few bits set in second word.

ChangeLog
manual/nss.texi
stdio-common/_itoa.c

index 0f4ac98..c82015c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 1999-05-05  Ulrich Drepper  <drepper@cygnus.com>
 
+       * stdio-common/_itoa.c (_itoa): Fix special 32bit platform case
+       with specific bases and only few bits set in second word.
+
        * timezone/Makefile (install-others): Create target directory
        before creating tzfiles.
 
index dd8aa9e..e3ff131 100644 (file)
@@ -226,7 +226,7 @@ value for the actions are normally what you want, and only need to be
 changed in exceptional cases.
 
 If the optional @code{!} is placed before the @var{status} this means
-the following action is used for all statii but @var{status} itself.
+the following action is used for all statuses but @var{status} itself.
 I.e., @code{!} is negation as in the C language (and others).
 
 Before we explain the exception which makes this action item necessary
index af48360..3a7cd78 100644 (file)
@@ -175,46 +175,49 @@ _itoa (value, buflim, base, upper_case)
 
   switch (base)
     {
-#define RUN_2N(BITS)                                                     \
-      do                                                                 \
-        {                                                                \
-         /* `unsigned long long int' always has 64 bits.  */             \
-         mp_limb_t work_hi = value >> (64 - BITS_PER_MP_LIMB);           \
-                                                                         \
-         if (BITS_PER_MP_LIMB == 32)                                     \
-           {                                                             \
-             if (work_hi != 0)                                           \
-               {                                                         \
-                 mp_limb_t work_lo;                                      \
-                 int cnt;                                                \
-                                                                         \
-                 work_lo = value & 0xfffffffful;                         \
-                 for (cnt = BITS_PER_MP_LIMB / BITS; cnt > 0; --cnt)     \
-                   {                                                     \
-                     *--bp = digits[work_lo & ((1ul << BITS) - 1)];      \
-                     work_lo >>= BITS;                                   \
-                   }                                                     \
-                 if (BITS_PER_MP_LIMB % BITS != 0)                       \
-                   {                                                     \
-                     work_lo                                             \
-                       |= ((work_hi                                      \
-                            & ((1 << (BITS - BITS_PER_MP_LIMB%BITS))     \
-                               - 1))                                     \
-                           << BITS_PER_MP_LIMB % BITS);                  \
-                     *--bp = digits[work_lo];                            \
-                     work_hi >>= BITS - BITS_PER_MP_LIMB % BITS;         \
-                   }                                                     \
-               }                                                         \
-             else                                                        \
-               work_hi = value & 0xfffffffful;                           \
-           }                                                             \
-         do                                                              \
-           {                                                             \
-             *--bp = digits[work_hi & ((1 << BITS) - 1)];                \
-             work_hi >>= BITS;                                           \
-           }                                                             \
-         while (work_hi != 0);                                           \
-       }                                                                 \
+#define RUN_2N(BITS) \
+      do                                                                     \
+        {                                                                    \
+         /* `unsigned long long int' always has 64 bits.  */                 \
+         mp_limb_t work_hi = value >> (64 - BITS_PER_MP_LIMB);               \
+                                                                             \
+         if (BITS_PER_MP_LIMB == 32)                                         \
+           {                                                                 \
+             if (work_hi != 0)                                               \
+               {                                                             \
+                 mp_limb_t work_lo;                                          \
+                 int cnt;                                                    \
+                                                                             \
+                 work_lo = value & 0xfffffffful;                             \
+                 for (cnt = BITS_PER_MP_LIMB / BITS; cnt > 0; --cnt)         \
+                   {                                                         \
+                     *--bp = digits[work_lo & ((1ul << BITS) - 1)];          \
+                     work_lo >>= BITS;                                       \
+                   }                                                         \
+                 if (BITS_PER_MP_LIMB % BITS != 0)                           \
+                   {                                                         \
+                     work_lo                                                 \
+                       |= ((work_hi                                          \
+                            & ((1 << (BITS - BITS_PER_MP_LIMB%BITS))         \
+                               - 1))                                         \
+                           << BITS_PER_MP_LIMB % BITS);                      \
+                     work_hi >>= BITS - BITS_PER_MP_LIMB % BITS;             \
+                     if (work_hi == 0)                                       \
+                       work_hi = work_lo;                                    \
+                     else                                                    \
+                       *--bp = digits[work_lo];                              \
+                   }                                                         \
+               }                                                             \
+             else                                                            \
+               work_hi = value & 0xfffffffful;                               \
+           }                                                                 \
+         do                                                                  \
+           {                                                                 \
+             *--bp = digits[work_hi & ((1 << BITS) - 1)];                    \
+             work_hi >>= BITS;                                               \
+           }                                                                 \
+         while (work_hi != 0);                                               \
+       }                                                                     \
       while (0)
     case 8:
       RUN_2N (3);