aboutsummaryrefslogtreecommitdiffhomepage
path: root/emacs/notmuch-show.el
diff options
context:
space:
mode:
authorGravatar David Edmondson <dme@dme.org>2010-05-19 11:21:05 +0100
committerGravatar Carl Worth <cworth@cworth.org>2011-05-18 16:11:53 -0700
commit0898cfad5ef2d7c000e9c23e9205e02aec18cc24 (patch)
treeb36569ff829a6c5b6ddbc26251fa87b27b6d4ac2 /emacs/notmuch-show.el
parent4f04d2734f5e6a765aac05dbb205565774782123 (diff)
emacs: Show cleaner `From:' addresses in the summary line.
Remove double quotes and flatten "foo@bar.com <foo@bar.com>" to "foo@bar.com". Edited-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> (clean up expected output for emacs tests). Signed-off-by: Jameson Rollins <jrollins@finestructure.net>
Diffstat (limited to 'emacs/notmuch-show.el')
-rw-r--r--emacs/notmuch-show.el20
1 files changed, 19 insertions, 1 deletions
diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index 9c174e25..ed7037a1 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -222,12 +222,30 @@ same as that of the previous message."
'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
") ("