On Sat, 16 Apr 2011 14:59:34 +0200, Pieter Praet <pieter at praet.org> wrote: > On Thu, 14 Apr 2011 10:23:46 +0200, Florian Friesdorf <flo at chaoflow.net> > wrote: > > > > With 60k messages and 12k tagged as sent: > > > > $ time notmuch tag +sent -- from:flo at chaoflow.net > > > > real 0m8.561s > > user 0m8.069s > > sys 0m0.212s > > > > $ time notmuch tag +sent -- from:flo at chaoflow.net and not tag:sent > > > > real 0m0.043s > > user 0m0.036s > > sys 0m0.006s > > > > > > This could be made implicit: > > > > notmuch tag +A +B -- <filter> > > --> > > notmuch tag +A +B -- <filter> and not \(tag:A and tag:B\) > > > > Apply command, if one of the tags is not set. > > > > > > notmuch tag -C -D -- <filter> > > --> > > notmuch tag -C -D -- <filter> and \(tag:C or tag:D\) > > > > Apply command, if one of the tags is set. > > > > > > notmuch tag +A +B -C -D -- <filter> > > --> > > notmuch tag +A +B -C -D -- <filter> and \(not tag:A or not tag:B\ or tag:C > > or tag:D\)
The second '\' after 'B' is not supposed to be there. > > In order to enforce tagging and disable the filter there could be a > > flag. > > > > I lack the knowledge/time to implement it, but I think it's at least > > worth documenting it. > > Most of us already do this explicitly in our tagging scripts, so no harm > in making it standard behaviour, I guess. > > Though to keep the implementation nice & clean, I'd advise against the > use of parens: no need for escape chars, no messing with De Morgan's > law, simply map the tag operations to their inverse in conjunctively > joined filters: > > notmuch tag +A +B -- <filter> and not tag:A or not tag:B > notmuch tag -C -D -- <filter> and tag:C or tag:D > notmuch tag +A +B -C -D -- <filter> and not tag:A or not tag:B or tag:C or > tag:D I am not sure whether I understand what you mean. The parens are already supported by notmuch and also needed. Your second line for example would remove C and D, if D is set, independently of <filter>. Without parens, based on `and` taking precedence over `or`: F and (C or D) = F and C or F and D. -- Florian Friesdorf <flo at chaoflow.net> GPG FPR: 7A13 5EEE 1421 9FC2 108D BAAF 38F8 99A3 0C45 F083 Jabber/XMPP: flo at chaoflow.net IRC: chaoflow on freenode,ircnet,blafasel,OFTC -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 835 bytes Desc: not available URL: <http://notmuchmail.org/pipermail/notmuch/attachments/20110426/a03f3695/attachment.pgp>