From: Paolo Bonzini Date: Mon, 29 Jun 2009 10:21:14 GMT Subject: Re: [PATCH] git mailinfo strips important context from patch subjects Message-ID: <4A48959A.3060404@gmail.com> In-Reply-To: <4A48870B.5050802@op5.se> >> 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