Previously the regular expression would remove the first set of square brackets regardless of what came before it. If a patch with a summary such as 'Added a[0] to a line' was passed through git-format-patch with the -k option then the summary would be cropped to 'to a line' when applied with git-am. The new regular expression also matches any number of 're:' prefixes which apparently can be generated by some old mail clients. The old regexp required that there be at least one set of square brackets before it would remove the 're:' and this is now fixed. --- builtin-mailinfo.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) This patch is meant to apply on top of the two previous patches by Roger Leigh which are available here: http://marc.info/?l=git&m=124839483217718&w=2 http://marc.info/?l=git&m=124839483317722&w=2 It fixes some small problems as described above. diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c index 7098c90..f5799f1 100644 --- a/builtin-mailinfo.c +++ b/builtin-mailinfo.c @@ -227,7 +227,7 @@ static void cleanup_subject(struct strbuf *subject) /* Strip off 'Re:' and/or the first text in square brackets, such as '[PATCH]' at the start of the mail Subject. */ status = regcomp(®ex, - "^([Rr]e:)?([^]]*\\[[^]]+\\])(.*)$", + "^([Rr]e:[ \t]*)*(\\[[^]]+\\][ \t]*)?", REG_EXTENDED); if (status) { @@ -248,10 +248,9 @@ static void cleanup_subject(struct strbuf *subject) /* Store any matches in match. */ status = regexec(®ex, subject->buf, 4, match, 0); - /* If there was a match for \3 in the regex, trim the subject - to this match. */ - if (!status && match[3].rm_so > 0) { - strbuf_remove(subject, 0, match[3].rm_so); + /* If there was a match, remove it */ + if (!status && match[0].rm_so >= 0) { + strbuf_remove(subject, 0, match[0].rm_eo); strbuf_trim(subject); } -- 1.6.0.4 -- 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