mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
notmuch-show-get-header: new function; return alist of parsed header fields.
This function parses the displayed message to recover header fields. It uses mailheader.el to do the actual header parsing, after preprocessing to remove indentation. It relies on the variables notmuch-show-message-begin-regexp, notmuch-show-header-begin-regexp, and notmuch-show-message-end-regexp.
This commit is contained in:
parent
becdb42b1f
commit
e6c6bf3250
1 changed files with 24 additions and 0 deletions
24
notmuch.el
24
notmuch.el
|
@ -225,6 +225,30 @@ Unlike builtin `previous-line' this version accepts no arguments."
|
|||
(re-search-forward notmuch-show-tags-regexp)
|
||||
(split-string (buffer-substring (match-beginning 1) (match-end 1)))))
|
||||
|
||||
(defun notmuch-show-get-header ()
|
||||
"Retrieve and parse the header from the current message. Returns an alist with of (header . value)
|
||||
where header is a symbol and value is a string. The summary from notmuch-show is returned as the
|
||||
pseudoheader summary"
|
||||
(require 'mailheader)
|
||||
(save-excursion
|
||||
(beginning-of-line)
|
||||
(if (not (looking-at notmuch-show-message-begin-regexp))
|
||||
(re-search-backward notmuch-show-message-begin-regexp))
|
||||
(re-search-forward (concat notmuch-show-header-begin-regexp "\n[[:space:]]*\\(.*\\)\n"))
|
||||
(let* ((summary (buffer-substring-no-properties (match-beginning 1) (match-end 1)))
|
||||
(beg (point)))
|
||||
(re-search-forward notmuch-show-header-end-regexp)
|
||||
(let ((text (buffer-substring beg (match-beginning 0))))
|
||||
(with-temp-buffer
|
||||
(insert text)
|
||||
(goto-char (point-min))
|
||||
(while (looking-at "\\([[:space:]]*\\)[A-Za-z][-A-Za-z0-9]*:")
|
||||
(delete-region (match-beginning 1) (match-end 1))
|
||||
(forward-line)
|
||||
)
|
||||
(goto-char (point-min))
|
||||
(cons (cons 'summary summary) (mail-header-extract-no-properties)))))))
|
||||
|
||||
(defun notmuch-show-add-tag (&rest toadd)
|
||||
"Add a tag to the current message."
|
||||
(interactive
|
||||
|
|
Loading…
Reference in a new issue