Mercurial > emacs
comparison lisp/buff-menu.el @ 30828:26dae0a7f527
(list-buffers-noselect): Set `buffer' as well as
'buffer-menu' property.
(Buffer-menu-buffer): Use `buffer' property if `buffer-name'
fails.
(Buffer-menu-execute): When deleting, test `(and buf (buffer-name
buf))', instead of `(Buffer-menu-buffer nil)', to see if buffer
wasn't killed.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Tue, 15 Aug 2000 21:28:08 +0000 |
parents | 44991e974f6d |
children | f9233f642b88 |
comparison
equal
deleted
inserted
replaced
30827:7087bbfb6e30 | 30828:26dae0a7f527 |
---|---|
156 (defun Buffer-menu-buffer (error-if-non-existent-p) | 156 (defun Buffer-menu-buffer (error-if-non-existent-p) |
157 "Return buffer described by this line of buffer menu." | 157 "Return buffer described by this line of buffer menu." |
158 (let* ((where (save-excursion | 158 (let* ((where (save-excursion |
159 (beginning-of-line) | 159 (beginning-of-line) |
160 (+ (point) Buffer-menu-buffer-column))) | 160 (+ (point) Buffer-menu-buffer-column))) |
161 (name (and (not (eobp)) (get-text-property where 'buffer-name)))) | 161 (name (and (not (eobp)) (get-text-property where 'buffer-name))) |
162 (buf (and (not (eobp)) (get-text-property where 'buffer)))) | |
162 (if name | 163 (if name |
163 (or (get-buffer name) | 164 (or (get-buffer name) |
165 (and buf (buffer-name buf) buf) | |
164 (if error-if-non-existent-p | 166 (if error-if-non-existent-p |
165 (error "No buffer named `%s'" name) | 167 (error "No buffer named `%s'" name) |
166 nil)) | 168 nil)) |
169 (or (and buf (buffer-name buf) buf) | |
167 (if error-if-non-existent-p | 170 (if error-if-non-existent-p |
168 (error "No buffer on this line") | 171 (error "No buffer on this line") |
169 nil)))) | 172 nil))))) |
170 | 173 |
171 (defun buffer-menu (&optional arg) | 174 (defun buffer-menu (&optional arg) |
172 "Make a menu of buffers so you can save, delete or select them. | 175 "Make a menu of buffers so you can save, delete or select them. |
173 With argument, show only buffers that are visiting files. | 176 With argument, show only buffers that are visiting files. |
174 Type ? after invocation to get help on commands available. | 177 Type ? after invocation to get help on commands available. |
303 (while (search-forward "\nD" nil t) | 306 (while (search-forward "\nD" nil t) |
304 (forward-char -1) | 307 (forward-char -1) |
305 (let ((buf (Buffer-menu-buffer nil))) | 308 (let ((buf (Buffer-menu-buffer nil))) |
306 (or (eq buf nil) | 309 (or (eq buf nil) |
307 (eq buf buff-menu-buffer) | 310 (eq buf buff-menu-buffer) |
308 (save-excursion (kill-buffer buf)))) | 311 (save-excursion (kill-buffer buf))) |
309 (if (Buffer-menu-buffer nil) | 312 (if (and buf (buffer-name buf)) |
310 (progn (delete-char 1) | 313 (progn (delete-char 1) |
311 (insert ? )) | 314 (insert ? )) |
312 (delete-region (point) (progn (forward-line 1) (point))) | 315 (delete-region (point) (progn (forward-line 1) (point))) |
313 (forward-char -1)))))) | 316 (forward-char -1))))))) |
314 | 317 |
315 (defun Buffer-menu-select () | 318 (defun Buffer-menu-select () |
316 "Select this line's buffer; also display buffers marked with `>'. | 319 "Select this line's buffer; also display buffers marked with `>'. |
317 You can mark buffers with the \\<Buffer-menu-mode-map>\\[Buffer-menu-mark] command. | 320 You can mark buffers with the \\<Buffer-menu-mode-map>\\[Buffer-menu-mark] command. |
318 This command deletes and replaces all the previously existing windows | 321 This command deletes and replaces all the previously existing windows |
546 (+ this-buffer-line-start Buffer-menu-buffer-column)) | 549 (+ this-buffer-line-start Buffer-menu-buffer-column)) |
547 (let ((name-end (point))) | 550 (let ((name-end (point))) |
548 (indent-to 17 2) | 551 (indent-to 17 2) |
549 (put-text-property this-buffer-line-start name-end | 552 (put-text-property this-buffer-line-start name-end |
550 'buffer-name name) | 553 'buffer-name name) |
554 (put-text-property this-buffer-line-start (point) | |
555 'buffer buffer) | |
551 (put-text-property this-buffer-line-start name-end | 556 (put-text-property this-buffer-line-start name-end |
552 'mouse-face 'highlight)) | 557 'mouse-face 'highlight)) |
553 (let (size | 558 (let (size |
554 mode | 559 mode |
555 (excess (- (current-column) 17))) | 560 (excess (- (current-column) 17))) |