[__BYTE_ORDER == __LITTLE_ENDIAN]: Use correct byte swapping.
authordrepper <drepper>
Fri, 13 Feb 1998 17:36:32 +0000 (17:36 +0000)
committerdrepper <drepper>
Fri, 13 Feb 1998 17:36:32 +0000 (17:36 +0000)
wctype/wctype_l.c

index 6a8d469..0a19504 100644 (file)
@@ -45,9 +45,9 @@ __wctype_l (const char *property, __locale_t locale)
 #if __BYTE_ORDER == __BIG_ENDIAN
   return result;
 #else
-#define XSWAPU32(w) \
-  ((((w) & 0xff00ff00) >> 8) | (((w) & 0xff00ff) << 8))
+# define SWAPU32(w) \
+  (((w) << 24) | (((w) & 0xff00) << 8) | (((w) >> 8) & 0xff00) | ((w) >> 24))
 
-  return XSWAPU32 (result);
+  return SWAPU32 (result);
 #endif
 }