On Mon, 23 Nov 2009 14:07:20 +0100, Jed Brown <jed@59A2.org> wrote: > > Second, since we're in the search view which shows threads, we should > > really be operating on threads. But this tag command won't work like the > > '+' and '-' commands in this buffer. Those commands will add/remove a > > tag to/from every message in the thread[*]. The new '*' command, however > > will only be changing tags on messages that match the query. > > I'm not convinced that we want to operate on the entire thread. > Applying the tag only to the matched messages is enough to find the > thread, and it may really be desirable to only have it applied to > certain messages in the thread. For example, I might have constructed > an elaborate query to find five messages, including a couple that are > burried in 100-message threads in which case I would definitely not want > to tag entire threads. That's a legitimate point. But my point is that whatever behavior we choose here, I want the commands that operate on a single thread (+, -, a) to operate exactly the same as the command that operates on all threads (*). Having these behave subtly different, (as in the current patch) is going to lead to confusion on the part of the user. So, tagging only matching messages could make a lot of sense. If so, let's make the operations on single threads work the same. The race-condition issues apply to both operations, so I won't make the current patch block on resolving those. -Carl