Junio C Hamano <gitster@xxxxxxxxx> writes: >> Can we likewise ditch the fallback definition for SCNuMAX? And PRIu32, >> etc? It seems likely any platform would either have all of them or none. > > I guess that's also a C99-ism that we can use? > > Thanks, both. 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@xxxxxxxxx> ## 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@xxxxxxxxx> + Helped-by: Jeff King <peff@xxxxxxxx> + [jc: tweaked both message and code, taking what peff wrote] Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> ## 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