mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 04:18:08 +01:00
emacs: allow functions in notmuch-show-stash-mlarchive-link-alist
Some archives may use a more complicated scheme for referring to messages than just concatenated url and message-id. In particular, patchwork requires a query to translate message-id to a patchwork patch id. Allow functions in notmuch-show-stash-mlarchive-link-alist to facilitate this. For example, one could use something like this for patchwork. (lambda (message-id) (concat "http://patchwork.example.com/patch/" (nth 0 (split-string (car (last (process-lines "pwclient" "search" "-n" "1" "-m" (concat "<" message-id ">"))))))))
This commit is contained in:
parent
21cb851a22
commit
ecef282a16
1 changed files with 27 additions and 13 deletions
|
@ -180,10 +180,21 @@ each attachment handler is logged in buffers with names beginning
|
||||||
)
|
)
|
||||||
"List of Mailing List Archives to use when stashing links.
|
"List of Mailing List Archives to use when stashing links.
|
||||||
|
|
||||||
These URIs are concatenated with the current message's
|
This list is used for generating a Mailing List Archive reference
|
||||||
Message-Id in `notmuch-show-stash-mlarchive-link'."
|
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")
|
: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)
|
:group 'notmuch-show)
|
||||||
|
|
||||||
(defcustom notmuch-show-stash-mlarchive-link-default "Gmane"
|
(defcustom notmuch-show-stash-mlarchive-link-default "Gmane"
|
||||||
|
@ -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
|
If optional argument MLA is non-nil, use the provided key instead of prompting
|
||||||
the user (see `notmuch-show-stash-mlarchive-link-alist')."
|
the user (see `notmuch-show-stash-mlarchive-link-alist')."
|
||||||
(interactive)
|
(interactive)
|
||||||
(notmuch-common-do-stash
|
(let ((url (cdr (assoc
|
||||||
(concat (cdr (assoc
|
|
||||||
(or mla
|
(or mla
|
||||||
(let ((completion-ignore-case t))
|
(let ((completion-ignore-case t))
|
||||||
(completing-read
|
(completing-read
|
||||||
"Mailing List Archive: "
|
"Mailing List Archive: "
|
||||||
notmuch-show-stash-mlarchive-link-alist
|
notmuch-show-stash-mlarchive-link-alist
|
||||||
nil t nil nil notmuch-show-stash-mlarchive-link-default)))
|
nil t nil nil
|
||||||
notmuch-show-stash-mlarchive-link-alist))
|
notmuch-show-stash-mlarchive-link-default)))
|
||||||
(notmuch-show-get-message-id t))))
|
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)
|
(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.
|
"Copy an ML Archive URI for the current message to the kill-ring and visit it.
|
||||||
|
|
Loading…
Reference in a new issue