From: Patrick Steinhardt Date: Thu, 04 Dec 2025 11:23:27 GMT Subject: Re: [PATCH 1/4] parse: prefer bool to int for boolean returns Message-ID: In-Reply-To: <20251130131441.GA199335@coredump.intra.peff.net> On Sun, Nov 30, 2025 at 08:14:41AM -0500, Jeff King wrote: > All of the integer parsing functions in parse.[ch] return an int that is > "0" for failure or "1" for success. Since most of the other functions in > Git use "0" for success and "-1" for failure, this can be confusing. > Let's switch the return types to bool to make it clear that we are using > this other convention. Callers should not need to update at all. > > Signed-off-by: Jeff King > --- > Obviously not strictly necessary for this series, but I think a good > idea regardless of the rest of it. Agreed, I think this is a sensible change as it helps guide users. I know that I was confused by the API several times already. > diff --git a/parse.c b/parse.c > index 48313571aa..f626846def 100644 > --- a/parse.c > +++ b/parse.c > int git_parse_maybe_bool_text(const char *value) > diff --git a/parse.h b/parse.h > index ea32de9a91..f80cc5b9fd 100644 > --- a/parse.h > +++ b/parse.h > @@ -1,13 +1,13 @@ > #ifndef PARSE_H > #define PARSE_H > > -int git_parse_signed(const char *value, intmax_t *ret, intmax_t max); > -int git_parse_unsigned(const char *value, uintmax_t *ret, uintmax_t max); > -int git_parse_ssize_t(const char *, ssize_t *); > -int git_parse_ulong(const char *, unsigned long *); > -int git_parse_int(const char *value, int *ret); > -int git_parse_int64(const char *value, int64_t *ret); > -int git_parse_double(const char *value, double *ret); > +bool git_parse_signed(const char *value, intmax_t *ret, intmax_t max); > +bool git_parse_unsigned(const char *value, uintmax_t *ret, uintmax_t max); > +bool git_parse_ssize_t(const char *, ssize_t *); > +bool git_parse_ulong(const char *, unsigned long *); > +bool git_parse_int(const char *value, int *ret); > +bool git_parse_int64(const char *value, int64_t *ret); > +bool git_parse_double(const char *value, double *ret); Should we maybe add a comment to these functions while at it to document their behaviour? Patrick