summaryrefslogtreecommitdiff
path: root/builtin-mailinfo.c
diff options
context:
space:
mode:
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 1eeeb4de6d..be42532d43 100644
--- a/builtin-mailinfo.c
+++ b/builtin-mailinfo.c
@@ -222,6 +222,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':
@@ -236,10 +238,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