changeset 99749:b491431b74c8

(Buffer-menu-short-ellipsis): New constant. (Buffer-menu-buffer+size): Use it, fix last change, and simplify. (list-buffers-noselect): Don't need to pad.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 20 Nov 2008 15:35:30 +0000
parents cea0d38a2587
children f5057049058b
files lisp/ChangeLog lisp/buff-menu.el
diffstat 2 files changed, 23 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Thu Nov 20 15:22:16 2008 +0000
+++ b/lisp/ChangeLog	Thu Nov 20 15:35:30 2008 +0000
@@ -1,3 +1,9 @@
+2008-11-20  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* buff-menu.el (Buffer-menu-short-ellipsis): New constant.
+	(Buffer-menu-buffer+size): Use it, fix last change, and simplify.
+	(list-buffers-noselect): Don't need to pad.
+
 2008-11-20   Toru TSUNEYOSHI  <t_tuneyosi@hotmail.com>
 
 	* buff-menu.el (Buffer-menu-buffer+size, list-buffers-noselect):
--- a/lisp/buff-menu.el	Thu Nov 20 15:22:16 2008 +0000
+++ b/lisp/buff-menu.el	Thu Nov 20 15:35:30 2008 +0000
@@ -596,26 +596,24 @@
   (interactive "P")
   (display-buffer (list-buffers-noselect files-only)))
 
+(defconst Buffer-menu-short-ellipsis (if (char-displayable-p ?…) "…" ":"))
+
 (defun Buffer-menu-buffer+size (name size &optional name-props size-props)
-  (if (> (+ (string-width name) (string-width size) 2) Buffer-menu-buffer+size-width)
+  (if (> (+ (string-width name) (string-width size) 2)
+         Buffer-menu-buffer+size-width)
       (setq name
-	    (if (string-match "<[0-9]+>$" name)
-		(concat (truncate-string-to-width name
-						  (- Buffer-menu-buffer+size-width
-						     (max (string-width size) 3)
-						     (string-width (match-string 0))
-						     2)
-						  0
-						  ?\s)
-			":"		; narrow ellipsis
-			(match-string 0 name))
-	      (concat (truncate-string-to-width name
-						(- Buffer-menu-buffer+size-width
-						   (max (string-width size) 3)
-						   2)
-						0
-						?\s)
-		      ":")))		; narrow ellipsis
+            (let ((tail
+                   (if (string-match "<[0-9]+>$" name)
+                       (match-string 0 name)
+                     "")))
+              (concat (truncate-string-to-width
+                       name
+                       (- Buffer-menu-buffer+size-width
+                          (max (string-width size) 3)
+                          (string-width tail)
+                          2))
+                      Buffer-menu-short-ellipsis
+                      tail)))
     ;; Don't put properties on (buffer-name).
     (setq name (copy-sequence name)))
   (add-text-properties 0 (length name) name-props name)
@@ -846,9 +844,7 @@
 		"  "
 		(if (> (string-width (nth 4 buffer)) Buffer-menu-mode-width)
 		    (truncate-string-to-width (nth 4 buffer)
-					      Buffer-menu-mode-width
-					      0
-					      ?\s)
+					      Buffer-menu-mode-width)
 		  (nth 4 buffer)))
 	(when (nth 5 buffer)
 	  (indent-to (+ Buffer-menu-buffer-column Buffer-menu-buffer+size-width