[PATCH v3 2/3] reply: Remove extraneous space from generated References

Subject: [PATCH v3 2/3] reply: Remove extraneous space from generated References

Date: Fri, 16 Aug 2013 11:35:42 -0400

To: notmuch@notmuchmail.org

Cc: tomi.ollila@iki.fi

From: Austin Clements


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 |    7 +++++--
 test/multipart  |    2 +-
 test/reply      |    2 +-
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/notmuch-reply.c b/notmuch-reply.c
index 3b2b58d..472a002 100644
--- a/notmuch-reply.c
+++ b/notmuch-reply.c
@@ -537,9 +537,12 @@ create_reply_message(void *ctx,
 			      "In-Reply-To", in_reply_to);
 
     orig_references = notmuch_message_get_header (message, "references");
+    if (!orig_references)
+	/* Treat errors like missing References headers. */
+	orig_references = "";
     references = talloc_asprintf (ctx, "%s%s%s",
-				  orig_references ? orig_references : "",
-				  orig_references ? " " : "",
+				  *orig_references ? orig_references : "",
+				  *orig_references ? " " : "",
 				  in_reply_to);
     g_mime_object_set_header (GMIME_OBJECT (reply),
 			      "References", references);
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@notmuchmail.org>",
  "To": "Carl Worth <cworth@cworth.org>, cworth@cworth.org",
  "In-reply-to": "<87liy5ap00.fsf@yoom.home.cworth.org>",
- "References": " <87liy5ap00.fsf@yoom.home.cworth.org>"},
+ "References": "<87liy5ap00.fsf@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@notmuchmail.org>",
         "In-reply-to": "<'${gen_msg_id}'>",
-        "References": " <'${gen_msg_id}'>",
+        "References": "<'${gen_msg_id}'>",
         "Subject": "Re: \u00e0\u00df\u00e7",
         "To": "\u2603 <snowman@example.com>"
     }
-- 
1.7.10.4


Thread: