From b65bcb5f8f14863f810cf41b9d8c14afacc76ae5 Mon Sep 17 00:00:00 2001
From: David Edmondson <dme@dme.org>
Date: Fri, 23 Apr 2010 11:24:09 +0100
Subject: [PATCH] emacs: Remove `notmuch-search-authors-width' and fix the use
 of `notmuch-search-result-format' accordingly

The width of the authors field in search output was previously
specified in two places:
 - `notmuch-search-authors-width': the limit beyond which the authors
   names are truncated,
 - `notmuch-search-result-format': the layout of the search results.

Changing the configuration of one of these may have required the user
to know about and adapt the other accordingly. This led to confusion.

Instead, remove `notmuch-search-authors-width' and perform truncation
based on the relevant field in `notmuch-search-result-format'.

Approved-By: Jameson Rollins <jrollins@finestructure.net>
---
 emacs/notmuch.el | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index e947e5d8..df2e9f59 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -54,15 +54,10 @@
 (require 'notmuch-lib)
 (require 'notmuch-show)
 
-(defcustom notmuch-search-authors-width 20
-  "Number of columns to use to display authors in a notmuch-search buffer."
-  :type 'integer
-  :group 'notmuch)
-
 (defcustom notmuch-search-result-format
   `(("date" . "%s ")
     ("count" . "%-7s ")
-    ("authors" . ,(format "%%-%ds " notmuch-search-authors-width))
+    ("authors" . "%-20s ")
     ("subject" . "%s ")
     ("tags" . "(%s)"))
   "Search result formating. Supported fields are:
@@ -591,7 +586,11 @@ matching will be applied."
    ((string-equal field "count")
     (insert (format (cdr (assoc field notmuch-search-result-format)) count)))
    ((string-equal field "authors")
-    (insert (format (cdr (assoc field notmuch-search-result-format)) authors)))
+    (insert (let ((sample (format (cdr (assoc field notmuch-search-result-format)) "")))
+	      (if (> (length authors)
+		     (length sample))
+		  (concat (substring authors 0 (- (length sample) 4)) "... ")
+		(format (cdr (assoc field notmuch-search-result-format)) authors)))))
    ((string-equal field "subject")
     (insert (format (cdr (assoc field notmuch-search-result-format)) subject)))
    ((string-equal field "tags")
@@ -620,12 +619,9 @@ matching will be applied."
 			   (date (match-string 2 string))
 			   (count (match-string 3 string))
 			   (authors (match-string 4 string))
-			   (authors-length (length authors))
 			   (subject (match-string 5 string))
 			   (tags (match-string 6 string))
 			   (tag-list (if tags (save-match-data (split-string tags)))))
-		      (if (> authors-length notmuch-search-authors-width)
-			  (set 'authors (concat (substring authors 0 (- notmuch-search-authors-width 3)) "...")))
 		      (goto-char (point-max))
 		      (let ((beg (point-marker)))
 			(notmuch-search-show-result date count authors subject tags)
-- 
2.45.2