comparison lisp/buff-menu.el @ 49050:8b38bac9826a

(Buffer-menu-execute): Fix for effect of header line.
author Dave Love <fx@gnu.org>
date Sun, 05 Jan 2003 23:14:59 +0000
parents d6e1c5f7f468
children e8a430c172dc
comparison
equal deleted inserted replaced
49049:6953cce6f3c8 49050:8b38bac9826a
330 (defun Buffer-menu-execute () 330 (defun Buffer-menu-execute ()
331 "Save and/or delete buffers marked with \\<Buffer-menu-mode-map>\\[Buffer-menu-save] or \\<Buffer-menu-mode-map>\\[Buffer-menu-delete] commands." 331 "Save and/or delete buffers marked with \\<Buffer-menu-mode-map>\\[Buffer-menu-save] or \\<Buffer-menu-mode-map>\\[Buffer-menu-delete] commands."
332 (interactive) 332 (interactive)
333 (save-excursion 333 (save-excursion
334 (goto-char (point-min)) 334 (goto-char (point-min))
335 (forward-line 1) 335 (unless Buffer-menu-use-header-line
336 (forward-line 1))
336 (while (re-search-forward "^..S" nil t) 337 (while (re-search-forward "^..S" nil t)
337 (let ((modp nil)) 338 (let ((modp nil))
338 (save-excursion 339 (save-excursion
339 (set-buffer (Buffer-menu-buffer t)) 340 (set-buffer (Buffer-menu-buffer t))
340 (save-buffer) 341 (save-buffer)
342 (let ((buffer-read-only nil)) 343 (let ((buffer-read-only nil))
343 (delete-char -1) 344 (delete-char -1)
344 (insert (if modp ?* ? )))))) 345 (insert (if modp ?* ? ))))))
345 (save-excursion 346 (save-excursion
346 (goto-char (point-min)) 347 (goto-char (point-min))
347 (forward-line 1) 348 (unless Buffer-menu-use-header-line
349 (forward-line 1))
348 (let ((buff-menu-buffer (current-buffer)) 350 (let ((buff-menu-buffer (current-buffer))
349 (buffer-read-only nil)) 351 (buffer-read-only nil))
350 (while (search-forward "\nD" nil t) 352 (while (re-search-forward "^D" nil t)
351 (forward-char -1) 353 (forward-char -1)
352 (let ((buf (Buffer-menu-buffer nil))) 354 (let ((buf (Buffer-menu-buffer nil)))
353 (or (eq buf nil) 355 (or (eq buf nil)
354 (eq buf buff-menu-buffer) 356 (eq buf buff-menu-buffer)
355 (save-excursion (kill-buffer buf))) 357 (save-excursion (kill-buffer buf)))
356 (if (and buf (buffer-name buf)) 358 (if (and buf (buffer-name buf))
357 (progn (delete-char 1) 359 (progn (delete-char 1)
358 (insert ? )) 360 (insert ? ))
359 (delete-region (point) (progn (forward-line 1) (point))) 361 (delete-region (point) (progn (forward-line 1) (point)))
360 (forward-char -1))))))) 362 (unless (bobp)
363 (forward-char -1))))))))
361 364
362 (defun Buffer-menu-select () 365 (defun Buffer-menu-select ()
363 "Select this line's buffer; also display buffers marked with `>'. 366 "Select this line's buffer; also display buffers marked with `>'.
364 You can mark buffers with the \\<Buffer-menu-mode-map>\\[Buffer-menu-mark] command. 367 You can mark buffers with the \\<Buffer-menu-mode-map>\\[Buffer-menu-mark] command.
365 This command deletes and replaces all the previously existing windows 368 This command deletes and replaces all the previously existing windows
549 552
550 For more information, see the function `buffer-menu'." 553 For more information, see the function `buffer-menu'."
551 (let* ((old-buffer (current-buffer)) 554 (let* ((old-buffer (current-buffer))
552 (standard-output standard-output) 555 (standard-output standard-output)
553 (mode-end (make-string (- Buffer-menu-mode-width 2) ? )) 556 (mode-end (make-string (- Buffer-menu-mode-width 2) ? ))
557 ;; Fixme: This is wrong for left-hand scroll-bars.
554 (header (concat "CRM " (Buffer-menu-buffer+size "Buffer" "Size") 558 (header (concat "CRM " (Buffer-menu-buffer+size "Buffer" "Size")
555 " Mode" mode-end "File\n")) 559 " Mode" mode-end "File\n"))
556 list desired-point name file mode) 560 list desired-point name file mode)
557 (save-excursion 561 (save-excursion
558 (set-buffer (get-buffer-create "*Buffer List*")) 562 (set-buffer (get-buffer-create "*Buffer List*"))