/* $Id$ */
+/* Release: $Name$ */
+
/* Internal PDCLib logic <_PDCLIB_internal.h>
This file is part of the Public Domain C Library (PDCLib).
/* -------------------------------------------------------------------------- */
/* You should not have to edit anything in this file; if you DO have to, it */
-/* would be considered a bug / missing feature: notify the author. */
+/* would be considered a bug / missing feature: notify the author(s). */
/* -------------------------------------------------------------------------- */
+#ifndef _PDCLIB_CONFIG_H
+#define _PDCLIB_CONFIG_H _PDCLIB_CONFIG_H
#include <_PDCLIB_config.h>
+#endif
/* null pointer constant */
#define _PDCLIB_NULL 0
/* _PDCLIB_concat( x, y ) concatenates two preprocessor tokens with extending */
/* -------------------------------------------------------------------------- */
-#define _PDCLIB_cc( x, y ) x ## y
+#define _PDCLIB_cc( x, y ) x ## y
#define _PDCLIB_concat( x, y ) _PDCLIB_cc( x, y )
/* -------------------------------------------------------------------------- */
#if _PDCLIB_LONG_BYTES == 4
#define _PDCLIB_LONG_MAX 0x7fffffffL
#define _PDCLIB_LONG_MIN (-0x7fffffffL - 1L)
-#define _PDCLIB_LONG_MAX 0xffffffffUL
+#define _PDCLIB_ULONG_MAX 0xffffffffUL
#elif _PDCLIB_LONG_BYTES == 8
#define _PDCLIB_LONG_MAX 0x7fffffffffffffffL
#define _PDCLIB_LONG_MIN (-0x7fffffffffffffffL - 1L)
/* Setting 'int8_t', its limits, and its literal. */
#if _PDCLIB_SHRT_BYTES == 1
typedef signed short _PDCLIB_int8_t;
-typedef unsigned short _PDCLIB_int8_t;
+typedef unsigned short _PDCLIB_uint8_t;
#define _PDCLIB_INT8_MAX _PDCLIB_SHRT_MAX
#define _PDCLIB_INT8_MIN _PDCLIB_SHRT_MIN
#define _PDCLIB_UINT8_MAX _PDCLIB_USHRT_MAX
#define _PDCLIB_UINT16_MAX _PDCLIB_UINT_MAX
#elif _PDCLIB_SHRT_BYTES == 2
typedef signed short _PDCLIB_int16_t;
-typedef unsigned short _PDCLIB_int16_t;
+typedef unsigned short _PDCLIB_uint16_t;
#define _PDCLIB_INT16_MAX _PDCLIB_SHRT_MAX
#define _PDCLIB_INT16_MIN _PDCLIB_SHRT_MIN
#define _PDCLIB_UINT16_MAX _PDCLIB_USHRT_MAX
/* Setting 'int32_t', its limits, and its literal */
#if _PDCLIB_INT_BYTES == 4
typedef signed int _PDCLIB_int32_t;
-typedef unsigned int _PDCLIB_int32_t;
+typedef unsigned int _PDCLIB_uint32_t;
#define _PDCLIB_INT32_MAX _PDCLIB_INT_MAX
#define _PDCLIB_INT32_MIN _PDCLIB_INT_MIN
#define _PDCLIB_UINT32_MAX _PDCLIB_UINT_MAX
#elif _PDCLIB_LONG_BYTES == 4
typedef signed long _PDCLIB_int32_t;
-typedef unsigned long _PDCLIB_int32_t;
+typedef unsigned long _PDCLIB_uint32_t;
#define _PDCLIB_INT32_MAX _PDCLIB_LONG_MAX
#define _PDCLIB_INT32_MIN _PDCLIB_LONG_MIN
#define _PDCLIB_UINT32_MAX _PDCLIB_LONG_MAX
#if _PDCLIB_LONG_BYTES == 8
typedef signed long _PDCLIB_int64_t;
-typedef unsigned long _PDCLIB_int64_t;
+typedef unsigned long _PDCLIB_uint64_t;
#define _PDCLIB_INT64_MAX _PDCLIB_LONG_MAX
#define _PDCLIB_INT64_MIN _PDCLIB_LONG_MIN
-#define _PDCLIB_INT64_MAX _PDCLIB_ULONG_MAX
+#define _PDCLIB_UINT64_MAX _PDCLIB_ULONG_MAX
#elif _PDCLIB_LLONG_BYTES == 8
typedef signed long long _PDCLIB_int64_t;
-typedef unsigned long long _PDCLIB_int64_t;
+typedef unsigned long long _PDCLIB_uint64_t;
#define _PDCLIB_INT64_MAX _PDCLIB_LLONG_MAX
#define _PDCLIB_INT64_MIN _PDCLIB_LLONG_MIN
-#define _PDCLIB_INT64_MAX _PDCLIB_ULLONG_MAX
+#define _PDCLIB_UINT64_MAX _PDCLIB_ULLONG_MAX
#else
#error Neither 'long' nor 'long long' are 64-bit.
#endif
#define _PDCLIB_UINT64_LITERAL ull
/* -------------------------------------------------------------------------- */
-/* <stdint.h> "fast" typedefs */
+/* <stdint.h> intptr and intmax typedefs and limits */
/* -------------------------------------------------------------------------- */
typedef int _PDCLIB_intptr_t;