size_t may be bigger than unsigned long, so don't just cast to unsigned
long and print with %lu". (In practice, the value is unlikely to be
bigger, but this is cleaner.)
We could use %zu on UN*X, as we require C99 support and C99 requires
support for z as a size modifier, but MSVC doesn't support z as a size
modifier until Visual Studio 2017.
Updated from:
libpcap/commit/
e217f88289b9601e3a9a8d13477f867bcb83b5e2
#define PRIu64 "llu"
#endif
#endif
+
+ /*
+ * MSVC's support library doesn't support %zu to print a size_t until
+ * Visual Studio 2017, but supports %Iu earlier, so use that.
+ */
+ #define PRIsize "Iu"
#elif defined(__MINGW32__) || !defined(_WIN32)
/*
* Compiler is MinGW or target is UN*X or MS-DOS. Just use
* <inttypes.h>.
*/
#include <inttypes.h>
+
+ /*
+ * Assume the support library supports %zu; it's required by C99.
+ */
+ #define PRIsize "zu"
#endif
#endif /* HAVE_PCAP_PCAP_INTTYPES_H */