1 Return-Path: <flo@chaoflow.net>
\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 7933A429E38
\r
6 for <notmuch@notmuchmail.org>; Tue, 26 Apr 2011 14:31:13 -0700 (PDT)
\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
\r
11 X-Spam-Status: No, score=0.01 tagged_above=-999 required=5
\r
12 tests=[T_MIME_NO_TEXT=0.01] 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 3tJQnwoEPE4O for <notmuch@notmuchmail.org>;
\r
16 Tue, 26 Apr 2011 14:31:12 -0700 (PDT)
\r
17 Received: from tesla.chaoflow.net (tesla.chaoflow.net [188.40.54.22])
\r
18 (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits))
\r
19 (No client certificate requested)
\r
20 by olra.theworths.org (Postfix) with ESMTPS id A581F431FD0
\r
21 for <notmuch@notmuchmail.org>; Tue, 26 Apr 2011 14:31:12 -0700 (PDT)
\r
22 Received: from eve.chaoflow.net (pD9F60B67.dip.t-dialin.net [217.246.11.103])
\r
23 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
\r
24 (No client certificate requested)
\r
25 (Authenticated sender: flo@chaoflow.net)
\r
26 by tesla.chaoflow.net (Postfix) with ESMTPSA id E851AC768;
\r
27 Tue, 26 Apr 2011 23:31:09 +0200 (CEST)
\r
28 Received: by eve.chaoflow.net (Postfix, from userid 1000) id 96E18922;
\r
29 Tue, 26 Apr 2011 21:31:09 +0000 (Local time zone must be set--see zic
\r
31 From: Florian Friesdorf <flo@chaoflow.net>
\r
32 To: Pieter Praet <pieter@praet.org>, notmuch@notmuchmail.org
\r
33 Subject: Re: Optimization for notmuch tag by implicit filters
\r
35 <87mxjqgxmx.fsf@A7GMS.i-did-not-set--mail-host-address--so-tickle-me>
\r
36 References: <87y63d6y25.fsf@eve.chaoflow.net>
\r
37 <87mxjqgxmx.fsf@A7GMS.i-did-not-set--mail-host-address--so-tickle-me>
\r
38 User-Agent: Notmuch/0.5 (http://notmuchmail.org) Emacs/23.3.1
\r
39 (x86_64-unknown-linux-gnu)
\r
40 Date: Tue, 26 Apr 2011 23:31:09 +0200
\r
41 Message-ID: <87k4egu2ci.fsf@eve.chaoflow.net>
\r
43 Content-Type: multipart/signed; boundary="=-=-=";
\r
44 micalg=pgp-sha1; protocol="application/pgp-signature"
\r
45 X-Virus-Scanned: clamav-milter 0.96.5 at tesla
\r
46 X-Virus-Status: Clean
\r
47 X-BeenThere: notmuch@notmuchmail.org
\r
48 X-Mailman-Version: 2.1.13
\r
50 List-Id: "Use and development of the notmuch mail system."
\r
51 <notmuch.notmuchmail.org>
\r
52 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
\r
53 <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
\r
54 List-Archive: <http://notmuchmail.org/pipermail/notmuch>
\r
55 List-Post: <mailto:notmuch@notmuchmail.org>
\r
56 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
\r
57 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
\r
58 <mailto:notmuch-request@notmuchmail.org?subject=subscribe>
\r
59 X-List-Received-Date: Tue, 26 Apr 2011 21:31:13 -0000
\r
62 Content-Transfer-Encoding: quoted-printable
\r
64 On Sat, 16 Apr 2011 14:59:34 +0200, Pieter Praet <pieter@praet.org> wrote:
\r
65 > On Thu, 14 Apr 2011 10:23:46 +0200, Florian Friesdorf <flo@chaoflow.net> =
\r
68 > > With 60k messages and 12k tagged as sent:
\r
70 > > $ time notmuch tag +sent -- from:flo@chaoflow.net
\r
76 > > $ time notmuch tag +sent -- from:flo@chaoflow.net and not tag:sent
\r
83 > > This could be made implicit:
\r
85 > > notmuch tag +A +B -- <filter>
\r
87 > > notmuch tag +A +B -- <filter> and not \(tag:A and tag:B\)
\r
89 > > Apply command, if one of the tags is not set.
\r
92 > > notmuch tag -C -D -- <filter>
\r
94 > > notmuch tag -C -D -- <filter> and \(tag:C or tag:D\)
\r
96 > > Apply command, if one of the tags is set.
\r
99 > > notmuch tag +A +B -C -D -- <filter>
\r
101 > > notmuch tag +A +B -C -D -- <filter> and \(not tag:A or not tag:B\ or ta=
\r
104 The second '\' after 'B' is not supposed to be there.
\r
106 > > In order to enforce tagging and disable the filter there could be a
\r
109 > > I lack the knowledge/time to implement it, but I think it's at least
\r
110 > > worth documenting it.
\r
112 > Most of us already do this explicitly in our tagging scripts, so no harm
\r
113 > in making it standard behaviour, I guess.
\r
115 > Though to keep the implementation nice & clean, I'd advise against the
\r
116 > use of parens: no need for escape chars, no messing with De Morgan's
\r
117 > law, simply map the tag operations to their inverse in conjunctively
\r
120 > notmuch tag +A +B -- <filter> and not tag:A or not tag:B
\r
121 > notmuch tag -C -D -- <filter> and tag:C or tag:D
\r
122 > notmuch tag +A +B -C -D -- <filter> and not tag:A or not tag:B or tag:C o=
\r
125 I am not sure whether I understand what you mean.
\r
127 The parens are already supported by notmuch and also needed. Your second
\r
128 line for example would remove C and D, if D is set, independently of
\r
129 <filter>. Without parens, based on `and` taking precedence over `or`:
\r
131 F and (C or D) =3D F and C or F and D.
\r
134 Florian Friesdorf <flo@chaoflow.net>
\r
135 GPG FPR: 7A13 5EEE 1421 9FC2 108D BAAF 38F8 99A3 0C45 F083
\r
136 Jabber/XMPP: flo@chaoflow.net
\r
137 IRC: chaoflow on freenode,ircnet,blafasel,OFTC
\r
140 Content-Type: application/pgp-signature
\r
142 -----BEGIN PGP SIGNATURE-----
\r
143 Version: GnuPG v2.0.17 (GNU/Linux)
\r
145 iQIcBAEBAgAGBQJNtzmdAAoJEDj4maMMRfCDUOEP/3re24TR1HOg/WtYWzaT4a0U
\r
146 SeV0FbkzXSmAumQ7bxoLi1XGLOhRYyrqArDycnaFEnuQA3FA1ymTZDzTXgneEXb3
\r
147 2fdY7hYIp09E2LOAWjw5XiySW3/0Ar5N0lLbX41MUDXZym6zB5CH0O6ne714XjFB
\r
148 FSzS4OteTNawf4Wz68kNR59NyBHHoRBm5hlG6e/zgsQF3H3Jzs4K1mCSDMcQOD0Y
\r
149 Zv8Okal85Z1xW+zrVF6TnSMJ9BRo17zPFpwHc7YpQxWe/XG+i0FwrVQKrG/H+rNI
\r
150 z+cH5AHJw3W9PuOeIvxtM0D4T7YDjxK4Lj/yvPdTrH5HEW3eamIetiP5F9AcGzKv
\r
151 +G4UwpeRD4KuAHVSrkdpamnRXghH8GTnMf04afplmU3NTusfxMuARIJEnlmxJWz1
\r
152 MqNIAgw6kL0m4hSl/eF7uES3a9XcUW+sylI0oUeXoRksMrNep76Gr3JJmMKrcHxY
\r
153 xTav3oRZ6aJVAAjo70E7glpgonQIPdx2+2b44TWGr6a/xVJ+/JnO8GaD9hoaHZmS
\r
154 nlRwwzH2Au/et1jnI0onOyE20yI4RuXV1aIp0RCU+Cqxc0AHZgm5+z62dRfjU2Zo
\r
155 fM9bZo2x5Pk/MBYKu2r9Xi6mHwhQdMk5pU527EA29+bRTY5whvH5JqHhXRfJK5BN
\r
156 XqU12HZSIvE1v7w98Fwn
\r
158 -----END PGP SIGNATURE-----
\r