#include <stdlib.h>
#include <string.h>
-#include <stdint.h>
-#include "xtra.h"
+
+#if HAVE_INTTYPES_H
+#include <inttypes.h>
+typedef uint_least32_t dx_u32;
+typedef uint_least64_t dx_u64;
+#else
+#include <limits.h>
+#if UINT_MAX >= 0xffffffff
+typedef unsigned dx_u32;
+#else
+typedef unsigned long dx_u32;
+#endif
+typedef unsigned long long dx_u64;
+#endif
+
+#define ARRAYSIZE(x) (sizeof (x) / sizeof (x)[0])
static int compar_5arr(const void *key, const void *elem_)
{
- const char (*elem)[5] = elem_;
+ const char (*elem)[5] = (void *)elem_;
return strncmp(key, *elem, sizeof *elem);
}
* codes array for the corresponding index in t1, except that
* ISO-8859 matches the special value '2' (handled below).
*/
- uint_least64_t results = 0x001921fb13777511;
+ dx_u64 results = 0x001921fb13777511;
const char (*m1)[sizeof *t1];
unsigned x, cindex;
if (!charset)
goto no_conv;
- m1 = bsearch(charset, t1, XTRA_ARRAYSIZE(t1), sizeof *t1, compar_5arr);
+ m1 = bsearch(charset, t1, ARRAYSIZE(t1), sizeof *t1, compar_5arr);
if (!m1)
goto no_conv;
charset += 5;
* two digits. The set bits in the 'accept' value indicate
* which encodings have the copyright symbol.
*/
- uint_least32_t accept = 0x00380383;
- uint_least32_t collect = 0;
+ dx_u32 accept = 0x00380383;
+ dx_u32 collect = 0;
char c;
while ((c = *charset++)) {