]> rtime.felk.cvut.cz Git - notmuch.git/blobdiff - emacs/notmuch-show.el
emacs: Fix indentation.
[notmuch.git] / emacs / notmuch-show.el
index df10d4bad93b3936c00461194774cef4214725c1..2ed221ae32ca90f1de2802e717122c2bdad8ec7a 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"
@@ -1264,46 +1275,46 @@ reset based on the original query."
 (fset 'notmuch-show-part-map notmuch-show-part-map)
 
 (defvar notmuch-show-mode-map
-      (let ((map (make-sparse-keymap)))
-       (set-keymap-parent map notmuch-common-keymap)
-       (define-key map "Z" 'notmuch-tree-from-show-current-query)
-       (define-key map (kbd "<C-tab>") 'widget-backward)
-       (define-key map (kbd "M-TAB") 'notmuch-show-previous-button)
-       (define-key map (kbd "<backtab>") 'notmuch-show-previous-button)
-       (define-key map (kbd "TAB") 'notmuch-show-next-button)
-       (define-key map "f" 'notmuch-show-forward-message)
-       (define-key map "r" 'notmuch-show-reply-sender)
-       (define-key map "R" 'notmuch-show-reply)
-       (define-key map "|" 'notmuch-show-pipe-message)
-       (define-key map "w" 'notmuch-show-save-attachments)
-       (define-key map "V" 'notmuch-show-view-raw-message)
-       (define-key map "c" 'notmuch-show-stash-map)
-       (define-key map "h" 'notmuch-show-toggle-visibility-headers)
-       (define-key map "*" 'notmuch-show-tag-all)
-       (define-key map "-" 'notmuch-show-remove-tag)
-       (define-key map "+" 'notmuch-show-add-tag)
-       (define-key map "X" 'notmuch-show-archive-thread-then-exit)
-       (define-key map "x" 'notmuch-show-archive-message-then-next-or-exit)
-       (define-key map "A" 'notmuch-show-archive-thread-then-next)
-       (define-key map "a" 'notmuch-show-archive-message-then-next-or-next-thread)
-       (define-key map "N" 'notmuch-show-next-message)
-       (define-key map "P" 'notmuch-show-previous-message)
-       (define-key map "n" 'notmuch-show-next-open-message)
-       (define-key map "p" 'notmuch-show-previous-open-message)
-       (define-key map (kbd "M-n") 'notmuch-show-next-thread-show)
-       (define-key map (kbd "M-p") 'notmuch-show-previous-thread-show)
-       (define-key map (kbd "DEL") 'notmuch-show-rewind)
-       (define-key map " " 'notmuch-show-advance-and-archive)
-       (define-key map (kbd "M-RET") 'notmuch-show-open-or-close-all)
-       (define-key map (kbd "RET") 'notmuch-show-toggle-message)
-       (define-key map "#" 'notmuch-show-print-message)
-       (define-key map "!" 'notmuch-show-toggle-elide-non-matching)
-       (define-key map "$" 'notmuch-show-toggle-process-crypto)
-       (define-key map "<" 'notmuch-show-toggle-thread-indentation)
-       (define-key map "t" 'toggle-truncate-lines)
-       (define-key map "." 'notmuch-show-part-map)
-       map)
-      "Keymap for \"notmuch show\" buffers.")
+  (let ((map (make-sparse-keymap)))
+    (set-keymap-parent map notmuch-common-keymap)
+    (define-key map "Z" 'notmuch-tree-from-show-current-query)
+    (define-key map (kbd "<C-tab>") 'widget-backward)
+    (define-key map (kbd "M-TAB") 'notmuch-show-previous-button)
+    (define-key map (kbd "<backtab>") 'notmuch-show-previous-button)
+    (define-key map (kbd "TAB") 'notmuch-show-next-button)
+    (define-key map "f" 'notmuch-show-forward-message)
+    (define-key map "r" 'notmuch-show-reply-sender)
+    (define-key map "R" 'notmuch-show-reply)
+    (define-key map "|" 'notmuch-show-pipe-message)
+    (define-key map "w" 'notmuch-show-save-attachments)
+    (define-key map "V" 'notmuch-show-view-raw-message)
+    (define-key map "c" 'notmuch-show-stash-map)
+    (define-key map "h" 'notmuch-show-toggle-visibility-headers)
+    (define-key map "*" 'notmuch-show-tag-all)
+    (define-key map "-" 'notmuch-show-remove-tag)
+    (define-key map "+" 'notmuch-show-add-tag)
+    (define-key map "X" 'notmuch-show-archive-thread-then-exit)
+    (define-key map "x" 'notmuch-show-archive-message-then-next-or-exit)
+    (define-key map "A" 'notmuch-show-archive-thread-then-next)
+    (define-key map "a" 'notmuch-show-archive-message-then-next-or-next-thread)
+    (define-key map "N" 'notmuch-show-next-message)
+    (define-key map "P" 'notmuch-show-previous-message)
+    (define-key map "n" 'notmuch-show-next-open-message)
+    (define-key map "p" 'notmuch-show-previous-open-message)
+    (define-key map (kbd "M-n") 'notmuch-show-next-thread-show)
+    (define-key map (kbd "M-p") 'notmuch-show-previous-thread-show)
+    (define-key map (kbd "DEL") 'notmuch-show-rewind)
+    (define-key map " " 'notmuch-show-advance-and-archive)
+    (define-key map (kbd "M-RET") 'notmuch-show-open-or-close-all)
+    (define-key map (kbd "RET") 'notmuch-show-toggle-message)
+    (define-key map "#" 'notmuch-show-print-message)
+    (define-key map "!" 'notmuch-show-toggle-elide-non-matching)
+    (define-key map "$" 'notmuch-show-toggle-process-crypto)
+    (define-key map "<" 'notmuch-show-toggle-thread-indentation)
+    (define-key map "t" 'toggle-truncate-lines)
+    (define-key map "." 'notmuch-show-part-map)
+    map)
+  "Keymap for \"notmuch show\" buffers.")
 (fset 'notmuch-show-mode-map notmuch-show-mode-map)
 
 (defun notmuch-show-mode ()
@@ -2055,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.