changeset 2392:835b231d8083

Use standard inttypes.h for defining the DM_PRI* format specifiers, except for our custom DM_PRI*_SIZE_T ones.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 09 Jan 2020 20:54:39 +0200
parents d1992206765a
children 85700c9b7dc8
files src/dmlib.h
diffstat 1 files changed, 23 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/src/dmlib.h	Thu Jan 09 20:47:33 2020 +0200
+++ b/src/dmlib.h	Thu Jan 09 20:54:39 2020 +0200
@@ -18,6 +18,7 @@
 #include <stdarg.h>
 #include <stdlib.h>
 #include <ctype.h>
+#include <inttypes.h>
 
 
 #ifdef DM_USE_ASSERTS
@@ -55,40 +56,32 @@
 
 // Do we have a valid arch?
 // If so, set some printf specifiers
+#define DM_PRIu32              PRIu32
+#define DM_PRId32              PRId32
+#define DM_PRIx32              PRIx32
+#define DM_PRIX32              PRIX32
+
+#define DM_PRIu64              PRIu64
+#define DM_PRId64              PRId64
+#define DM_PRIx64              PRIx64
+#define DM_PRIX64              PRIX64
+
 #if DM_ARCH == 32
-#  define DM_PRIu32          "u"
-#  define DM_PRId32          "d"
-#  define DM_PRIx32          "x"
-#  ifdef DM_WINDOWS
-#    define DM_PRIu64        "u"
-#    define DM_PRId64        "d"
-#    define DM_PRIx64        "x"
-#  else
-#    define DM_PRIu64        "llu"
-#    define DM_PRId64        "lld"
-#    define DM_PRIx64        "llx"
-#  endif
-#  define DM_PRIu_SIZE_T     "u"
-#  define DM_PRId_SSIZE_T    "d"
-#  define DM_PRIx_SIZE_T     "x"
+#    define DM_PRIu_SIZE_T     PRIu32
+#    define DM_PRId_SSIZE_T    PRId32
+#    define DM_PRIx_SIZE_T     PRIx32
+#    define DM_PRIX_SIZE_T     PRIX32
 #elif DM_ARCH == 64
-#  define DM_PRIu32          "u"
-#  define DM_PRId32          "d"
-#  define DM_PRIx32          "x"
 #  ifdef DM_WINDOWS
-#    define DM_PRIu64        "I64u"
-#    define DM_PRId64        "I64d"
-#    define DM_PRIx64        "I64x"
-#    define DM_PRIu_SIZE_T   "I64u"
-#    define DM_PRId_SSIZE_T  "I64d"
-#    define DM_PRIx_SIZE_T   "I64x"
+#    define DM_PRIu_SIZE_T     "I64u"
+#    define DM_PRId_SSIZE_T    "I64d"
+#    define DM_PRIx_SIZE_T     "I64x"
+#    define DM_PRIX_SIZE_T     "I64X"
 #  else
-#    define DM_PRIu64        "lu"
-#    define DM_PRId64        "ld"
-#    define DM_PRIx64        "lx"
-#    define DM_PRIu_SIZE_T   "lu"
-#    define DM_PRId_SSIZE_T  "ld"
-#    define DM_PRIx_SIZE_T   "lx"
+#    define DM_PRIu_SIZE_T     PRIu64
+#    define DM_PRId_SSIZE_T    PRId64
+#    define DM_PRIx_SIZE_T     PRIx64
+#    define DM_PRIX_SIZE_T     PRIX64
 #  endif
 #else
 #  error Could not determine architecture (32/64bit), please define DM_ARCH=32 or 64