Mercurial > emacs
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*")) |