From bc989209171d406b3671024542e59b86b0ecb23d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rudolf=20Adamkovi=C4=8D?= Date: Wed, 13 Dec 2023 22:39:02 +0100 Subject: [PATCH] emacs: Fix saved-search buffer titles REPRODUCTION STEPS: (let ((notmuch-saved-searches (list (list :name "Emacs List" :query "query:lists-emacs") (list :name "All Lists" :query "query:lists")))) (notmuch-search-buffer-title "query:lists-emacs" )) ACTUAL: "*notmuch-saved-search-[ All Lists ]-emacs*" EXPECTED: "*notmuch-saved-search-Emacs List*" --- emacs/notmuch.el | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 2a73ffa5..f55e9b42 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -973,17 +973,20 @@ unthreaded) and whether it's SAVED (t or nil)." (defun notmuch-search-buffer-title (query &optional type) "Returns the title for a buffer with notmuch search results." (let* ((saved-search - (let (longest - (longest-length 0)) - (cl-loop for tuple in notmuch-saved-searches - if (let ((quoted-query - (regexp-quote - (notmuch-saved-search-get tuple :query)))) - (and (string-match (concat "^" quoted-query) query) - (> (length (match-string 0 query)) - longest-length))) - do (setq longest tuple)) - longest)) + (cl-loop with match + with match-length = 0 + for candidate in notmuch-saved-searches + for length = (let* ((query* (notmuch-saved-search-get + candidate + :query)) + (regexp (concat "^" + (regexp-quote query*)))) + (and (string-match regexp query) + (length (match-string 0 query)))) + if (and length (> length match-length)) + do (setq match candidate + match-length length) + finally return match)) (saved-search-name (notmuch-saved-search-get saved-search :name)) (saved-search-type (notmuch-saved-search-get saved-search :search-type)) (saved-search-query (notmuch-saved-search-get saved-search :query)))