[PATCH 0/6] Use notmuch insert for fcc
[notmuch-archives.git] / a1 / 175ff3de38d04c80860d01fb21f96978c62d42
1 Return-Path: <m.walters@qmul.ac.uk>\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 1AA55431FD0\r
6         for <notmuch@notmuchmail.org>; Mon,  8 Dec 2014 09:17:53 -0800 (PST)\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
8 X-Spam-Flag: NO\r
9 X-Spam-Score: -1.098\r
10 X-Spam-Level: \r
11 X-Spam-Status: No, score=-1.098 tagged_above=-999 required=5\r
12         tests=[DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001,\r
13         NML_ADSP_CUSTOM_MED=1.2, RCVD_IN_DNSWL_MED=-2.3] autolearn=disabled\r
14 Received: from olra.theworths.org ([127.0.0.1])\r
15         by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
16         with ESMTP id abcPYVQ4cSuZ for <notmuch@notmuchmail.org>;\r
17         Mon,  8 Dec 2014 09:17:49 -0800 (PST)\r
18 Received: from mail2.qmul.ac.uk (mail2.qmul.ac.uk [138.37.6.6])\r
19         (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))\r
20         (No client certificate requested)\r
21         by olra.theworths.org (Postfix) with ESMTPS id 90C50431FC0\r
22         for <notmuch@notmuchmail.org>; Mon,  8 Dec 2014 09:17:49 -0800 (PST)\r
23 Received: from smtp.qmul.ac.uk ([138.37.6.40])\r
24         by mail2.qmul.ac.uk with esmtp (Exim 4.71)\r
25         (envelope-from <m.walters@qmul.ac.uk>)\r
26         id 1Xy1w5-0003dc-Hi; Mon, 08 Dec 2014 17:17:45 +0000\r
27 Received: from 5751dfa2.skybroadband.com ([87.81.223.162] helo=localhost)\r
28         by smtp.qmul.ac.uk with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.71)\r
29         (envelope-from <m.walters@qmul.ac.uk>)\r
30         id 1Xy1w5-0007yN-5g; Mon, 08 Dec 2014 17:17:25 +0000\r
31 From: Mark Walters <markwalters1009@gmail.com>\r
32 To: David Bremner <david@tethera.net>, notmuch@notmuchmail.org\r
33 Subject: Re: notmuch_query_add_tag_excluded and notmuch_query_search_threads\r
34 In-Reply-To: <87r3wbe4si.fsf@maritornes.cs.unb.ca>\r
35 References: <1417905319-astroid-0-i86er7iwg5-10728@strange>\r
36         <87388rfzhw.fsf@maritornes.cs.unb.ca>\r
37         <1417958519-astroid-0-ydniq6pte2-8575@strange>\r
38         <87wq63ef9s.fsf@maritornes.cs.unb.ca>\r
39         <1417962498-astroid-0-zqj7j2s0ov-9575@strange>\r
40         <87r3wbe4si.fsf@maritornes.cs.unb.ca>\r
41 User-Agent: Notmuch/0.18.1+86~gef5e66a (http://notmuchmail.org) Emacs/23.4.1\r
42         (i486-pc-linux-gnu)\r
43 Date: Mon, 08 Dec 2014 17:17:24 +0000\r
44 Message-ID: <87y4qi83iz.fsf@qmul.ac.uk>\r
45 MIME-Version: 1.0\r
46 Content-Type: text/plain; charset=us-ascii\r
47 X-Sender-Host-Address: 87.81.223.162\r
48 X-QM-Geographic: According to ripencc,\r
49         this message was delivered by a machine in Britain (UK) (GB).\r
50 X-QM-SPAM-Info: Sender has good ham record.  :)\r
51 X-QM-Body-MD5: ddb8490478411c8ab9c42674f3cd47b0 (of first 20000 bytes)\r
52 X-SpamAssassin-Score: -0.1\r
53 X-SpamAssassin-SpamBar: /\r
54 X-SpamAssassin-Report: The QM spam filters have analysed this message to\r
55         determine if it is\r
56         spam. We require at least 5.0 points to mark a message as spam.\r
57         This message scored -0.1 points.\r
58         Summary of the scoring: \r
59         * 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail\r
60         provider *      (markwalters1009[at]gmail.com)\r
61         * -0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay\r
62         *      domain\r
63         * -0.1 AWL AWL: From: address is in the auto white-list\r
64 X-QM-Scan-Virus: ClamAV says the message is clean\r
65 X-BeenThere: notmuch@notmuchmail.org\r
66 X-Mailman-Version: 2.1.13\r
67 Precedence: list\r
68 List-Id: "Use and development of the notmuch mail system."\r
69         <notmuch.notmuchmail.org>\r
70 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
71         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
72 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
73 List-Post: <mailto:notmuch@notmuchmail.org>\r
74 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
75 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
76         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
77 X-List-Received-Date: Mon, 08 Dec 2014 17:17:53 -0000\r
78 \r
79 \r
80 Hi\r
81 \r
82 >\r
83 > At the end of this message is a simpler example, that I think\r
84 > demonstrates a bug. At the very list it's not very nice that the\r
85 > destructiveness only shows up when excludes are involved.\r
86 >\r
87 > Here is the output; note the second exclude query!\r
88 \r
89 I think I know what is causing this and can (almost) give a fix.\r
90 \r
91 The problem is that _notmuch_exclude_tags in lib/query.cc is not\r
92 idempotent: it iterates through the list of excluded tag attached to\r
93 query and changes any which match a tag in the query to "". But this\r
94 gets confused if applied a second time as it sees an empty string rather\r
95 than Ktag (where "K" is the prefix for 'tag'). \r
96 \r
97 We could just check in _notmuch_exclude_tags whether the excluded item\r
98 is "" and if so, just skip it. (I am not sure what the right syntax for\r
99 this in the mix of C and C++ that happens in query.cc)\r
100 \r
101 Alternatively we could try and modify the list of excluded tags directly\r
102 when doing the iteration (ie link the previous tag to the next\r
103 tag). \r
104 \r
105 Since both of these do modify the actual query (as we do currently)\r
106 there is a possibility that a user could be surprised. I think the user\r
107 can't modify the actual query string so I don't think this actually\r
108 occurs.\r
109 \r
110 Any thoughts?\r
111 \r
112 Mark\r
113 \r
114 \r
115 \r
116  \r
117 \r