1 Return-Path: <pieter@praet.org>
\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 3C7F3431FD0
\r
6 for <notmuch@notmuchmail.org>; Mon, 4 Jul 2011 11:48:19 -0700 (PDT)
\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
\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 aEG3V+3-BWz3 for <notmuch@notmuchmail.org>;
\r
16 Mon, 4 Jul 2011 11:48:18 -0700 (PDT)
\r
17 Received: from mail-ww0-f41.google.com (mail-ww0-f41.google.com
\r
18 [74.125.82.41]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client
\r
19 certificate requested) by olra.theworths.org (Postfix) with ESMTPS id
\r
20 37149431FB6 for <notmuch@notmuchmail.org>; Mon, 4 Jul 2011 11:48:18 -0700
\r
22 Received: by wwi14 with SMTP id 14so1680613wwi.2
\r
23 for <notmuch@notmuchmail.org>; Mon, 04 Jul 2011 11:48:16 -0700 (PDT)
\r
24 Received: by 10.227.20.84 with SMTP id e20mr5486617wbb.28.1309805296543;
\r
25 Mon, 04 Jul 2011 11:48:16 -0700 (PDT)
\r
26 Received: from localhost ([109.131.160.67])
\r
27 by mx.google.com with ESMTPS id fi5sm4693598wbb.56.2011.07.04.11.48.14
\r
28 (version=TLSv1/SSLv3 cipher=OTHER);
\r
29 Mon, 04 Jul 2011 11:48:15 -0700 (PDT)
\r
30 From: Pieter Praet <pieter@praet.org>
\r
31 To: Austin Clements <amdragon@MIT.EDU>
\r
32 Subject: Re: [PROTO] possible solution for "Race condition for '*' command"
\r
33 In-Reply-To: <e8c5fbf4-4dfa-461a-8f5c-6c696291a270@email.android.com>
\r
34 References: <20110703171743.GL15901@mit.edu>
\r
35 <1309762318-4530-1-git-send-email-pieter@praet.org>
\r
36 <e8c5fbf4-4dfa-461a-8f5c-6c696291a270@email.android.com>
\r
37 User-Agent: Notmuch/0.5-329-g1bb6068 (http://notmuchmail.org) Emacs/23.1.50.1
\r
38 (x86_64-pc-linux-gnu)
\r
39 Date: Mon, 04 Jul 2011 20:48:12 +0200
\r
40 Message-ID: <87sjqldgr7.fsf@praet.org>
\r
42 Content-Type: text/plain; charset=us-ascii
\r
43 Cc: Notmuch Mail <notmuch@notmuchmail.org>
\r
44 X-BeenThere: notmuch@notmuchmail.org
\r
45 X-Mailman-Version: 2.1.13
\r
47 List-Id: "Use and development of the notmuch mail system."
\r
48 <notmuch.notmuchmail.org>
\r
49 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
\r
50 <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
\r
51 List-Archive: <http://notmuchmail.org/pipermail/notmuch>
\r
52 List-Post: <mailto:notmuch@notmuchmail.org>
\r
53 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
\r
54 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
\r
55 <mailto:notmuch-request@notmuchmail.org?subject=subscribe>
\r
56 X-List-Received-Date: Mon, 04 Jul 2011 18:48:19 -0000
\r
58 On Mon, 04 Jul 2011 13:56:26 -0400, Austin Clements <amdragon@MIT.EDU> wrote:
\r
59 Non-text part: multipart/alternative
\r
61 > Ah, this is subtler than I thought. You're right that, for the '*'
\r
62 > command, you want only the matched ID's. Tagging a region, however,
\r
63 > operates on entire threads. I think it's important to retain this
\r
64 > behavior because threads are what the user sees and selects in the
\r
65 > search buffer (*, on the other hand, doesn't have a strong visual
\r
70 > (This also means * is not, in fact, equivalent to expanding the region
\r
71 > the the entire buffer and then tagging the region.)
\r
73 In fact it *is* but we'd be fetching the `matched-msgids' property
\r
74 rather than the `thread-id' property, for each line in region.
\r
76 > I should probably emit two lists per thread: one of matched IDs and
\r
77 > one of unmatched IDs. Tagging a region can then operate on the
\r
78 > concatenation of these, while * can operate only on the matched
\r
79 > lists. This should be easy to do. I'll send an updated patch when I'm
\r
80 > back at a computer.
\r
82 The matched MsgIds will be sufficient, as we'll want to operate on
\r
83 either the matched messages or the entire thread (for which the
\r
84 `thread-id' property is already present).
\r
86 Can't think of a use case for non-matched messages right now,
\r
87 but if required, we'll just use `set-exclusive-or'.
\r
90 > Sent from my Android. Please excuse my brevity.
\r
92 Tip: K-9 Mail [1], apart from being much better than the stock email client,
\r
93 supports bottom-posting :)
\r
95 > Pieter Praet <pieter@praet.org> wrote:
\r
99 > Unfortunately, your patch causes *all* Message-Id's in the thread to be
\r
100 > appended, as opposed to only the ones matching the query:
\r
103 > $ notmuch search tag:inbox AND from:amdragon@mit.edu
\r
104 > thread:0000000000002777 Yest. 19:17 [1/3] Austin Clements| Pieter Praet;
\r
105 > [PATCH 2/2] [RFC] possible solution for "Race condition for '*' command"
\r
106 > (inbox replied sent to-me x/notmuch)
\r
107 > id:"CAH-f9WticM4EN8F1_ik_-mcBcBtrXwSpO+Drbtp7=UN7McECrg@mail.gmail.com"
\r
108 > or id:"87zkkwydag.fsf@praet.org" or id:"20110703171743.GL15901@mit.edu"
\r
111 > As you can see, according to matched/total ("[1/3]") only a single
\r
112 > message matches the query, yet all 3 MsgId's are returned.
\r
114 > If this were to be corrected (probably a trivial change, but I'm pretty
\r
115 > much oblivious as to the what and where of it), the following patch
\r
116 > series should work as intended.
\r
118 > The "--stdin" option works as expected (and ARG_MAX is indeed a very
\r
119 > valid concern with this particular use case), but I haven't yet gotten
\r
120 > around to making use of it from the Emacs UI as this would require some
\r
121 > screwing around with `notmuch-tag' and `notmuch-call-notmuch-process',
\r
122 > and it's still pretty early I-).
\r
129 Non-text part: text/html
\r
137 [1] http://code.google.com/p/k9mail/
\r