On Wed, 15 Feb 2012 09:46:56 -0800, Jameson Graef Rollins <jrollins at finestructure.net> wrote: > On Wed, 15 Feb 2012 09:03:28 +0000, Mark Walters <markwalters1009 at > gmail.com> wrote: > > The current implementation of exclude-tags does not use excludes in > > notmuch-show.c (and thus not in notmuch-show.el). Thus when selecting > > a thread in the search view claiming one matched message you may get > > several matches in show all but one of which are tagged excluded. > > Hey, Mark. Thanks so much for working on this. This is a very nice > extension to Austin's work. > > > This set moves in a different direction. It returns all the results > > but marks excluded messages with a new flag > > (NOTMUCH_MESSAGE_FLAG_EXCLUDED) and lets the consumer decide what to > > do with them. For example it could start with the message closed in > > emacs show view, it could colour the headerline differently etc. > > I missed some of the previous discussion on this, but rather than add a > new flag, why not just use the existing "match" flag? If the message is > excluded, just mark "match" as "false". I think this is basically all > we really want. If the message is "excluded" include it in returned > threads, but just don't display it. This is in fact exactly what the > "match" flag is currently for, and I can't see any reason not to use it > here. We don't need to add anything new to the show output, and I > believe it will simplify this patch set considerably.
I think the difficulty is that there are lots of annoying corner cases, but if there is a simpler solution that would be great! Anyway I will mention a couple of corner cases I can remember with any thoughts I have on alternative solutions. 1) What should notmuch show id:deleted-message-id do? It could return the thread containing the deleted message. If it does return a thread what subject does it assign it? Possibly it could return no messages and the caller would have to call it again with --no-exclude. 2) Should notmuch search return threads which match but only in excluded messages? If yes then does it sort it based on match or match-not-excluded? If the latter what happens to threads with no match-not-excluded messages? If not then does searching for id:deleted-message return no results? The caller could try with --no-exclude, but then the caller would end up returning the deleted message for search id:deleted-message but not for search id:deleted-message or id:some-other-not-deleted-message. Anyway with answers to the 2 main questions I can try thinking about simpler possibilities. Best wishes Mark