Re: [PATCH] merge & sequencer: turn "Conflicts:" hint into a comment
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 27, 2014, 20:59 UTC
- Message-ID
- <xmqqsii9qleh.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <xmqqegttfmg0.fsf@gitster.dls.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 29 quoted lines
>>> diff --git a/sequencer.c b/sequencer.c
>>> index 0f84bbe..1d97da3 100644
>>> --- a/sequencer.c
>>> +++ b/sequencer.c
>>> @@ -291,13 +291,12 @@ void append_conflicts_hint(struct strbuf *msgbuf)
>>> {
>>> int i;
>>>
>>> - strbuf_addstr(msgbuf, "\nConflicts:\n");
>>> + strbuf_addch(msgbuf, '\n');
>>> + strbuf_commented_addf(msgbuf, "Conflicts:\n");
>>> for (i = 0; i < active_nr;) {
>>> const struct cache_entry *ce = active_cache[i++];
>>> if (ce_stage(ce)) {
>>> - strbuf_addch(msgbuf, '\t');
>>> - strbuf_addstr(msgbuf, ce->name);
>>> - strbuf_addch(msgbuf, '\n');
>>> + strbuf_commented_addf(msgbuf, "\t%s\n", ce->name);
>>
>> This ends up adding a space followed by a tab. Besides being redundant,
>> it makes my editor highlight it as a whitespace error. I realize this is
>> a pretty minor nit, though.
>
> Interesting ;-)
>
> I do not think it is too hard to teach strbuf_commented_addf() about
> the leading HT, but that would be a separate topic; if squashing the
> SP-HT to HT is worth doing for this codepath, doing it at that helper
> would benefit all callers.-- >8 -- Subject: [PATCH] strbuf_add_lines(): avoid SP-HT sequence
The strbuf_add_commented_lines() function passes a pair of prefixes, one for a line that has some meat on it, and the other for an empty line. The former is set to a comment char followed by a SP, while the latter is set to just the comment char. This is to give a SP after the comment character, e.g. "# <user text>\n" and to avoid emitting an unsightly "# \n" in its output.
Teach the machinery to also use the latter space-less prefix when the payload line begins with a tab; otherwise we will end up showing "# \t<user text>\n" which is similarly unsightly.
Signed-off-by: Junio C Hamano <gitster@pobox.com> --- strbuf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/strbuf.c b/strbuf.c index 0346e74..88cafd4 100644 --- a/strbuf.c +++ b/strbuf.c @@ -229,7 +229,8 @@ static void add_lines(struct strbuf *out, const char *next = memchr(buf, '\n', size); next = next ? (next + 1) : (buf + size); - prefix = (prefix2 && buf[0] == '\n') ? prefix2 : prefix1; + prefix = ((prefix2 && (buf[0] == '\n' || buf[0] == '\t')) + ? prefix2 : prefix1); strbuf_addstr(out, prefix); strbuf_add(out, buf, next - buf); size -= next - buf;