On Tue, Nov 02, 2021 at 07:35:35AM -0400, Jeff King wrote: > @@ -1019,6 +1024,13 @@ void strbuf_addftime(struct strbuf *sb, const char *fmt, const struct tm *tm, > strbuf_addstr(&munged_fmt, "%%"); > fmt++; > break; > + case 's': > + strbuf_addf(&munged_fmt, "%"PRItime, > + tm_to_time_t(tm) - > + 3600 * (tz_offset / 100) - > + 60 * (tz_offset % 100)); > + fmt++; > + break; Looks like we may need something like this squashed in: diff --git a/strbuf.c b/strbuf.c index 33015b33df..995394f38e 100644 --- a/strbuf.c +++ b/strbuf.c @@ -1026,7 +1026,7 @@ void strbuf_addftime(struct strbuf *sb, const char *fmt, const struct tm *tm, break; case 's': strbuf_addf(&munged_fmt, "%"PRItime, - tm_to_time_t(tm) - + (timestamp_t)tm_to_time_t(tm) - 3600 * (tz_offset / 100) - 60 * (tz_offset % 100)); fmt++; because tm_to_time_t() returns an actual time_t, which will vary in size. The 32-bit CI job complains: strbuf.c:1028:29: error: format '%lld' expects argument of type 'long long int', but argument 3 has type 'long int' [-Werror=format=] -Peff