Here is what I have locally for now.
1: 98f866a929 ! 1: ebc3278665 git-compat-util.h: drop the `PRIuMAX` definition
@@ Metadata
Author: Hariom Verma <hariom18599@gmail.com>
## Commit message ##
- git-compat-util.h: drop the `PRIuMAX` definition
+ git-compat-util.h: drop the `PRIuMAX` and other fallback definitions
Git's code base already seems to be using `PRIdMAX` without any such
fallback definition for quite a while (75459410edd (json_writer: new
routines to create JSON data, 2018-07-13), to be precise, and the
- first Git version to include that commit was v2.19.0).
+ first Git version to include that commit was v2.19.0). Having a
+ fallback definition only for `PRIuMAX` is a bit inconsistent.
- Therefore it should be safe to drop the fallback definition for
- `PRIuMAX` in `git-compat-util.h`.
+ We do sometimes get portability reports more than a year after the
+ problem was introduced. This one should be fairly safe. PRIuMAX is
+ in C99 (for that matter, SCNuMAX, PRIu32 and others also are), and
+ we've been picking up other C99-isms without complaint.
- This addresses https://github.com/gitgitgadget/git/issues/399
+ The PRIuMAX fallback definition was originally added in 3efb1f343a
+ (Check for PRIuMAX rather than NO_C99_FORMAT in fast-import.c.,
+ 2007-02-20). But it was replacing a construct that was introduced in
+ an even earlier commit, 579d1fbfaf (Add NO_C99_FORMAT to support
+ older compilers., 2006-07-30), which talks about gcc 2.95.
+
+ That's pretty ancient at this point.
Signed-off-by: Hariom Verma <hariom18599@gmail.com>
+ Helped-by: Jeff King <peff@peff.net>
+ [jc: tweaked both message and code, taking what peff wrote]
Signed-off-by: Junio C Hamano <gitster@pobox.com>
## git-compat-util.h ##
@@ git-compat-util.h: char *gitdirname(char *);
-#define PRIuMAX "llu"
-#endif
-
- #ifndef SCNuMAX
- #define SCNuMAX PRIuMAX
- #endif
+-#ifndef SCNuMAX
+-#define SCNuMAX PRIuMAX
+-#endif
+-
+-#ifndef PRIu32
+-#define PRIu32 "u"
+-#endif
+-
+-#ifndef PRIx32
+-#define PRIx32 "x"
+-#endif
+-
+-#ifndef PRIo32
+-#define PRIo32 "o"
+-#endif
+-
+ typedef uintmax_t timestamp_t;
+ #define PRItime PRIuMAX
+ #define parse_timestamp strtoumax