Kevin Daudt [off-list ref] writes:
rfc2822 has provisions for quoted strings and comments in structured header
fields, but also allows for escaping these with so-called quoted-pairs.
The only thing git currently does is removing exterior quotes, but
quotes within are left alone.
Remove exterior quotes and remove escape characters so that they don't
show up in the author field.
Signed-off-by: Kevin Daudt <redacted>
Signed-off-by: Junio C Hamano <redacted>
---
Changes since v2:
- handle comments inside comments recursively
- renamed the main function to unquote_quoted_pairs because it also
handles quoted pairs in comments
Sounds good, and the implemention looked straight-forward from a
quick scan.
quoted hunk
diff --git a/t/t5100-mailinfo.sh b/t/t5100-mailinfo.sh
index c4ed0f4..3e983c0 100755
--- a/t/t5100-mailinfo.sh
+++ b/t/t5100-mailinfo.sh
@@ -144,4 +144,18 @@ test_expect_success 'mailinfo unescapes with --mboxrd' '
test_cmp expect mboxrd/msg
'
+test_expect_success 'mailinfo handles rfc2822 quoted-string' '
+ mkdir quoted-string &&
+ git mailinfo /dev/null /dev/null <"$DATA"/quoted-string.in \
+ >quoted-string/info &&
+ test_cmp "$DATA"/quoted-string.expect quoted-string/info
+'
+
+test_expect_success 'mailinfo handles rfc2822 comment' '
+ mkdir comment &&
+ git mailinfo /dev/null /dev/null <"$DATA"/comment.in \
+ >comment/info &&
+ test_cmp "$DATA"/comment.expect comment/info
+'
+
test_done
Don't these also need to be downcased if you prefer $data over
$DATA, though?
Thanks.