[PATCH v2 2/3] reply: Remove extraneous space from generated References
Austin Clements
amdragon at MIT.EDU
Fri Aug 16 08:15:25 PDT 2013
Quoth Jani Nikula on Aug 16 at 5:19 pm:
> On Thu, 15 Aug 2013, Austin Clements <amdragon at MIT.EDU> wrote:
> > Previously, the References header code seemed to assume
> > notmuch_message_get_header would return NULL if the header was not
> > present, but it actually returns "". As a result of this, it was
> > inserting an unnecessary space when concatenating an empty or missing
> > original references header with the new reference.
> >
> > This shows up in only two tests because the text reply format later
> > passes the whole reply template through g_mime_filter_headers, which
> > has the side effect of stripping out this extra space.
> > ---
> > notmuch-reply.c | 14 ++++++++------
> > test/multipart | 2 +-
> > test/reply | 2 +-
> > 3 files changed, 10 insertions(+), 8 deletions(-)
> >
> > diff --git a/notmuch-reply.c b/notmuch-reply.c
> > index 3b2b58d..0f3b9cd 100644
> > --- a/notmuch-reply.c
> > +++ b/notmuch-reply.c
> > @@ -537,12 +537,14 @@ create_reply_message(void *ctx,
> > "In-Reply-To", in_reply_to);
> >
> > orig_references = notmuch_message_get_header (message, "references");
> > - references = talloc_asprintf (ctx, "%s%s%s",
> > - orig_references ? orig_references : "",
> > - orig_references ? " " : "",
> > - in_reply_to);
> > - g_mime_object_set_header (GMIME_OBJECT (reply),
> > - "References", references);
> > + if (orig_references) {
> > + references = talloc_asprintf (ctx, "%s%s%s",
> > + *orig_references ? orig_references : "",
> > + *orig_references ? " " : "",
> > + in_reply_to);
> > + g_mime_object_set_header (GMIME_OBJECT (reply),
> > + "References", references);
> > + }
>
> If orig_references turned out to be NULL, wouldn't this then fail to add
> a References: header with in_reply_to in it?
That's true. It's not clear what the best course of action is if
orig_references is NULL, but you're right that failing to produce a
References header altogether is probably not it. I'll make it treat
errors and missing/empty References headers identically.
> Jani.
>
>
> >
> > return reply;
> > }
> > diff --git a/test/multipart b/test/multipart
> > index c974226..2033023 100755
> > --- a/test/multipart
> > +++ b/test/multipart
> > @@ -599,7 +599,7 @@ cat <<EOF >EXPECTED
> > "From": "Notmuch Test Suite <test_suite at notmuchmail.org>",
> > "To": "Carl Worth <cworth at cworth.org>, cworth at cworth.org",
> > "In-reply-to": "<87liy5ap00.fsf at yoom.home.cworth.org>",
> > - "References": " <87liy5ap00.fsf at yoom.home.cworth.org>"},
> > + "References": "<87liy5ap00.fsf at yoom.home.cworth.org>"},
> > "original": {"id": "XXXXX",
> > "match": false,
> > "excluded": false,
> > diff --git a/test/reply b/test/reply
> > index c877ffe..a85ebe5 100755
> > --- a/test/reply
> > +++ b/test/reply
> > @@ -242,7 +242,7 @@ test_expect_equal_json "$output" '
> > "reply-headers": {
> > "From": "Notmuch Test Suite <test_suite at notmuchmail.org>",
> > "In-reply-to": "<'${gen_msg_id}'>",
> > - "References": " <'${gen_msg_id}'>",
> > + "References": "<'${gen_msg_id}'>",
> > "Subject": "Re: \u00e0\u00df\u00e7",
> > "To": "\u2603 <snowman at example.com>"
> > }
More information about the notmuch
mailing list