[PATCH 1/7] cli/reply: push notmuch reply format abstraction lower in the stack
[notmuch-archives.git] / 1f / 84e71fe9cd67340c229d78495c61ccb5c7a169
1 Return-Path: <amdragon@mit.edu>\r
2 X-Original-To: notmuch@notmuchmail.org\r
3 Delivered-To: notmuch@notmuchmail.org\r
4 Received: from localhost (localhost [127.0.0.1])\r
5         by olra.theworths.org (Postfix) with ESMTP id E5422429E40\r
6         for <notmuch@notmuchmail.org>; Fri, 16 Aug 2013 08:35:53 -0700 (PDT)\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
8 X-Spam-Flag: NO\r
9 X-Spam-Score: -0.7\r
10 X-Spam-Level: \r
11 X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
12         tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
13 Received: from olra.theworths.org ([127.0.0.1])\r
14         by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
15         with ESMTP id tJCi1ZW4vxyM for <notmuch@notmuchmail.org>;\r
16         Fri, 16 Aug 2013 08:35:48 -0700 (PDT)\r
17 Received: from dmz-mailsec-scanner-8.mit.edu (dmz-mailsec-scanner-8.mit.edu\r
18         [18.7.68.37])\r
19         by olra.theworths.org (Postfix) with ESMTP id 5B9E7431E82\r
20         for <notmuch@notmuchmail.org>; Fri, 16 Aug 2013 08:35:48 -0700 (PDT)\r
21 X-AuditID: 12074425-b7f0c8e000000953-af-520e46d3022d\r
22 Received: from mailhub-auth-3.mit.edu ( [18.9.21.43])\r
23         by dmz-mailsec-scanner-8.mit.edu (Symantec Messaging Gateway) with SMTP\r
24         id 4C.B5.02387.3D64E025; Fri, 16 Aug 2013 11:35:47 -0400 (EDT)\r
25 Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])\r
26         by mailhub-auth-3.mit.edu (8.13.8/8.9.2) with ESMTP id r7GFZkor018110; \r
27         Fri, 16 Aug 2013 11:35:46 -0400\r
28 Received: from drake.dyndns.org\r
29         (216-15-114-40.c3-0.arl-ubr1.sbo-arl.ma.cable.rcn.com\r
30         [216.15.114.40]) (authenticated bits=0)\r
31         (User authenticated as amdragon@ATHENA.MIT.EDU)\r
32         by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id r7GFZid7020140\r
33         (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT);\r
34         Fri, 16 Aug 2013 11:35:45 -0400\r
35 Received: from amthrax by drake.dyndns.org with local (Exim 4.77)\r
36         (envelope-from <amdragon@mit.edu>)\r
37         id 1VAM40-0002vW-5t; Fri, 16 Aug 2013 11:35:44 -0400\r
38 From: Austin Clements <amdragon@MIT.EDU>\r
39 To: notmuch@notmuchmail.org\r
40 Subject: [PATCH v3 0/3] Clean up reply's encoding story\r
41 Date: Fri, 16 Aug 2013 11:35:40 -0400\r
42 Message-Id: <1376667343-10863-1-git-send-email-amdragon@mit.edu>\r
43 X-Mailer: git-send-email 1.7.10.4\r
44 X-Brightmail-Tracker:\r
45  H4sIAAAAAAAAA+NgFlrNIsWRmVeSWpSXmKPExsUixCmqrXvZjS/IoGOTocWefV4W12/OZLZ4\r
46         s3IeqwOzx93TXB6Hvy5k8Xi26hZzAHMUl01Kak5mWWqRvl0CV8a5J9uZCk7wVkw/79LA+Jyr\r
47         i5GTQ0LARKJ1dxcbhC0mceHeejBbSGAfo8Slr6VdjFxA9kZGiW3NhxkhEneYJP6vK4JIzGWU\r
48         +LX9PwtIgk1AQ2Lb/uVgRSIC0hI7785mBbGZBYwkJt0/DhYXFjCXmPbtDZjNIqAq0XJnClgN\r
49         r4CDxMNPq1ggrlCU6H42gW0CI+8CRoZVjLIpuVW6uYmZOcWpybrFyYl5ealFuhZ6uZkleqkp\r
50         pZsYQWHC7qK6g3HCIaVDjAIcjEo8vAwTeYOEWBPLiitzDzFKcjApifLOc+QLEuJLyk+pzEgs\r
51         zogvKs1JLT7EKMHBrCTCu9UAKMebklhZlVqUD5OS5mBREud9/vRsoJBAemJJanZqakFqEUxW\r
52         hoNDSYJ3oStQo2BRanpqRVpmTglCmomDE2Q4D9DwPSA1vMUFibnFmekQ+VOMilLivM4gCQGQ\r
53         REZpHlwvLI5fMYoDvSLMewqkigeYAuC6XwENZgIaPOkML8jgkkSElFQD46GeHEcOLrWLLAe+\r
54         ZKbPOcLYZfD185VNzYXl3/9kPLgdrXp6feeeHNn9m7qq6pctTEtYfXOZG9etFfH3fDb/4zBf\r
55         GG/yq/dKy0f+4L8v7/y62zwxsWmy+Ur9r5euiiT//uvAtsr+a4rx45efn4sf0wt8tnWZZ0vB\r
56         WsFdm+UT+p5/ELshrFZf/1WJpTgj0VCLuag4EQDQ7en5vgIAAA==\r
57 Cc: tomi.ollila@iki.fi\r
58 X-BeenThere: notmuch@notmuchmail.org\r
59 X-Mailman-Version: 2.1.13\r
60 Precedence: list\r
61 List-Id: "Use and development of the notmuch mail system."\r
62         <notmuch.notmuchmail.org>\r
63 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
64         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
65 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
66 List-Post: <mailto:notmuch@notmuchmail.org>\r
67 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
68 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
69         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
70 X-List-Received-Date: Fri, 16 Aug 2013 15:35:54 -0000\r
71 \r
72 This is v3 of id:1376587658-19202-1-git-send-email-amdragon@mit.edu.\r
73 This addresses Jani's comment in id:87k3jl3ehe.fsf@nikula.org by\r
74 treating errors while retrieving the original message's References\r
75 header as if the original message didn't have a References header.  It\r
76 also adds a comment suggested by Jani on IRC.  The diff from v2 is\r
77 below.\r
78 \r
79 diff --git a/notmuch-reply.c b/notmuch-reply.c\r
80 index bfd0f51..ac46d02 100644\r
81 --- a/notmuch-reply.c\r
82 +++ b/notmuch-reply.c\r
83 @@ -31,6 +31,7 @@ show_reply_headers (GMimeMessage *message)\r
84      stream_stdout = g_mime_stream_file_new (stdout);\r
85      if (stream_stdout) {\r
86         g_mime_stream_file_set_owner (GMIME_STREAM_FILE (stream_stdout), FALSE);\r
87 +       /* Output RFC 2822 formatted (and RFC 2047 encoded) headers. */\r
88         g_mime_object_write_to_stream (GMIME_OBJECT(message), stream_stdout);\r
89         g_object_unref(stream_stdout);\r
90      }\r
91 @@ -526,14 +527,15 @@ create_reply_message(void *ctx,\r
92                               "In-Reply-To", in_reply_to);\r
93  \r
94      orig_references = notmuch_message_get_header (message, "references");\r
95 -    if (orig_references) {\r
96 -       references = talloc_asprintf (ctx, "%s%s%s",\r
97 -                                     *orig_references ? orig_references : "",\r
98 -                                     *orig_references ? " " : "",\r
99 -                                     in_reply_to);\r
100 -       g_mime_object_set_header (GMIME_OBJECT (reply),\r
101 -                                 "References", references);\r
102 -    }\r
103 +    if (!orig_references)\r
104 +       /* Treat errors like missing References headers. */\r
105 +       orig_references = "";\r
106 +    references = talloc_asprintf (ctx, "%s%s%s",\r
107 +                                 *orig_references ? orig_references : "",\r
108 +                                 *orig_references ? " " : "",\r
109 +                                 in_reply_to);\r
110 +    g_mime_object_set_header (GMIME_OBJECT (reply),\r
111 +                             "References", references);\r
112  \r
113      return reply;\r
114  }\r
115 \r
116 \r