[PATCH] emacs: Remove `notmuch-search-authors-width' and fix the use of `notmuch-search-result-format' accordingly

David Edmondson dme at dme.org
Fri Apr 23 03:24:09 PDT 2010


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'.
---

Jamie, could you test this patch please? My main concern is that it
makes a small assumption about the value of
`notmuch-search-result-format' - namely that the `authors' field ends
with a space.

 emacs/notmuch.el |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index f96394a..d40c36e 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -55,15 +55,10 @@
 (require 'notmuch-show)
 (require 'notmuch-mua)
 
-(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:
@@ -585,7 +580,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")
@@ -614,12 +613,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)
-- 
1.7.0



More information about the notmuch mailing list