Work around preprocessors that don't handle UINTMAX_MAX.
authorEric Blake <ebb9@byu.net>
Mon, 21 Apr 2008 15:57:07 +0000 (09:57 -0600)
committerEric Blake <ebb9@byu.net>
Mon, 21 Apr 2008 15:57:07 +0000 (09:57 -0600)
* lib/memchr2.c (memchr2): Avoid embedded #if.
Reported by Alain Guibert, fix suggested by Bruno Haible.

Signed-off-by: Eric Blake <ebb9@byu.net>
ChangeLog
lib/memchr2.c

index 91537492028609e2d0efb00a454b08034efe82c5..9266f7fe7333cdd7e54bf543e58c38021d05bf5b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-04-21  Eric Blake  <ebb9@byu.net>
+
+       Work around preprocessors that don't handle UINTMAX_MAX.
+       * lib/memchr2.c (memchr2): Avoid embedded #if.
+       Reported by Alain Guibert, fix suggested by Bruno Haible.
+
 2008-04-21  Simon Josefsson  <simon@josefsson.org>
 
        * doc/posix-functions/strftime.texi (strftime): Explain better
        Reported by Daniel Bergström <daniel@octocode.com>.
 
 2007-12-25  KJK::Hyperion  <hackbunny@reactos.com>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        * lib/localename.c (gl_locale_name_canonicalize) [WIN32_NATIVE]: New
        function.
index d5b0a787a84710a8957dc066f418472e40c04937..38533434d42caa7053fab4e8b1de6442ea1cca62 100644 (file)
@@ -83,18 +83,19 @@ memchr2 (void const *s, int c1_in, int c2_in, size_t n)
   charmask2 = c2 | (c2 << 8);
   charmask1 |= charmask1 << 16;
   charmask2 |= charmask2 << 16;
-#if 0xffffffffU < UINTMAX_MAX
-  magic_bits |= magic_bits << 32;
-  charmask1 |= charmask1 << 32;
-  charmask2 |= charmask2 << 32;
-  if (8 < sizeof longword1)
-    for (i = 64; i < sizeof longword1 * 8; i *= 2)
-      {
-       magic_bits |= magic_bits << i;
-       charmask1 |= charmask1 << i;
-       charmask2 |= charmask2 << i;
-      }
-#endif
+  if (0xffffffffU < UINTMAX_MAX)
+    {
+      magic_bits |= magic_bits << 32;
+      charmask1 |= charmask1 << 32;
+      charmask2 |= charmask2 << 32;
+      if (8 < sizeof longword1)
+       for (i = 64; i < sizeof longword1 * 8; i *= 2)
+         {
+           magic_bits |= magic_bits << i;
+           charmask1 |= charmask1 << i;
+           charmask2 |= charmask2 << i;
+         }
+    }
   magic_bits = (UINTMAX_MAX >> 1) & (magic_bits | 1);
 
   /* Instead of the traditional loop which tests each character,