[PATCH] emacs: get rid of trailing spaces in notmuch-hello view

Dmitry Kurochkin dmitry.kurochkin at gmail.com
Fri Mar 9 19:54:15 PST 2012


This patch removes trailing spaces in notmuch-hello view.

A side effect of this change is that tag/query buttons no longer
include a space at the end.  This means that pressing RET when the
point is at the first character after the tag/query button no longer
works (note that this is the standard behavior for buttons).  We may
change this behavior in the future (without adding trailing spaces
back) if people would find this change inconvenient.
---
 emacs/notmuch-hello.el                             |   30 ++++++++------------
 test/emacs                                         |    2 +-
 test/emacs.expected-output/notmuch-hello           |    2 +-
 .../emacs.expected-output/notmuch-hello-long-names |    6 ++--
 .../notmuch-hello-new-section                      |    2 +-
 .../notmuch-hello-section-counts                   |    4 +-
 .../notmuch-hello-section-hidden-tag               |    2 +-
 .../notmuch-hello-section-with-empty               |    2 +-
 .../emacs.expected-output/notmuch-hello-with-empty |    2 +-
 9 files changed, 23 insertions(+), 29 deletions(-)

diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el
index 28f39f1..17f7edd 100644
--- a/emacs/notmuch-hello.el
+++ b/emacs/notmuch-hello.el
@@ -429,7 +429,8 @@ Such a list can be computed with `notmuch-hello-query-counts'."
   (let* ((widest (notmuch-hello-longest-label searches))
 	 (tags-and-width (notmuch-hello-tags-per-line widest))
 	 (tags-per-line (car tags-and-width))
-	 (widest (cdr tags-and-width))
+	 (column-width (cdr tags-and-width))
+	 (column-indent 0)
 	 (count 0)
 	 (reordered-list (notmuch-hello-reflect searches tags-per-line))
 	 ;; Hack the display of the buttons used.
@@ -441,32 +442,25 @@ Such a list can be computed with `notmuch-hello-query-counts'."
     (mapc (lambda (elem)
 	    ;; (not elem) indicates an empty slot in the matrix.
 	    (when elem
+	      (if (> column-indent 0)
+		  (widget-insert (make-string column-indent ? )))
 	      (let* ((name (first elem))
 		     (query (second elem))
-		     (msg-count (third elem))
-		     (formatted-name (format "%s " name)))
+		     (msg-count (third elem)))
 		(widget-insert (format "%8s "
 				       (notmuch-hello-nice-number msg-count)))
-		(if (string= formatted-name notmuch-hello-target)
+		(if (string= name notmuch-hello-target)
 		    (setq found-target-pos (point-marker)))
 		(widget-create 'push-button
 			       :notify #'notmuch-hello-widget-search
 			       :notmuch-search-terms query
-			       formatted-name)
-		(unless (eq (% count tags-per-line) (1- tags-per-line))
-		  ;; If this is not the last tag on the line, insert
-		  ;; enough space to consume the rest of the column.
-		  ;; Because the button for the name is `(1+ (length
-		  ;; name))' long (due to the trailing space) we can
-		  ;; just insert `(- widest (length name))' spaces - the
-		  ;; column separator is included in the button if
-		  ;; `(equal widest (length name)'.
-		  (widget-insert (make-string (max 0
-						   (- widest (length name)))
-					      ? )))))
+			       name)
+		(setq column-indent
+		      (1+ (max 0 (- column-width (length name)))))))
 	    (setq count (1+ count))
-	    (if (eq (% count tags-per-line) 0)
-		(widget-insert "\n")))
+	    (when (eq (% count tags-per-line) 0)
+	      (setq column-indent 0)
+	      (widget-insert "\n")))
 	  reordered-list)
 
     ;; If the last line was not full (and hence did not include a
diff --git a/test/emacs b/test/emacs
index 29a489c..42780af 100755
--- a/test/emacs
+++ b/test/emacs
@@ -39,7 +39,7 @@ test_begin_subtest "Navigation of notmuch-hello to search results"
 test_emacs '(notmuch-hello)
 	    (goto-char (point-min))
 	    (re-search-forward "inbox")
-	    (widget-button-press (point))
+	    (widget-button-press (1- (point)))
 	    (notmuch-test-wait)
 	    (test-output)'
 test_expect_equal_file OUTPUT $EXPECTED/notmuch-hello-view-inbox
diff --git a/test/emacs.expected-output/notmuch-hello b/test/emacs.expected-output/notmuch-hello
index 1470790..2d69891 100644
--- a/test/emacs.expected-output/notmuch-hello
+++ b/test/emacs.expected-output/notmuch-hello
@@ -2,7 +2,7 @@
 
 Saved searches: [edit]
 
-	  52 inbox           52 unread    
+	  52 inbox           52 unread
 
 Search:                                                                     .
 
diff --git a/test/emacs.expected-output/notmuch-hello-long-names b/test/emacs.expected-output/notmuch-hello-long-names
index be6d2c5..486d0d9 100644
--- a/test/emacs.expected-output/notmuch-hello-long-names
+++ b/test/emacs.expected-output/notmuch-hello-long-names
@@ -2,14 +2,14 @@
 
 Saved searches: [edit]
 
-	  52 inbox           52 unread    
+	  52 inbox           52 unread
 
 Search:                                                                     .
 
 All tags: [hide]
 
-	  52 a-very-long-tag       52 inbox                 52 unread 
-	   4 attachment             7 signed          
+	  52 a-very-long-tag       52 inbox                 52 unread
+	   4 attachment             7 signed
 
 	 Type a search query and hit RET to view matching threads.
 		Edit saved searches with the `edit' button.
diff --git a/test/emacs.expected-output/notmuch-hello-new-section b/test/emacs.expected-output/notmuch-hello-new-section
index 6a339aa..67fdef2 100644
--- a/test/emacs.expected-output/notmuch-hello-new-section
+++ b/test/emacs.expected-output/notmuch-hello-new-section
@@ -1,4 +1,4 @@
 Test: [hide]
 
-	  52 inbox 
+	  52 inbox
 
diff --git a/test/emacs.expected-output/notmuch-hello-section-counts b/test/emacs.expected-output/notmuch-hello-section-counts
index 9d79659..7a9827c 100644
--- a/test/emacs.expected-output/notmuch-hello-section-counts
+++ b/test/emacs.expected-output/notmuch-hello-section-counts
@@ -1,5 +1,5 @@
 Test-with-counts: [hide]
 
-	   2 attachment             7 signed          
-	   7 inbox                  7 unread          
+	   2 attachment             7 signed
+	   7 inbox                  7 unread
 
diff --git a/test/emacs.expected-output/notmuch-hello-section-hidden-tag b/test/emacs.expected-output/notmuch-hello-section-hidden-tag
index 3688e7c..809a114 100644
--- a/test/emacs.expected-output/notmuch-hello-section-hidden-tag
+++ b/test/emacs.expected-output/notmuch-hello-section-hidden-tag
@@ -1,4 +1,4 @@
 Test-with-filtered: [hide]
 
-	   4 attachment            52 inbox                  7 signed 
+	   4 attachment            52 inbox                  7 signed
 
diff --git a/test/emacs.expected-output/notmuch-hello-section-with-empty b/test/emacs.expected-output/notmuch-hello-section-with-empty
index dc2568d..5c67317 100644
--- a/test/emacs.expected-output/notmuch-hello-section-with-empty
+++ b/test/emacs.expected-output/notmuch-hello-section-with-empty
@@ -1,4 +1,4 @@
 Test-with-empty: [hide]
 
-	  52 inbox 
+	  52 inbox
 
diff --git a/test/emacs.expected-output/notmuch-hello-with-empty b/test/emacs.expected-output/notmuch-hello-with-empty
index 5e53222..854e0c2 100644
--- a/test/emacs.expected-output/notmuch-hello-with-empty
+++ b/test/emacs.expected-output/notmuch-hello-with-empty
@@ -2,7 +2,7 @@
 
 Saved searches: [edit]
 
-	  52 inbox           52 unread           0 empty     
+	  52 inbox           52 unread           0 empty
 
 Search:                                                                     .
 
-- 
1.7.9.1



More information about the notmuch mailing list