Andreas Ericsson <ae@xxxxxx> writes: > git-format-patch prepends patches with a [PATCH x/n] prefix, but > mailinfo used to remove any number of square-bracket pairs and > the content between them. This prevents one from using a commit > subject like this: > > [ and ] must be allowed as input > > Removing the square bracket pair from this rather clumsily > constructed subject line loses important information, so we must > take care not to. > > This patch causes the subject stripping to stop after it has > encountered one pair of square brackets. > > One possible downside of this patch is that the patch-handling > programs will now fail at removing author-added square-brackets > to be removed, such as > > [RFC][PATCH x/n] > > However, since format-patch only adds one set of square brackets, > this behaviour is quite easily undesrstood and defended while the > previous behaviour is not. > > Signed-off-by: Andreas Ericsson <ae@xxxxxx> > --- All good points, and I like this one, including its Subject: line. > builtin-mailinfo.c | 7 +++++++ > 1 files changed, 7 insertions(+), 0 deletions(-) > > diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c > index 92637ac..fb5ad70 100644 > --- a/builtin-mailinfo.c > +++ b/builtin-mailinfo.c > @@ -221,6 +221,8 @@ static void cleanup_subject(struct strbuf *subject) > { > char *pos; > size_t remove; > + int brackets_removed = 0; > + > while (subject->len) { > switch (*subject->buf) { > case 'r': case 'R': > @@ -235,10 +237,15 @@ static void cleanup_subject(struct strbuf *subject) > strbuf_remove(subject, 0, 1); > continue; > case '[': > + /* remove only one set of square brackets */ > + if (brackets_removed) > + break; > + > if ((pos = strchr(subject->buf, ']'))) { > remove = pos - subject->buf; > if (remove <= (subject->len - remove) * 2) { > strbuf_remove(subject, 0, remove + 1); > + brackets_removed = 1; > continue; > } > } else > -- > 1.6.3.3.354.gfb24 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html