(define-key map "c" 'notmuch-show-toggle-citations-visible)
(define-key map "h" 'notmuch-show-toggle-headers-visible)
(define-key map "n" 'notmuch-show-next-message)
+ (define-key map "N" 'notmuch-show-mark-read-then-next-open-message)
(define-key map "p" 'notmuch-show-previous-message)
(define-key map (kbd "C-n") 'notmuch-show-next-line)
(define-key map (kbd "C-p") 'notmuch-show-previous-line)
(define-key map "-" 'notmuch-show-remove-tag)
(define-key map (kbd "DEL") 'notmuch-show-rewind)
(define-key map " " 'notmuch-show-advance-marking-read-and-archiving)
+ (define-key map "|" 'notmuch-show-pipe-message)
map)
"Keymap for \"notmuch show\" buffers.")
(fset 'notmuch-show-mode-map notmuch-show-mode-map)
(set 'notmuch-show-part-end-regexp "\fpart}")
(set 'notmuch-show-marker-regexp "\f\\(message\\|header\\|body\\|attachment\\|part\\)[{}].*$")
-(set 'notmuch-show-id-regexp "ID: \\([^ ]*\\)")
-(set 'notmuch-show-filename-regexp "Filename: \\(.*\\)$")
+(set 'notmuch-show-id-regexp "id:\\([^ ]*\\)")
+(set 'notmuch-show-filename-regexp "filename:\\(.*\\)$")
(set 'notmuch-show-tags-regexp "(\\([^)]*\\))$")
; XXX: This should be a generic function in emacs somewhere, not here
(interactive)
(view-file (notmuch-show-get-filename)))
+(defun notmuch-show-pipe-message (command)
+ "Pipe the contents of the current message to the given command.
+
+The given command will be executed with the raw contents of the
+current email message as stdin. Anything printed by the command
+to stdout or stderr will appear in the *Messages* buffer."
+ (interactive "sPipe message to command: ")
+ (apply 'start-process-shell-command "notmuch-pipe-command" "*notmuch-pipe*" (split-string (concat command " < " (notmuch-show-get-filename)))))
+
(defun notmuch-show-move-to-current-message-summary-line ()
"Move to the beginning of the one-line summary of the current message.
(unread (notmuch-show-message-unread-p)))
(if (> next (window-end))
(scroll-up nil)
- (if unread
- (notmuch-show-mark-read-then-next-open-message)
- (if (notmuch-show-last-message-p)
- (notmuch-show-archive-thread)
- (notmuch-show-next-open-message))))))
+ (let ((last (notmuch-show-last-message-p)))
+ (notmuch-show-mark-read-then-next-open-message)
+ (if last
+ (notmuch-show-archive-thread))))))
(defun notmuch-show-markup-citations-region (beg end)
(goto-char beg)
(save-excursion
(beginning-of-line)
(let ((beg (point)))
- (re-search-forward "[a-fA-F0-9]*")
+ (re-search-forward "thread:[a-fA-F0-9]*")
(filter-buffer-substring beg (point)))))
(defun notmuch-search-markup-this-thread-id ()
(beginning-of-line)
(let ((beg (point)))
- (re-search-forward "[a-fA-F0-9]*")
+ (re-search-forward "thread:[a-fA-F0-9]*")
(forward-char)
(overlay-put (make-overlay beg (point)) 'invisible 'notmuch-search)))