Re: [PATCH 1/2] gpg-interface: refactor 'enum sign_mode' parsing
- From
Christian Couder <christian.couder@gmail.com>
- Date
- Sep 12, 2025, 12:40 UTC
- Message-ID
- <CAP8UFD13RvAD1d588onpv88LW73M_YPJ2aaAHeoveFtcCOAhTA@mail.gmail.com>
- In-Reply-To
- <xmqqcy7xosu8.fsf@gitster.g>
On Thu, Sep 11, 2025 at 6:29 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 17 quoted lines
>
> Patrick Steinhardt <ps@pks.im> writes:
>
> >> + if (!parse_sign_mode(arg, val))
> >> + return 0;
> >> +
> >> + return error("Unknown %s mode: %s", opt->long_name, arg);
> >
> > Would it make sense to maybe reverse the error handling and say
> > something like:
> >
> > if (parse_sign_mode(arg, val) < 0)
> > return error("Unknown %s mode: %s", opt->long_name, arg);
> >
> > return 0;
> >
> > That reads a bit more natural to me at least.Before the above part of the code, there is:
if (unset)
return 0;So it felt natural to me to have a flow where we continue to return 0 (success) if we can and go on otherwise.
Show 11 quoted lines
> I also thought that the original had a "Huh?" factor, but my > reaction was more like "wouldn't it be easier to see if these are > both sides of if/else?", i.e. > > if (parse_sign_mode(...)) > return error(...); > else > return 0; > > which made me think that the differences were mostly subjective and > refrained from commenting.
I agree that the difference is very subjective. If there was something like for example:
```
if (A)
return 0;if (B)
return 0;...
if (F)
return 0;return -1 ```
It would feel strange if the function ended instead with:
```
if (!F)
return -1;return 0; ```
Show 8 quoted lines
> But after I see your version, I tend to agree that it is easier to > see the flow if the most-straightforward success case ran through to > the end, while exceptional cases (i.e. an error return, or the > initial "unset" case) did early returns. I have to add, however, > that I feel that this is mostly subjective and falls into "once it > is in the tree, it's not really worth the patch noise to go and fix > it up" category. If we will have v2 of this series, I do prefer to > see it written more in your way, though.
Fine, I have written it in the way Patrick suggested in V2.
Thanks.