Mercurial > emacs
comparison lisp/buff-menu.el @ 90185:5b029ff3b08d
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-55
Merge from emacs--cvs-trunk--0
Patches applied:
* emacs--cvs-trunk--0 (patch 320-323)
- Update from CVS
author | Miles Bader <miles@gnu.org> |
---|---|
date | Thu, 26 May 2005 05:42:19 +0000 |
parents | f042e7c0fe20 23e016b887bb |
children | a1b34dec1104 |
comparison
equal
deleted
inserted
replaced
90184:9e5e2f01c7ab | 90185:5b029ff3b08d |
---|---|
1 ;;; buff-menu.el --- buffer menu main function and support functions -*- coding:utf-8 -*- | 1 ;;; buff-menu.el --- buffer menu main function and support functions -*- coding:utf-8 -*- |
2 | 2 |
3 ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 2000, 2001, 2002, 2003, | 3 ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 2000, 2001, 2002, 2003, |
4 ;; 2004 Free Software Foundation, Inc. | 4 ;; 2004, 2005 Free Software Foundation, Inc. |
5 | 5 |
6 ;; Maintainer: FSF | 6 ;; Maintainer: FSF |
7 ;; Keywords: convenience | 7 ;; Keywords: convenience |
8 | 8 |
9 ;; This file is part of GNU Emacs. | 9 ;; This file is part of GNU Emacs. |
188 'Buffer-menu-revert-function) | 188 'Buffer-menu-revert-function) |
189 (set (make-local-variable 'buffer-stale-function) | 189 (set (make-local-variable 'buffer-stale-function) |
190 #'(lambda (&optional noconfirm) 'fast)) | 190 #'(lambda (&optional noconfirm) 'fast)) |
191 (setq truncate-lines t) | 191 (setq truncate-lines t) |
192 (setq buffer-read-only t) | 192 (setq buffer-read-only t) |
193 (run-hooks 'buffer-menu-mode-hook)) | 193 (run-mode-hooks 'buffer-menu-mode-hook)) |
194 | 194 |
195 ;; This function exists so we can make the doc string of Buffer-menu-mode | 195 ;; This function exists so we can make the doc string of Buffer-menu-mode |
196 ;; look nice. | 196 ;; look nice. |
197 (defun Buffer-menu-revert () | 197 (defun Buffer-menu-revert () |
198 "Update the list of buffers." | 198 "Update the list of buffers." |
201 | 201 |
202 (defun Buffer-menu-revert-function (ignore1 ignore2) | 202 (defun Buffer-menu-revert-function (ignore1 ignore2) |
203 (or (eq buffer-undo-list t) | 203 (or (eq buffer-undo-list t) |
204 (setq buffer-undo-list nil)) | 204 (setq buffer-undo-list nil)) |
205 ;; We can not use save-excursion here. The buffer gets erased. | 205 ;; We can not use save-excursion here. The buffer gets erased. |
206 (let ((ocol (current-column)) | 206 (let ((opoint (point)) |
207 (eobp (eobp)) | |
208 (ocol (current-column)) | |
207 (oline (progn (move-to-column 4) | 209 (oline (progn (move-to-column 4) |
208 (get-text-property (point) 'buffer))) | 210 (get-text-property (point) 'buffer))) |
209 (prop (point-min)) | 211 (prop (point-min)) |
210 ;; do not make undo records for the reversion. | 212 ;; do not make undo records for the reversion. |
211 (buffer-undo-list t)) | 213 (buffer-undo-list t)) |
212 (list-buffers-noselect Buffer-menu-files-only) | 214 (list-buffers-noselect Buffer-menu-files-only) |
213 (while (setq prop (next-single-property-change prop 'buffer)) | 215 (if oline |
214 (when (eq (get-text-property prop 'buffer) oline) | 216 (while (setq prop (next-single-property-change prop 'buffer)) |
215 (goto-char prop) | 217 (when (eq (get-text-property prop 'buffer) oline) |
216 (move-to-column ocol))))) | 218 (goto-char prop) |
219 (move-to-column ocol))) | |
220 (goto-char (if eobp (point-max) opoint))))) | |
217 | 221 |
218 (defun Buffer-menu-toggle-files-only (arg) | 222 (defun Buffer-menu-toggle-files-only (arg) |
219 "Toggle whether the current buffer-menu displays only file buffers. | 223 "Toggle whether the current buffer-menu displays only file buffers. |
220 With a positive ARG display only file buffers. With zero or | 224 With a positive ARG display only file buffers. With zero or |
221 negative ARG, display other buffers as well." | 225 negative ARG, display other buffers as well." |
631 | 635 |
632 (defun Buffer-menu-make-sort-button (name column) | 636 (defun Buffer-menu-make-sort-button (name column) |
633 (if (equal column Buffer-menu-sort-column) (setq column nil)) | 637 (if (equal column Buffer-menu-sort-column) (setq column nil)) |
634 (propertize name | 638 (propertize name |
635 'help-echo (if column | 639 'help-echo (if column |
636 (concat "mouse-2: sort by " (downcase name)) | 640 (if Buffer-menu-use-header-line |
637 "mouse-2: sort by visited order") | 641 (concat "mouse-2: sort by " (downcase name)) |
642 (concat "mouse-2, RET: sort by " | |
643 (downcase name))) | |
644 (if Buffer-menu-use-header-line | |
645 "mouse-2: sort by visited order" | |
646 "mouse-2, RET: sort by visited order")) | |
638 'mouse-face 'highlight | 647 'mouse-face 'highlight |
639 'keymap (let ((map (make-sparse-keymap))) | 648 'keymap (let ((map (make-sparse-keymap))) |
640 (define-key map [header-line mouse-2] | 649 (if Buffer-menu-use-header-line |
641 `(lambda (e) | 650 (define-key map [header-line mouse-2] |
642 (interactive "e") | 651 `(lambda (e) |
643 (save-window-excursion | 652 (interactive "e") |
653 (save-window-excursion | |
654 (if e (mouse-select-window e)) | |
655 (Buffer-menu-sort ,column)))) | |
656 (define-key map [mouse-2] | |
657 `(lambda (e) | |
658 (interactive "e") | |
644 (if e (mouse-select-window e)) | 659 (if e (mouse-select-window e)) |
660 (Buffer-menu-sort ,column))) | |
661 (define-key map "\C-m" | |
662 `(lambda () (interactive) | |
645 (Buffer-menu-sort ,column)))) | 663 (Buffer-menu-sort ,column)))) |
646 map))) | 664 map))) |
647 | 665 |
648 (defun list-buffers-noselect (&optional files-only buffer-list) | 666 (defun list-buffers-noselect (&optional files-only buffer-list) |
649 "Create and return a buffer with a list of names of existing buffers. | 667 "Create and return a buffer with a list of names of existing buffers. |