changeset 105887:c17b71571661

* buff-menu.el (Buffer-menu-buffer+size): Use display property to align size column (Bug#4839).
author Chong Yidong <cyd@stupidchicken.com>
date Fri, 06 Nov 2009 19:15:25 +0000
parents 544761863e24
children de6b45f6c427
files lisp/ChangeLog lisp/buff-menu.el
diffstat 2 files changed, 11 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Nov 06 19:12:55 2009 +0000
+++ b/lisp/ChangeLog	Fri Nov 06 19:15:25 2009 +0000
@@ -1,5 +1,8 @@
 2009-11-06  Chong Yidong  <cyd@stupidchicken.com>
 
+	* buff-menu.el (Buffer-menu-buffer+size): Use display property to
+	align size column (Bug#4839).
+
 	* emacs-lisp/autoload.el (autoload-rubric): Always issue a provide
 	statement.
 
--- a/lisp/buff-menu.el	Fri Nov 06 19:12:55 2009 +0000
+++ b/lisp/buff-menu.el	Fri Nov 06 19:15:25 2009 +0000
@@ -678,12 +678,13 @@
     (setq name (copy-sequence name)))
   (add-text-properties 0 (length name) name-props name)
   (add-text-properties 0 (length size) size-props size)
-  (concat name
-	  (make-string (- Buffer-menu-buffer+size-width
-			  (string-width name)
-			  (string-width size))
-		       ?\s)
-	  size))
+  (let ((name+space-width (- Buffer-menu-buffer+size-width
+			     (string-width size))))
+    (concat name
+	    (propertize (make-string (- name+space-width (string-width name))
+				     ?\s)
+			'display `(space :align-to ,(+ 4 name+space-width)))
+	    size)))
 
 (defun Buffer-menu-sort (column)
   "Sort the buffer menu by COLUMN."
@@ -889,7 +890,7 @@
 		;; This way we avoid problems with unusual buffer names.
 		(let ((name (nth 2 buffer))
 		      (size (int-to-string (nth 3 buffer))))
-		      (Buffer-menu-buffer+size name size
+		  (Buffer-menu-buffer+size name size
 		         `(buffer-name ,name
 				       buffer ,(car buffer)
 				       font-lock-face buffer-menu-buffer