Subject: Re: [PATCH] git mailinfo strips important context from patch subjects

From: Paolo Bonzini <[email-masked]>
Date: Mon, 29 Jun 2009 12:21:14 +0200

>> case '[':
>> if ((pos = strchr(subject->buf, ']'))) {
>> remove = pos - subject->buf;
>> - if (remove <= (subject->len - remove) * 2) {
>> + if (remove <= subject->len * 2 / 3
>> + && memmem(subject->buf, remove, 'PATCH', 5)) {
>> strbuf_remove(subject, 0, remove + 1);
>> continue;
>> }
>
>
> Pardon my ignorance, but wouldn't this still remove not only
> "[PATCH 4/5]", but all of [PATCH 4/5] [sbuild]" anyway? The
> parameters to strbuf_remove() seem unchanged.

I don't exclude I've screwed up, but note that pos is computed with 
strchr, not strrchr.  Since the second memmem does not find [PATCH], it 
does not remove anything.

(BTW, cairo uses the [...] convention).

Paolo