From b2cb485268b1290b6c0984c328fd5ffbddfada78 Mon Sep 17 00:00:00 2001 From: David Young Date: Thu, 6 Feb 2020 13:15:48 -0600 Subject: Provide C99/POSIX.1 format strings PRI[doux]{8,16,32,64,MAX,PTR} on systems that are missing . --- src/H5public.h | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/H5public.h b/src/H5public.h index 86a1fbb..3312cf4 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -51,7 +51,45 @@ # endif #endif #ifdef H5_HAVE_INTTYPES_H -# include /* For uint64_t on some platforms */ +# include /* C99/POSIX.1 header for uint64_t, PRIu64 */ +#else /* H5_HAVE_INTTYPES_H */ +/* The following definitions should be suitable for 64-bit Windows, which is + * LLP64, and for 32-bit Windows, which is ILP32. Those are the only + * platforms where is likely to be missing. VS2015 and later + * *may* provide these definitions. + */ +#ifdef _WIN64 +# define PRIdPTR "lld" +# define PRIoPTR "llo" +# define PRIuPTR "llu" +# define PRIxPTR "llx" +#else /* _WIN64 */ +# define PRIdPTR "ld" +# define PRIoPTR "lo" +# define PRIuPTR "lu" +# define PRIxPTR "lx" +#endif /* _WIN64 */ + +# define PRId8 "d" +# define PRIo8 "o" +# define PRIu8 "u" +# define PRIx8 "x" +# define PRId16 "d" +# define PRIo16 "o" +# define PRIu16 "u" +# define PRIx16 "x" +# define PRId32 "d" +# define PRIo32 "o" +# define PRIu32 "u" +# define PRIx32 "x" +# define PRId64 "lld" +# define PRIo64 "llo" +# define PRIu64 "llu" +# define PRIx64 "llx" +# define PRIdMAX "lld" +# define PRIoMAX "llo" +# define PRIuMAX "llu" +# define PRIxMAX "llx" #endif #ifdef H5_HAVE_STDDEF_H # include -- cgit v0.12