Web lists-archives.com

Re: [GSoC][PATCH v2 6/7] rebase -i: rewrite setup_reflog_action() in C

Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes:

> You recently also suggested this if...else... dance to Pratik, where it
> was not at all about doing the same thing slightly differently, but rather
> two different things: 1) return an error because execvp() returned an
> error, 2) indicate a serious bug (and you did not even suggest using BUG()
> IIRC which is also wrong).

I was going to avoid wasting time on this topic, but I happened to
have a chance to review the execvp() thing.  

I actually think that is a good example of doing the same thing
slightly differently.  We want to abort the process when execvp()
gives control back to that caller, and we want to do so with
die_errno() when we know we have errno (i.e. sane_execvp() gave us
negative).  When sane_execvp() gave control back to us with
non-negative return, we cannot use die_errno(), but we would want to
abort the process regardless, as it is an indication that the callee
is not sane after all ;-)  It is a bug in underlying execvp() that
we cannot do much about, though.