summaryrefslogtreecommitdiff
path: root/builtin-mailinfo.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-07-10 20:18:09 -0700
committerJunio C Hamano <gitster@pobox.com>2009-07-10 20:18:09 -0700
commit73ccb916e4e733745e1361739b07f1ef3e97ae6b (patch)
treed2c9abd4af52f89c28cae775cc1babdadc2b3f42 /builtin-mailinfo.c
parent6edd14968bf969a651d057ea7fb7757393d282bf (diff)
parent650d30d8a120c8982309ccb9ef40432b4ea2eb74 (diff)
downloadgit-73ccb916e4e733745e1361739b07f1ef3e97ae6b.tar.gz
Merge branch 'ae/maint-mailinfo-rm-only-one-patch-marker'
* ae/maint-mailinfo-rm-only-one-patch-marker: mailinfo: Remove only one set of square brackets
Diffstat (limited to 'builtin-mailinfo.c')
-rw-r--r--builtin-mailinfo.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c
index 92637ac0ba..fb5ad70f3f 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