diff --git a/.emacs.d/lisp/init-notmuch.el b/.emacs.d/lisp/init-notmuch.el index 8aa5910d..b7b11d52 100644 --- a/.emacs.d/lisp/init-notmuch.el +++ b/.emacs.d/lisp/init-notmuch.el @@ -117,9 +117,10 @@ (defvar ambrevar/known-mailing-list-archives '(("help-guix@gnu.org" . "guix-user") ("guix-devel@gnu.org" . "guix-devel") - ("guix-bugs" . "guix-bugs") - ("guix-patches" . "guix-patches")) - "Alist of mail adresses and their Yhetil name.") + ("debbugs.gnu.org" . "guix-bugs")) + "Alist of mail adresses and their Yhetil name. +Alternatively the key may just be a host name against which a +recipient will be matched.") (defun ambrevar/guess-yhetil-link (message-id) (let* ((all-addresses @@ -134,13 +135,30 @@ (mailing-list (cdr (seq-find (lambda (pair) - (member (car pair) all-addresses)) + (let ((address-or-host (car pair))) + (if (string-match "@" address-or-host) + (member address-or-host all-addresses) + (seq-find (lambda (address) + (string-match address-or-host address)) + all-addresses)))) ambrevar/known-mailing-list-archives)))) (when mailing-list (concat "https://yhetil.org/" mailing-list "/" message-id)))) +(defun ambrevar/guess-yhetil-link-prefer-patches (message-id) + (let ((ambrevar/known-mailing-list-archives + (copy-alist + ambrevar/known-mailing-list-archives))) + (push '("debbugs.gnu.org" . "guix-patches") + ambrevar/known-mailing-list-archives) + (ambrevar/guess-yhetil-link message-id))) + (add-to-list 'notmuch-show-stash-mlarchive-link-alist (cons "Yhetil" #'ambrevar/guess-yhetil-link)) +(add-to-list 'notmuch-show-stash-mlarchive-link-alist + (cons "Yhetil/patches" #'ambrevar/guess-yhetil-link-prefer-patches)) + +(setq notmuch-show-stash-mlarchive-link-default "Yhetil") (provide 'init-notmuch)