From 0898cfad5ef2d7c000e9c23e9205e02aec18cc24 Mon Sep 17 00:00:00 2001
From: David Edmondson <dme@dme.org>
Date: Wed, 19 May 2010 11:21:05 +0100
Subject: [PATCH] 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>
---
 emacs/notmuch-show.el                         | 20 ++++++++++++++++++-
 .../notmuch-show-thread-maildir-storage       |  6 +++---
 2 files changed, 22 insertions(+), 4 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
 	    ") ("
diff --git a/test/emacs.expected-output/notmuch-show-thread-maildir-storage b/test/emacs.expected-output/notmuch-show-thread-maildir-storage
index 6eed85b8..a0fc1407 100644
--- a/test/emacs.expected-output/notmuch-show-thread-maildir-storage
+++ b/test/emacs.expected-output/notmuch-show-thread-maildir-storage
@@ -101,7 +101,7 @@ http://notmuchmail.org/mailman/listinfo/notmuch
   notmuch mailing list
   notmuch@notmuchmail.org
   http://notmuchmail.org/mailman/listinfo/notmuch
-   "Mikhail Gusarov" <dottedmag@dottedmag.net> (2009-11-17) (inbox unread)
+   Mikhail Gusarov <dottedmag@dottedmag.net> (2009-11-17) (inbox unread)
    Subject: [notmuch] Working with Maildir storage?
    To: notmuch@notmuchmail.org
    Date: Wed, 18 Nov 2009 02:50:48 +0600
@@ -129,7 +129,7 @@ http://notmuchmail.org/mailman/listinfo/notmuch
    Desc: not available
    URL: <http://notmuchmail.org/pipermail/notmuch/attachments/20091118/0e33d964/attachment.pgp>
 
-   "Keith Packard" <keithp@keithp.com> (2009-11-17) (inbox unread)
+   Keith Packard <keithp@keithp.com> (2009-11-17) (inbox unread)
    Subject: [notmuch] Working with Maildir storage?
    To: notmuch@notmuchmail.org
    Date: Tue, 17 Nov 2009 13:24:13 -0800
@@ -179,7 +179,7 @@ http://notmuchmail.org/mailman/listinfo/notmuch
     notmuch mailing list
     notmuch@notmuchmail.org
     http://notmuchmail.org/mailman/listinfo/notmuch
- "Carl Worth" <cworth@cworth.org> (2009-11-18) (inbox unread)
+ Carl Worth <cworth@cworth.org> (2009-11-18) (inbox unread)
  Subject: [notmuch] Working with Maildir storage?
  To: notmuch@notmuchmail.org
  Date: Wed, 18 Nov 2009 02:08:10 -0800
-- 
2.45.2