]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/notmuch-show.el
build: add dataclean
[notmuch] / emacs / notmuch-show.el
index 019f51d71a678ece8a83b0adc39a295173f9983e..10fc872141dc03f6e4bac4a87a20130e9bb7925f 100644 (file)
@@ -180,10 +180,21 @@ each attachment handler is logged in buffers with names beginning
     )
   "List of Mailing List Archives to use when stashing links.
 
-These URIs are concatenated with the current message's
-Message-Id in `notmuch-show-stash-mlarchive-link'."
+This list is used for generating a Mailing List Archive reference
+URI with the current message's Message-Id in
+`notmuch-show-stash-mlarchive-link'.
+
+If the cdr of the alist element is not a function, the cdr is
+expected to contain a URI that is concatenated with the current
+message's Message-Id to create a ML archive reference URI.
+
+If the cdr is a function, the function is called with the
+Message-Id as the argument, and the function is expected to
+return the ML archive reference URI."
   :type '(alist :key-type (string :tag "Name")
-               :value-type (string :tag "URL"))
+               :value-type (choice
+                            (string :tag "URL")
+                            (function :tag "Function returning the URL")))
   :group 'notmuch-show)
 
 (defcustom notmuch-show-stash-mlarchive-link-default "Gmane"
@@ -344,7 +355,7 @@ operation on the contents of the current buffer."
     (if (re-search-forward "(\\([^()]*\\))$" (line-end-position) t)
        (let ((inhibit-read-only t))
          (replace-match (concat "("
-                                (notmuch-tag-format-tags tags)
+                                (notmuch-tag-format-tags tags (notmuch-show-get-prop :orig-tags))
                                 ")"))))))
 
 (defun notmuch-clean-address (address)
@@ -423,7 +434,7 @@ message at DEPTH in the current thread."
            " ("
            date
            ") ("
-           (notmuch-tag-format-tags tags)
+           (notmuch-tag-format-tags tags tags)
            ")\n")
     (overlay-put (make-overlay start (point)) 'face 'notmuch-message-summary-face)))
 
@@ -785,7 +796,10 @@ message at DEPTH in the current thread."
     (while (and handlers
                (not (condition-case err
                         (funcall (car handlers) msg part content-type nth depth button)
-                      (error (progn
+                      ;; Specifying `debug' here lets the debugger
+                      ;; run if `debug-on-error' is non-nil.
+                      ((debug error)
+                       (progn
                                (insert "!!! Bodypart insert error: ")
                                (insert (error-message-string err))
                                (insert " !!!\n") nil)))))
@@ -1168,6 +1182,8 @@ function is used."
 
       (jit-lock-register #'notmuch-show-buttonise-links)
 
+      (notmuch-show-mapc (lambda () (notmuch-show-set-prop :orig-tags (notmuch-show-get-tags))))
+
       ;; Set the header line to the subject of the first message.
       (setq header-line-format (notmuch-sanitize (notmuch-show-strip-re (notmuch-show-get-subject))))
 
@@ -2050,16 +2066,19 @@ This presumes that the message is available at the selected Mailing List Archive
 If optional argument MLA is non-nil, use the provided key instead of prompting
 the user (see `notmuch-show-stash-mlarchive-link-alist')."
   (interactive)
-  (notmuch-common-do-stash
-   (concat (cdr (assoc
-                (or mla
-                    (let ((completion-ignore-case t))
-                      (completing-read
-                       "Mailing List Archive: "
-                       notmuch-show-stash-mlarchive-link-alist
-                       nil t nil nil notmuch-show-stash-mlarchive-link-default)))
-                notmuch-show-stash-mlarchive-link-alist))
-          (notmuch-show-get-message-id t))))
+  (let ((url (cdr (assoc
+                  (or mla
+                      (let ((completion-ignore-case t))
+                        (completing-read
+                         "Mailing List Archive: "
+                         notmuch-show-stash-mlarchive-link-alist
+                         nil t nil nil
+                         notmuch-show-stash-mlarchive-link-default)))
+                  notmuch-show-stash-mlarchive-link-alist))))
+    (notmuch-common-do-stash
+     (if (functionp url)
+        (funcall url (notmuch-show-get-message-id t))
+       (concat url (notmuch-show-get-message-id t))))))
 
 (defun notmuch-show-stash-mlarchive-link-and-go (&optional mla)
   "Copy an ML Archive URI for the current message to the kill-ring and visit it.