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)))