summaryrefslogtreecommitdiffstats
path: root/src/H5private.h
diff options
context:
space:
mode:
authorDavid Young <dyoung@hdfgroup.org>2020-09-28 19:42:18 (GMT)
committerDavid Young <dyoung@hdfgroup.org>2020-09-28 19:42:18 (GMT)
commit14851e3b82a9b116153f9505654faf2f60e1abe2 (patch)
tree4ab01f77f124bad03f76338e70b6e2b3f0fb01e5 /src/H5private.h
parent8ee8b7abb55bc8d901e31b3eef9ba35abb352814 (diff)
parentc0fbc5c086566d5d3c1d1ef26baa81a53d59fc08 (diff)
downloadhdf5-14851e3b82a9b116153f9505654faf2f60e1abe2.zip
hdf5-14851e3b82a9b116153f9505654faf2f60e1abe2.tar.gz
hdf5-14851e3b82a9b116153f9505654faf2f60e1abe2.tar.bz2
Merge pull request #2650 in HDFFV/hdf5 from ~DYOUNG/werror:rebased-fprintf-experiment to develop
* commit 'c0fbc5c086566d5d3c1d1ef26baa81a53d59fc08': (24 commits) Use the right format string, "%zu", for size_t. Repair more format strings. Fix a bunch of format string errors reported by Larry. Fix some HDfprintf compilation errors: use the right format strings ("zu", PRIuHSIZE), avoid casting some printf arguments, pass the right number of arguments. Test the format string "ll" before "l", "L", and "q", like the ./configure script does. This ought to fix the compilation failure in test/dt_arith.c that Allen told me about: Cast a non-void pointer to void pointer for "%p". Use PRIu32 and "zu" formats. Delete some casts from `size_t`. I'm taking a guess that this code intended to point the 2-digit wide hexadecimal octet values, not 2 character-wide pointers to the bytes. The %02p format, which is a GNU-ism, disagreed with GCC 8.3.0 and the option flags we use. %08p is not portable, it's a GNU-ism. Use %8p, instead. Squashes a GCC error. Add format string macros PRI[doxX]HID for hid_t and use PRIdHID. Use HDva_copy() and introduce a bunch of compatbility format-string constants for uppercase hexadecimal strings, `PRIX...`. Should fix the VS2010 errors that Allen mentioned: Always #define HDfprintf as fprintf in this header. I believe this will fix the Windows build error that Allen reported. Provide an HDvasprintf implementation only if it isn't #defined. This should fix the mingw compilation issue that Allen reported. Fix va_list usage in the vasprintf(3) implementation. Promote format-string warnings to errors. Use the portable `-eq` operator instead of the bash-ism `==`. Fixes the tests on NetBSD, where /bin/sh != bash. Restore a literal percent sign ("%%") that I accidentally deleted. Fix code that made GCC complain about a NULL or `unsigned char *` arguments for "%s". Take pains to provide UINT64_MAX in all conditions. Correct a couple of format strings. ...
Diffstat (limited to 'src/H5private.h')
-rw-r--r--src/H5private.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/H5private.h b/src/H5private.h
index 9c5b450..5f9652c 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -687,6 +687,11 @@ typedef struct {
#ifndef HDacos
#define HDacos(X) acos(X)
#endif /* HDacos */
+#ifndef HDvasprintf
+# ifdef H5_HAVE_VASPRINTF
+# define HDvasprintf(RET,FMT,A) vasprintf(RET,FMT,A)
+# endif /* H5_HAVE_VASPRINTF */
+#endif /* HDvasprintf */
#ifndef HDalarm
#ifdef H5_HAVE_ALARM
#define HDalarm(N) alarm(N)
@@ -912,10 +917,12 @@ H5_DLL H5_ATTR_CONST int Nflock(int fd, int operation);
#ifndef HDfork
#define HDfork() fork()
#endif /* HDfork */
+#ifndef HDfprintf
+#define HDfprintf fprintf
+#endif
#ifndef HDfpathconf
#define HDfpathconf(F,N) fpathconf(F,N)
#endif /* HDfpathconf */
-H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...);
#ifndef HDfputc
#define HDfputc(C,F) fputc(C,F)
#endif /* HDfputc */
@@ -1248,7 +1255,7 @@ typedef off_t h5_stat_size_t;
#define HDpread(F,B,C,O) pread(F,B,C,O)
#endif /* HDpread */
#ifndef HDprintf
- #define HDprintf(...) HDfprintf(stdout, __VA_ARGS__)
+ #define HDprintf printf
#endif /* HDprintf */
#ifndef HDputc
#define HDputc(C,F) putc(C,F)
@@ -1613,9 +1620,6 @@ typedef off_t h5_stat_size_t;
#ifndef HDva_start
#define HDva_start(A,P) va_start(A,P)
#endif /* HDva_start */
-#ifndef HDvasprintf
- #define HDvasprintf(RET,FMT,A) vasprintf(RET,FMT,A)
-#endif /* HDvasprintf */
#ifndef HDvfprintf
#define HDvfprintf(F,FMT,A) vfprintf(F,FMT,A)
#endif /* HDvfprintf */