aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Heuer1994-04-02 05:31:31 +0000
committerKarl Heuer1994-04-02 05:31:31 +0000
commite5ea316b8ade737c73f151f7ccc55146227f22bd (patch)
treece547019323a9df13a5a5c018fd430a0f98607e3
parente78e10caf2126abf1860342d56de5b251e8ea8c2 (diff)
downloademacs-e5ea316b8ade737c73f151f7ccc55146227f22bd.tar.gz
emacs-e5ea316b8ade737c73f151f7ccc55146227f22bd.zip
(Buffer-menu-mode): Highlight only the buffer name, not the whole line.
(Buffer-menu-buffer-name-position): New function.
-rw-r--r--lisp/buff-menu.el42
1 files changed, 19 insertions, 23 deletions
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el
index 4a5a68f73b4..56ec933660b 100644
--- a/lisp/buff-menu.el
+++ b/lisp/buff-menu.el
@@ -48,6 +48,8 @@
48; Put buffer *Buffer List* into proper mode right away 48; Put buffer *Buffer List* into proper mode right away
49; so that from now on even list-buffers is enough to get a buffer menu. 49; so that from now on even list-buffers is enough to get a buffer menu.
50 50
51(defvar Buffer-menu-buffer-column nil)
52
51(defvar Buffer-menu-mode-map nil "") 53(defvar Buffer-menu-mode-map nil "")
52 54
53(if Buffer-menu-mode-map 55(if Buffer-menu-mode-map
@@ -115,43 +117,37 @@ Letters do not insert themselves; instead, they are commands.
115 (setq mode-name "Buffer Menu") 117 (setq mode-name "Buffer Menu")
116 (save-excursion 118 (save-excursion
117 (goto-char (point-min)) 119 (goto-char (point-min))
120 (search-forward "Buffer")
121 (backward-word 1)
122 (setq Buffer-menu-buffer-column (current-column))
118 (forward-line 2) 123 (forward-line 2)
119 (while (not (eobp)) 124 (while (not (eobp))
120 (put-text-property (point) (save-excursion (end-of-line) (point)) 125 (let ((where (Buffer-menu-buffer-name-position)))
121 'mouse-face 'highlight) 126 (put-text-property (car where) (cdr where) 'mouse-face 'highlight))
122 (forward-line 1))) 127 (forward-line 1)))
123 (setq truncate-lines t) 128 (setq truncate-lines t)
124 (setq buffer-read-only t) 129 (setq buffer-read-only t)
125 (run-hooks 'buffer-menu-mode-hook)) 130 (run-hooks 'buffer-menu-mode-hook))
126 131
127(defvar Buffer-menu-buffer-column nil)
128
129(defvar Buffer-menu-size-column nil)
130
131(defun Buffer-menu-buffer (error-if-non-existent-p) 132(defun Buffer-menu-buffer (error-if-non-existent-p)
132 "Return buffer described by this line of buffer menu." 133 "Return buffer described by this line of buffer menu."
133 (if (null Buffer-menu-buffer-column) 134 (let* ((where (Buffer-menu-buffer-name-position))
134 (save-excursion 135 (string (buffer-substring (car where) (cdr where))))
135 (goto-char (point-min)) 136 (or (get-buffer string)
136 (search-forward "Buffer") 137 (if error-if-non-existent-p
137 (backward-word 1) 138 (error "No buffer named \"%s\"" string)
138 (setq Buffer-menu-buffer-column (current-column)) 139 nil))))
139 (search-forward "Size") 140
140 (backward-word 1) 141;; Find the start and end positions of the buffer name on this line.
141 (setq Buffer-menu-size-column (current-column)))) 142;; Returns a cons (START . END).
143(defun Buffer-menu-buffer-name-position ()
142 (save-excursion 144 (save-excursion
143 (beginning-of-line) 145 (beginning-of-line)
144 (forward-char Buffer-menu-buffer-column) 146 (forward-char Buffer-menu-buffer-column)
145 (let ((start (point)) 147 (let ((start (point)))
146 string)
147 ;; End of buffer name marked by tab or two spaces.
148 (re-search-forward "\t\\| ") 148 (re-search-forward "\t\\| ")
149 (skip-chars-backward " \t") 149 (skip-chars-backward " \t")
150 (setq string (buffer-substring start (point))) 150 (cons start (point)))))
151 (or (get-buffer string)
152 (if error-if-non-existent-p
153 (error "No buffer named \"%s\"" string)
154 nil)))))
155 151
156(defun buffer-menu (&optional arg) 152(defun buffer-menu (&optional arg)
157 "Make a menu of buffers so you can save, delete or select them. 153 "Make a menu of buffers so you can save, delete or select them.