1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-18 19:41:01 -05:00

New wrapper macro for printf("%zu"), for old VS compat.

A user reports that Visual Studio 2013 and earlier have printf
implementations in their C library that don't support the 'z' modifier
to indicate that an integer argument is size_t. The 'I' modifier
apparently works in place of it.

To avoid littering ifdefs everywhere, I've invented my own inttypes.h
style macros to wrap size_t formatting directives, which are defined
to %zu and %zx normally, or %Iu and %Ix in old-VS mode. Those are in
defs.h, and they're used everywhere that a %z might otherwise get into
the Windows build.
This commit is contained in:
Simon Tatham
2020-01-26 10:59:07 +00:00
parent 247866a9d3
commit 82a7e8c4ac
9 changed files with 29 additions and 20 deletions

View File

@ -344,7 +344,7 @@ void log_packet(LogContext *ctx, int direction, int type,
/* If we're about to stop omitting, it's time to say how
* much we omitted. */
if ((blktype != PKTLOG_OMIT) && omitted) {
logprintf(ctx, " (%zu byte%s omitted)\r\n",
logprintf(ctx, " (%"SIZEu" byte%s omitted)\r\n",
omitted, (omitted==1?"":"s"));
omitted = 0;
}
@ -352,7 +352,8 @@ void log_packet(LogContext *ctx, int direction, int type,
/* (Re-)initialise dumpdata as necessary
* (start of row, or if we've just stopped omitting) */
if (!output_pos && !omitted)
sprintf(dumpdata, " %08zx%*s\r\n", p-(p%16), 1+3*16+2+16, "");
sprintf(dumpdata, " %08"SIZEx"%*s\r\n",
p-(p%16), 1+3*16+2+16, "");
/* Deal with the current byte. */
if (blktype == PKTLOG_OMIT) {
@ -387,7 +388,7 @@ void log_packet(LogContext *ctx, int direction, int type,
/* Tidy up */
if (omitted)
logprintf(ctx, " (%zu byte%s omitted)\r\n",
logprintf(ctx, " (%"SIZEu" byte%s omitted)\r\n",
omitted, (omitted==1?"":"s"));
logflush(ctx);
}