Hi David! On Do, 03 Nov 2011, David Champion wrote:
> * On 03 Nov 2011, Cameron Simpson wrote: > > On 03Nov2011 10:05, Edward Morbius <dredmorb...@gmail.com> wrote: > > | Is there any facility similar to Gmail's named tags (other than > > | folders) for mutt? > > | > > | I'd like to be able to add (multiple) labels to a given message, > > | possible automatically (procmail, some imap tool, mutt folder hooks), > > | have mutt be aware of defined labels, and be able to quickly filter > > | messages by labels (including and/or/not Boolean logic). > > > > The X-Label: header is the usual convention for this in mutt-land. > > ... [good information elided] ... > > I wrote the X-Label code for mutt 11 years ago but recently have been > wishing for more capability and better integration with other keywording > standards and conventions. (X-Label was invented just for mutt because > there were no plausible conventions or standards yet.) > > If you use X-labels heavily and are comfortable building > mutt from source I encourage you to take a look at > https://bitbucket.org/dgc/mutt-dgc/qseries and apply at least up to the > complete-pattern-y patch. This is the direction that I'd like mutt > mainline to go in the future but I'm not comfortable pushing it until > it's had more field testing. (That said, I've been using it since > April without concern.) > > Here's the full mercurial commit log for these patches. The xlabel_ext > patch is actually quite old, but the others are new this year. > > --------------------------------------------------------------------------- > patch: hashwalk > > Add reentrant hash_walk() function for iterating down a hash table. > --------------------------------------------------------------------------- > patch: dgc.xlabel_ext > > Adds capability to edit x-labels inside mutt, and to sort by label. > --------------------------------------------------------------------------- > patch: xlabel_complete > > Adds label completion. > > A global label hash is added, to which labels are added as they're parsed > from a mailbox file or edited manually by the user. Reference counts are > kept in the hash table so that unused labels are removed from available > completions. Completion is available in the label editor only, but it may > be feasible to add for search expressions if the preceding text ends with > '~y'. > --------------------------------------------------------------------------- > patch: keywords > > Unify label/keyword handling. > > Since x-labels were added to mutt in 2000, a number of other approaches to > what we now call 'tagging' have also emerged. One of them was even made > standard in RFC 2822. This update unifies the handling of all these > strategies. > > We start by changing mutt's internal keyword storage from a single string > which may contain whitespace to a list of discrete keywords. This has > advantages for keyword completion as well as for portabilty among varying > "standards" for keyword storage. This may represent a significant change > for existing mutt users who have set x-labels containing spaces, and should > be regarded with suspicion. The advantages are significant, though. > > Next we allow mutt to parse keywords into this internal list from any of the > following headers: X-Label (freeform), X-Keywords (space-delimited), X > -Mozilla-Keys (space-delimited), and Keywords (RFC 2822, comma-space- > delimited). Mutt remembers which headers it sourced keywords from, and will > rewrite those headers when saving messages for compatibility with the mailer > of origin. > > (X-Label was specified as freeform text by mutt, its only known > implementation. X-Labels have been used both as a 'tagging' device, > probably with space delimiting, and as a 'memo' field, where space-delimited > parsing would ruin the semantics of the memo. By default mutt will not > split X-Labels at all. Set $xlabel_delimiter if your needs vary.) > > Finally we add the save_keywords boolean, which defaults to FALSE. When > true, this boolean causes mutt to always save all keywords to the Keywords: > header in addition to whatever origin headers were retained for > compatibility. > > Overall this represents convergence path for all competing > labelling/tagging/kewording systems toward one that is specified by RFC. > --------------------------------------------------------------------------- > patch: complete-pattern-y > > Permit tab completion of pattern expressions with ~y (labels). > --------------------------------------------------------------------------- Wow, this really looks interesting. Thanks for sharing. Hope something like this makes it into mutt soon. regards, Christian