mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 09:24:54 +01:00
emacs: Access raw messages via cat subcommand
This patch modifies the following commands to access the messages via cat subcommand: - view/save attachments ('v', 'w'), - view a raw message ('V') and - pipe a message to a command ('|'). With this patch, it is straightforward to use notmuch emacs interface with a remote database accessed over SSH. To do this, it is sufficient to redefine notmuch-command variable to contain the name of a script containing: ssh user@host notmuch "$@" If the ssh client has enabled connection sharing (ControlMaster option in OpenSSH), the emacs interface is almost as responsive as when notmuch is invoked locally.
This commit is contained in:
parent
d39d0e55f0
commit
fe9e163f19
1 changed files with 9 additions and 5 deletions
|
@ -85,10 +85,10 @@ any given message."
|
|||
(defmacro with-current-notmuch-show-message (&rest body)
|
||||
"Evaluate body with current buffer set to the text of current message"
|
||||
`(save-excursion
|
||||
(let ((filename (notmuch-show-get-filename)))
|
||||
(let ((buf (generate-new-buffer (concat "*notmuch-msg-" filename "*"))))
|
||||
(let ((id (notmuch-show-get-message-id)))
|
||||
(let ((buf (generate-new-buffer (concat "*notmuch-msg-" id "*"))))
|
||||
(with-current-buffer buf
|
||||
(insert-file-contents filename nil nil nil t)
|
||||
(call-process notmuch-command nil t nil "cat" id)
|
||||
,@body)
|
||||
(kill-buffer buf)))))
|
||||
|
||||
|
@ -917,7 +917,11 @@ any effects from previous calls to
|
|||
(defun notmuch-show-view-raw-message ()
|
||||
"View the file holding the current message."
|
||||
(interactive)
|
||||
(view-file (notmuch-show-get-filename)))
|
||||
(let ((id (notmuch-show-get-message-id)))
|
||||
(let ((buf (get-buffer-create (concat "*notmuch-raw-" id "*"))))
|
||||
(switch-to-buffer buf)
|
||||
(save-excursion
|
||||
(call-process notmuch-command nil t nil "cat" id)))))
|
||||
|
||||
(defun notmuch-show-pipe-message (entire-thread command)
|
||||
"Pipe the contents of the current message (or thread) to the given command.
|
||||
|
@ -938,7 +942,7 @@ than only the current message."
|
|||
(mapconcat 'identity (notmuch-show-get-message-ids-for-open-messages) " OR "))
|
||||
" | " command))
|
||||
(setq shell-command
|
||||
(concat command " < " (shell-quote-argument (notmuch-show-get-filename)))))
|
||||
(concat "notmuch cat " (shell-quote-argument (notmuch-show-get-message-id)) " | " command)))
|
||||
(start-process-shell-command "notmuch-pipe-command" "*notmuch-pipe*" shell-command)))
|
||||
|
||||
(defun notmuch-show-add-tags-worker (current-tags add-tags)
|
||||
|
|
Loading…
Reference in a new issue