On Mon, May 15, 2017 at 11:12:03AM +0900, Junio C Hamano wrote:
> >> diff --git a/builtin/commit.c b/builtin/commit.c
> >> index 2de5f6cc6..2ce9c339d 100644
> >> --- a/builtin/commit.c
> >> +++ b/builtin/commit.c
> >> @@ -1735,7 +1735,8 @@ int cmd_commit(int argc, const char **argv, const
> >> char *prefix)
> >>
> >> if (verbose || /* Truncate the message just before the diff, if any. */
> >> cleanup_mode == CLEANUP_SCISSORS)
> >> - wt_status_truncate_message_at_cut_line(&sb);
> >> + strbuf_setlen(&sb,
> >> + wt_status_last_nonscissors_index(sb.buf, sb.len));
> >
> > This hunk surprised me at first (that we would need to touch commit.c at
> > all), but the refactoring makes sense.
>
> This still surprises me. If the problem is in interpret-trailers,
> why do we even need to touch cmd_commit()? If GIT_EDITOR returns us
The behavior of cmd_commit() shouldn't be changed by the patch. But to
make the interface suitable for the new callsite (which doesn't have a
strbuf, but a ptr/len buffer), it needs to return the length rather than
shortening the strbuf. We could leave in place:
void wt_status_truncate_message_at_cut_line(struct strbuf *sb)
{
strbuf_setlen(sb, wt_status_last_nonscissors_index(sb->buf, sb->len));
}
but it would only have this one caller.
If I were doing the patch series, I'd probably have split that
refactoring into its own patch and discussed the reason separately. I
waffled on whether or not to ask Brian to do so (and obviously didn't in
the end).
> The proposed log message calls the cut-line "scissors", but that is
> probably a source of this confusion. The cut-line and scissors do
> not have much in commmon. For one thing, scissors is a mechanism to
> discard everything _ABOVE_ it. The cut-line we see in this example,
> on the other hand, is about discarding everything _BELOW_ it.
I suspect the confusion comes from calling it CLEANUP_SCISSORS in the
quoted context above, then. Certainly we use scissors for "snip
everything above this line" in mailinfo, but here it is "snip everything
after this line". I don't think it's wrong to refer to it as a scissors
line, even though the operation is different.
-Peff