'face 'notmuch-tag-face)
")"))))))
+(defun notmuch-show-clean-address (address)
+ "Clean a single email address for display."
+ (let* ((parsed (mail-header-parse-address address))
+ (address (car parsed))
+ (name (cdr parsed)))
+ ;; Remove double quotes. They might be required during transport,
+ ;; but we don't need to see them.
+ (when name
+ (setq name (replace-regexp-in-string "\"" "" name)))
+ ;; If the address is 'foo@bar.com <foo@bar.com>' then show just
+ ;; 'foo@bar.com'.
+ (when (string= name address)
+ (setq name nil))
+
+ (if (not name)
+ address
+ (concat name " <" address ">"))))
+
(defun notmuch-show-insert-headerline (headers date tags depth)
"Insert a notmuch style headerline based on HEADERS for a
message at DEPTH in the current thread."
(let ((start (point)))
(insert (notmuch-show-spaces-n depth)
- (plist-get headers :From)
+ (notmuch-show-clean-address (plist-get headers :From))
" ("
date
") ("
(with-temp-buffer
(let ((coding-system-for-read 'no-conversion))
(call-process notmuch-command nil t nil
- "part" (format "--part=%s" part-number) message-id)
+ "show" "--format=raw" (format "--part=%s" part-number) message-id)
(buffer-string))))
(defun notmuch-show-get-bodypart-content (msg part nth)