197 |
|
|
198 |
(defun Buffer-menu-revert-function (ignore1 ignore2) |
(defun Buffer-menu-revert-function (ignore1 ignore2) |
199 |
;; We can not use save-excursion here. The buffer gets erased. |
;; We can not use save-excursion here. The buffer gets erased. |
200 |
(let ((old-point (point))) |
(let ((ocol (current-column)) |
201 |
|
(oline (progn (move-to-column 4) |
202 |
|
(get-text-property (point) 'buffer))) |
203 |
|
(prop (point-min))) |
204 |
(list-buffers-noselect Buffer-menu-files-only) |
(list-buffers-noselect Buffer-menu-files-only) |
205 |
(goto-char old-point))) |
(while (setq prop (next-single-property-change prop 'buffer)) |
206 |
|
(when (eq (get-text-property prop 'buffer) oline) |
207 |
|
(goto-char prop) |
208 |
|
(move-to-column ocol))))) |
209 |
|
|
210 |
(defun Buffer-menu-toggle-files-only (arg) |
(defun Buffer-menu-toggle-files-only (arg) |
211 |
"Toggle whether the current buffer-menu displays only file buffers. |
"Toggle whether the current buffer-menu displays only file buffers. |
360 |
(delete-char 1) |
(delete-char 1) |
361 |
(insert (if arg ?* ? )))))) |
(insert (if arg ?* ? )))))) |
362 |
|
|
363 |
|
(defun Buffer-menu-beginning () |
364 |
|
(goto-char (point-min)) |
365 |
|
(unless Buffer-menu-use-header-line |
366 |
|
(forward-line))) |
367 |
|
|
368 |
(defun Buffer-menu-execute () |
(defun Buffer-menu-execute () |
369 |
"Save and/or delete buffers marked with \\<Buffer-menu-mode-map>\\[Buffer-menu-save] or \\<Buffer-menu-mode-map>\\[Buffer-menu-delete] commands." |
"Save and/or delete buffers marked with \\<Buffer-menu-mode-map>\\[Buffer-menu-save] or \\<Buffer-menu-mode-map>\\[Buffer-menu-delete] commands." |
370 |
(interactive) |
(interactive) |
371 |
(save-excursion |
(save-excursion |
372 |
(goto-char (point-min)) |
(Buffer-menu-beginning) |
|
(unless Buffer-menu-use-header-line |
|
|
(forward-line 1)) |
|
373 |
(while (re-search-forward "^..S" nil t) |
(while (re-search-forward "^..S" nil t) |
374 |
(let ((modp nil)) |
(let ((modp nil)) |
375 |
(save-excursion |
(save-excursion |
380 |
(delete-char -1) |
(delete-char -1) |
381 |
(insert (if modp ?* ? )))))) |
(insert (if modp ?* ? )))))) |
382 |
(save-excursion |
(save-excursion |
383 |
(goto-char (point-min)) |
(Buffer-menu-beginning) |
|
(unless Buffer-menu-use-header-line |
|
|
(forward-line 1)) |
|
384 |
(let ((buff-menu-buffer (current-buffer)) |
(let ((buff-menu-buffer (current-buffer)) |
385 |
(buffer-read-only nil)) |
(buffer-read-only nil)) |
386 |
(while (re-search-forward "^D" nil t) |
(while (re-search-forward "^D" nil t) |
406 |
(menu (current-buffer)) |
(menu (current-buffer)) |
407 |
(others ()) |
(others ()) |
408 |
tem) |
tem) |
409 |
(goto-char (point-min)) |
(Buffer-menu-beginning) |
|
(unless Buffer-menu-use-header-line |
|
|
(forward-line 1)) |
|
410 |
(while (re-search-forward "^>" nil t) |
(while (re-search-forward "^>" nil t) |
411 |
(setq tem (Buffer-menu-buffer t)) |
(setq tem (Buffer-menu-buffer t)) |
412 |
(let ((buffer-read-only nil)) |
(let ((buffer-read-only nil)) |
586 |
(if (< column 2) (setq column 2)) |
(if (< column 2) (setq column 2)) |
587 |
(if (> column 5) (setq column 5))) |
(if (> column 5) (setq column 5))) |
588 |
(setq Buffer-menu-sort-column column) |
(setq Buffer-menu-sort-column column) |
589 |
(Buffer-menu-revert)) |
(let (buffer-read-only l buf m1 m2) |
590 |
|
(save-excursion |
591 |
|
(Buffer-menu-beginning) |
592 |
|
(while (not (eobp)) |
593 |
|
(when (buffer-live-p (setq buf (get-text-property (+ (point) 4) 'buffer))) |
594 |
|
(setq m1 (char-after) |
595 |
|
m1 (if (memq m1 '(?> ?D)) m1) |
596 |
|
m2 (char-after (+ (point) 2)) |
597 |
|
m2 (if (eq m2 ?S) m2)) |
598 |
|
(if (or m1 m2) |
599 |
|
(push (list buf m1 m2) l))) |
600 |
|
(forward-line))) |
601 |
|
(Buffer-menu-revert) |
602 |
|
(setq buffer-read-only) |
603 |
|
(save-excursion |
604 |
|
(Buffer-menu-beginning) |
605 |
|
(while (not (eobp)) |
606 |
|
(when (setq buf (assq (get-text-property (+ (point) 4) 'buffer) l)) |
607 |
|
(setq m1 (cadr buf) |
608 |
|
m2 (cadr (cdr buf))) |
609 |
|
(when m1 |
610 |
|
(delete-char 1) |
611 |
|
(insert m1) |
612 |
|
(backward-char 1)) |
613 |
|
(when m2 |
614 |
|
(forward-char 2) |
615 |
|
(delete-char 1) |
616 |
|
(insert m2))) |
617 |
|
(forward-line))))) |
618 |
|
|
619 |
(defun Buffer-menu-make-sort-button (name column) |
(defun Buffer-menu-make-sort-button (name column) |
620 |
(if (equal column Buffer-menu-sort-column) (setq column nil)) |
(if (equal column Buffer-menu-sort-column) (setq column nil)) |
625 |
'mouse-face 'highlight |
'mouse-face 'highlight |
626 |
'keymap (let ((map (make-sparse-keymap))) |
'keymap (let ((map (make-sparse-keymap))) |
627 |
(define-key map [header-line mouse-2] |
(define-key map [header-line mouse-2] |
628 |
`(lambda () (interactive) |
`(lambda (e) |
629 |
|
(interactive "e") |
630 |
|
(if e (set-buffer (window-buffer (posn-window (event-end e))))) |
631 |
(Buffer-menu-sort ,column))) |
(Buffer-menu-sort ,column))) |
632 |
map))) |
map))) |
633 |
|
|