]> The Tcpdump Group git mirrors - tcpdump/commitdiff
Add PRIsize, to use as the print format for size_t
authorFrancois-Xavier Le Bail <[email protected]>
Sat, 3 Aug 2019 14:14:22 +0000 (16:14 +0200)
committerFrancois-Xavier Le Bail <[email protected]>
Sat, 3 Aug 2019 14:24:04 +0000 (16:24 +0200)
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

netdissect-stdinc.h

index 5aef8234c44ef4fcdc57c5975fe503e027c69732..9cf3cf07a5426d1a0d2bfa3cf844270a378f4fba 100644 (file)
         #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 */