annotate lisp/buff-menu.el @ 24419:30e478cd167e

(shell-command-default-error-buffer): Renamed from shell-command-on-region-default-error-buffer. (shell-command-on-region): Mention in echo area when there is some error output. Mention success or failure, too. Accumulate multiple error outputs going forward, with formfeed in between. Display the error buffer when we have put something in it. (shell-command): Add the ERROR-BUFFER argument feature.
author Karl Heuer <kwzh@gnu.org>
date Mon, 01 Mar 1999 03:19:32 +0000
parents aa96b119d0ef
children e8ec0085ff7b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
662
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 194
diff changeset
1 ;;; buff-menu.el --- buffer menu main function and support functions.
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 194
diff changeset
2
11234
4d2a2fe1d8d7 Update copyright.
Karl Heuer <kwzh@gnu.org>
parents: 11215
diff changeset
3 ;; Copyright (C) 1985, 86, 87, 93, 94, 95 Free Software Foundation, Inc.
845
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 801
diff changeset
4
801
e9e34745ae3b *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 777
diff changeset
5 ;; Maintainer: FSF
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 ;; This file is part of GNU Emacs.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 ;; GNU Emacs is free software; you can redistribute it and/or modify
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10 ;; it under the terms of the GNU General Public License as published by
735
ea0823fe7df5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 662
diff changeset
11 ;; the Free Software Foundation; either version 2, or (at your option)
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 ;; any later version.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 ;; GNU Emacs is distributed in the hope that it will be useful,
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 ;; GNU General Public License for more details.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12243
diff changeset
20 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12243
diff changeset
21 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12243
diff changeset
22 ;; Boston, MA 02111-1307, USA.
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23
2307
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
24 ;;; Commentary:
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
25
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
26 ;; Edit, delete, or change attributes of all currently active Emacs
3591
507f64624555 Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents: 2736
diff changeset
27 ;; buffers from a list summarizing their state. A good way to browse
2307
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
28 ;; any special or scratch buffers you have loaded, since you can't find
2334
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
29 ;; them by filename. The single entry point is `Buffer-menu-mode',
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
30 ;; normally bound to C-x C-b.
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
31
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
32 ;;; Change Log:
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
33
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
34 ;; Merged by esr with recent mods to Emacs 19 buff-menu, 23 Mar 1993
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
35 ;;
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
36 ;; Modified by Bob Weiner, Motorola, Inc., 4/14/89
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
37 ;;
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
38 ;; Added optional backup argument to 'Buffer-menu-unmark' to make it undelete
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
39 ;; current entry and then move to previous one.
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
40 ;;
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
41 ;; Based on FSF code dating back to 1985.
2307
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
42
801
e9e34745ae3b *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 777
diff changeset
43 ;;; Code:
2334
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
44
10592
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
45 ;;;Trying to preserve the old window configuration works well in
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
46 ;;;simple scenarios, when you enter the buffer menu, use it, and exit it.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
47 ;;;But it does strange things when you switch back to the buffer list buffer
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
48 ;;;with C-x b, later on, when the window configuration is different.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
49 ;;;The choice seems to be, either restore the window configuration
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
50 ;;;in all cases, or in no cases.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
51 ;;;I decided it was better not to restore the window config at all. -- rms.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
52
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
53 ;;;But since then, I changed buffer-menu to use the selected window,
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
54 ;;;so q now once again goes back to the previous window configuration.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
55
2736
d6ff54640930 (buffer-menu): Don't save a window config.
Richard M. Stallman <rms@gnu.org>
parents: 2422
diff changeset
56 ;;;(defvar Buffer-menu-window-config nil
d6ff54640930 (buffer-menu): Don't save a window config.
Richard M. Stallman <rms@gnu.org>
parents: 2422
diff changeset
57 ;;; "Window configuration saved from entry to `buffer-menu'.")
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59 ; Put buffer *Buffer List* into proper mode right away
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 ; so that from now on even list-buffers is enough to get a buffer menu.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61
6640
532754d63384 (Buffer-menu-mode): Highlight only the buffer name, not the whole line.
Karl Heuer <kwzh@gnu.org>
parents: 6638
diff changeset
62 (defvar Buffer-menu-buffer-column nil)
532754d63384 (Buffer-menu-mode): Highlight only the buffer name, not the whole line.
Karl Heuer <kwzh@gnu.org>
parents: 6638
diff changeset
63
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
64 (defvar Buffer-menu-mode-map nil "")
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
66 (if Buffer-menu-mode-map
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67 ()
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
68 (setq Buffer-menu-mode-map (make-keymap))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69 (suppress-keymap Buffer-menu-mode-map t)
21093
aa96b119d0ef (Buffer-menu-quit): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20655
diff changeset
70 (define-key Buffer-menu-mode-map "q" 'quit-window)
2736
d6ff54640930 (buffer-menu): Don't save a window config.
Richard M. Stallman <rms@gnu.org>
parents: 2422
diff changeset
71 (define-key Buffer-menu-mode-map "v" 'Buffer-menu-select)
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72 (define-key Buffer-menu-mode-map "2" 'Buffer-menu-2-window)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73 (define-key Buffer-menu-mode-map "1" 'Buffer-menu-1-window)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
74 (define-key Buffer-menu-mode-map "f" 'Buffer-menu-this-window)
20655
a259327d5333 (Buffer-menu-mode-map): Bind e like f.
Richard M. Stallman <rms@gnu.org>
parents: 18280
diff changeset
75 (define-key Buffer-menu-mode-map "e" 'Buffer-menu-this-window)
10269
988517b0b62a (Buffer-menu-mode-map): Bind C-m to Buffer-menu-this-window.
Richard M. Stallman <rms@gnu.org>
parents: 10194
diff changeset
76 (define-key Buffer-menu-mode-map "\C-m" 'Buffer-menu-this-window)
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
77 (define-key Buffer-menu-mode-map "o" 'Buffer-menu-other-window)
735
ea0823fe7df5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 662
diff changeset
78 (define-key Buffer-menu-mode-map "\C-o" 'Buffer-menu-switch-other-window)
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
79 (define-key Buffer-menu-mode-map "s" 'Buffer-menu-save)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
80 (define-key Buffer-menu-mode-map "d" 'Buffer-menu-delete)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
81 (define-key Buffer-menu-mode-map "k" 'Buffer-menu-delete)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
82 (define-key Buffer-menu-mode-map "\C-d" 'Buffer-menu-delete-backwards)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
83 (define-key Buffer-menu-mode-map "\C-k" 'Buffer-menu-delete)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
84 (define-key Buffer-menu-mode-map "x" 'Buffer-menu-execute)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
85 (define-key Buffer-menu-mode-map " " 'next-line)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86 (define-key Buffer-menu-mode-map "n" 'next-line)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
87 (define-key Buffer-menu-mode-map "p" 'previous-line)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88 (define-key Buffer-menu-mode-map "\177" 'Buffer-menu-backup-unmark)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89 (define-key Buffer-menu-mode-map "~" 'Buffer-menu-not-modified)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90 (define-key Buffer-menu-mode-map "?" 'describe-mode)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91 (define-key Buffer-menu-mode-map "u" 'Buffer-menu-unmark)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
92 (define-key Buffer-menu-mode-map "m" 'Buffer-menu-mark)
2378
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
93 (define-key Buffer-menu-mode-map "t" 'Buffer-menu-visit-tags-table)
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
94 (define-key Buffer-menu-mode-map "%" 'Buffer-menu-toggle-read-only)
18278
4f78346eb734 (Buffer-menu-bury): New command.
Richard M. Stallman <rms@gnu.org>
parents: 16401
diff changeset
95 (define-key Buffer-menu-mode-map "b" 'Buffer-menu-bury)
16401
249f797c3750 (Buffer-menu-revert): New function.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
96 (define-key Buffer-menu-mode-map "g" 'Buffer-menu-revert)
6609
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
97 (define-key Buffer-menu-mode-map [mouse-2] 'Buffer-menu-mouse-select)
2378
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
98 )
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100 ;; Buffer Menu mode is suitable only for specially formatted data.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
101 (put 'Buffer-menu-mode 'mode-class 'special)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
102
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
103 (defun Buffer-menu-mode ()
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
104 "Major mode for editing a list of buffers.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
105 Each line describes one of the buffers in Emacs.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
106 Letters do not insert themselves; instead, they are commands.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
107 \\<Buffer-menu-mode-map>
6609
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
108 \\[Buffer-menu-mouse-select] -- select buffer you click on, in place of the buffer menu.
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
109 \\[Buffer-menu-this-window] -- select current line's buffer in place of the buffer menu.
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
110 \\[Buffer-menu-other-window] -- select that buffer in another window,
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
111 so the buffer menu buffer remains visible in its window.
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
112 \\[Buffer-menu-switch-other-window] -- make another window display that buffer.
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
113 \\[Buffer-menu-mark] -- mark current line's buffer to be displayed.
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
114 \\[Buffer-menu-select] -- select current line's buffer.
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
115 Also show buffers marked with m, in other windows.
777
c99faf9381bb *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
116 \\[Buffer-menu-1-window] -- select that buffer in full-frame window.
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
117 \\[Buffer-menu-2-window] -- select that buffer in one window,
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
118 together with buffer selected before this one in another window.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
119 \\[Buffer-menu-visit-tags-table] -- visit-tags-table this buffer.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
120 \\[Buffer-menu-not-modified] -- clear modified-flag on that buffer.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
121 \\[Buffer-menu-save] -- mark that buffer to be saved, and move down.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
122 \\[Buffer-menu-delete] -- mark that buffer to be deleted, and move down.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
123 \\[Buffer-menu-delete-backwards] -- mark that buffer to be deleted, and move up.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
124 \\[Buffer-menu-execute] -- delete or save marked buffers.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
125 \\[Buffer-menu-unmark] -- remove all kinds of marks from current line.
2334
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
126 With prefix argument, also move up one line.
2378
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
127 \\[Buffer-menu-backup-unmark] -- back up a line and remove marks.
16401
249f797c3750 (Buffer-menu-revert): New function.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
128 \\[Buffer-menu-toggle-read-only] -- toggle read-only status of buffer on this line.
18280
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
129 \\[Buffer-menu-revert] -- update the list of buffers.
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
130 \\[Buffer-menu-bury] -- bury the buffer listed on this line."
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
131 (kill-all-local-variables)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
132 (use-local-map Buffer-menu-mode-map)
6638
61e40a447c92 (Buffer-menu-mode): Add mouse-face properties.
Karl Heuer <kwzh@gnu.org>
parents: 6609
diff changeset
133 (setq major-mode 'Buffer-menu-mode)
61e40a447c92 (Buffer-menu-mode): Add mouse-face properties.
Karl Heuer <kwzh@gnu.org>
parents: 6609
diff changeset
134 (setq mode-name "Buffer Menu")
8161
6b104526819d (Buffer-menu-revert-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7659
diff changeset
135 (make-local-variable 'revert-buffer-function)
6b104526819d (Buffer-menu-revert-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7659
diff changeset
136 (setq revert-buffer-function 'Buffer-menu-revert-function)
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
137 (setq truncate-lines t)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
138 (setq buffer-read-only t)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
139 (run-hooks 'buffer-menu-mode-hook))
8161
6b104526819d (Buffer-menu-revert-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7659
diff changeset
140
16401
249f797c3750 (Buffer-menu-revert): New function.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
141 (defun Buffer-menu-revert ()
249f797c3750 (Buffer-menu-revert): New function.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
142 "Update the list of buffers."
249f797c3750 (Buffer-menu-revert): New function.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
143 (interactive)
249f797c3750 (Buffer-menu-revert): New function.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
144 (revert-buffer))
249f797c3750 (Buffer-menu-revert): New function.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
145
8161
6b104526819d (Buffer-menu-revert-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7659
diff changeset
146 (defun Buffer-menu-revert-function (ignore1 ignore2)
6b104526819d (Buffer-menu-revert-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7659
diff changeset
147 (list-buffers))
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
148
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
149 (defun Buffer-menu-buffer (error-if-non-existent-p)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
150 "Return buffer described by this line of buffer menu."
11215
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
151 (let* ((where (save-excursion
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
152 (beginning-of-line)
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
153 (+ (point) Buffer-menu-buffer-column)))
11842
e8739cc8cd02 (Buffer-menu-buffer): Give more informative error
Karl Heuer <kwzh@gnu.org>
parents: 11234
diff changeset
154 (name (and (not (eobp)) (get-text-property where 'buffer-name))))
11215
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
155 (if name
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
156 (or (get-buffer name)
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
157 (if error-if-non-existent-p
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
158 (error "No buffer named `%s'" name)
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
159 nil))
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
160 (if error-if-non-existent-p
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
161 (error "No buffer on this line")
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
162 nil))))
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
163
756
0276f8eb306f *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 735
diff changeset
164 (defun buffer-menu (&optional arg)
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
165 "Make a menu of buffers so you can save, delete or select them.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
166 With argument, show only buffers that are visiting files.
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
167 Type ? after invocation to get help on commands available.
10592
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
168 Type q immediately to make the buffer menu go away."
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
169 (interactive "P")
2736
d6ff54640930 (buffer-menu): Don't save a window config.
Richard M. Stallman <rms@gnu.org>
parents: 2422
diff changeset
170 ;;; (setq Buffer-menu-window-config (current-window-configuration))
10592
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
171 (switch-to-buffer (list-buffers-noselect arg))
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
172 (message
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
173 "Commands: d, s, x, u; f, o, 1, 2, m, v; ~, %%; q to quit; ? for help."))
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
174
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
175 (defun buffer-menu-other-window (&optional arg)
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
176 "Display a list of buffers in another window.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
177 With the buffer list buffer, you can save, delete or select the buffers.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
178 With argument, show only buffers that are visiting files.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
179 Type ? after invocation to get help on commands available.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
180 Type q immediately to make the buffer menu go away."
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
181 (interactive "P")
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
182 ;;; (setq Buffer-menu-window-config (current-window-configuration))
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
183 (switch-to-buffer-other-window (list-buffers-noselect arg))
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
184 (message
2736
d6ff54640930 (buffer-menu): Don't save a window config.
Richard M. Stallman <rms@gnu.org>
parents: 2422
diff changeset
185 "Commands: d, s, x, u; f, o, 1, 2, m, v; ~, %%; q to quit; ? for help."))
d6ff54640930 (buffer-menu): Don't save a window config.
Richard M. Stallman <rms@gnu.org>
parents: 2422
diff changeset
186
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
187 (defun Buffer-menu-mark ()
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
188 "Mark buffer on this line for being displayed by \\<Buffer-menu-mode-map>\\[Buffer-menu-select] command."
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
189 (interactive)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
190 (beginning-of-line)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
191 (if (looking-at " [-M]")
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
192 (ding)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
193 (let ((buffer-read-only nil))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
194 (delete-char 1)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
195 (insert ?>)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
196 (forward-line 1))))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
197
2334
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
198 (defun Buffer-menu-unmark (&optional backup)
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
199 "Cancel all requested operations on buffer on this line and move down.
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
200 Optional ARG means move up."
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
201 (interactive "P")
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
202 (beginning-of-line)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
203 (if (looking-at " [-M]")
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
204 (ding)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
205 (let* ((buf (Buffer-menu-buffer t))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
206 (mod (buffer-modified-p buf))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
207 (readonly (save-excursion (set-buffer buf) buffer-read-only))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
208 (buffer-read-only nil))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
209 (delete-char 3)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
210 (insert (if readonly (if mod " *%" " %") (if mod " * " " ")))))
2334
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
211 (forward-line (if backup -1 1)))
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
212
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
213 (defun Buffer-menu-backup-unmark ()
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
214 "Move up and cancel all requested operations on buffer on line above."
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
215 (interactive)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
216 (forward-line -1)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
217 (Buffer-menu-unmark)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
218 (forward-line -1))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
219
9063
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
220 (defun Buffer-menu-delete (&optional arg)
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
221 "Mark buffer on this line to be deleted by \\<Buffer-menu-mode-map>\\[Buffer-menu-execute] command.
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
222 Prefix arg is how many buffers to delete.
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
223 Negative arg means delete backwards."
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
224 (interactive "p")
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
225 (beginning-of-line)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
226 (if (looking-at " [-M]") ;header lines
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
227 (ding)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
228 (let ((buffer-read-only nil))
9063
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
229 (if (or (null arg) (= arg 0))
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
230 (setq arg 1))
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
231 (while (> arg 0)
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
232 (delete-char 1)
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
233 (insert ?D)
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
234 (forward-line 1)
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
235 (setq arg (1- arg)))
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
236 (while (< arg 0)
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
237 (delete-char 1)
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
238 (insert ?D)
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
239 (forward-line -1)
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
240 (setq arg (1+ arg))))))
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
241
9063
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
242 (defun Buffer-menu-delete-backwards (&optional arg)
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
243 "Mark buffer on this line to be deleted by \\<Buffer-menu-mode-map>\\[Buffer-menu-execute] command
9063
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
244 and then move up one line. Prefix arg means move that many lines."
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
245 (interactive "p")
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
246 (Buffer-menu-delete (- (or arg 1)))
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
247 (while (looking-at " [-M]")
d6913bc11bb2 (Buffer-menu-delete): Handle prefix arg.
Richard M. Stallman <rms@gnu.org>
parents: 8365
diff changeset
248 (forward-line 1)))
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
249
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
250 (defun Buffer-menu-save ()
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
251 "Mark buffer on this line to be saved by \\<Buffer-menu-mode-map>\\[Buffer-menu-execute] command."
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
252 (interactive)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
253 (beginning-of-line)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
254 (if (looking-at " [-M]") ;header lines
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
255 (ding)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
256 (let ((buffer-read-only nil))
10765
638d2df80894 (Buffer-menu-save): Fix the test for header line.
Richard M. Stallman <rms@gnu.org>
parents: 10593
diff changeset
257 (forward-char 1)
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
258 (delete-char 1)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
259 (insert ?S)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
260 (forward-line 1))))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
261
8196
89db3662bcec (Buffer-menu-not-modified): Make `Buffer-menu-not-modified' handle an
Richard M. Stallman <rms@gnu.org>
parents: 8161
diff changeset
262 (defun Buffer-menu-not-modified (&optional arg)
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
263 "Mark buffer on this line as unmodified (no changes to save)."
8196
89db3662bcec (Buffer-menu-not-modified): Make `Buffer-menu-not-modified' handle an
Richard M. Stallman <rms@gnu.org>
parents: 8161
diff changeset
264 (interactive "P")
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
265 (save-excursion
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
266 (set-buffer (Buffer-menu-buffer t))
8196
89db3662bcec (Buffer-menu-not-modified): Make `Buffer-menu-not-modified' handle an
Richard M. Stallman <rms@gnu.org>
parents: 8161
diff changeset
267 (set-buffer-modified-p arg))
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
268 (save-excursion
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
269 (beginning-of-line)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
270 (forward-char 1)
8196
89db3662bcec (Buffer-menu-not-modified): Make `Buffer-menu-not-modified' handle an
Richard M. Stallman <rms@gnu.org>
parents: 8161
diff changeset
271 (if (= (char-after (point)) (if arg ? ?*))
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
272 (let ((buffer-read-only nil))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
273 (delete-char 1)
8196
89db3662bcec (Buffer-menu-not-modified): Make `Buffer-menu-not-modified' handle an
Richard M. Stallman <rms@gnu.org>
parents: 8161
diff changeset
274 (insert (if arg ?* ? ))))))
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
275
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
276 (defun Buffer-menu-execute ()
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
277 "Save and/or delete buffers marked with \\<Buffer-menu-mode-map>\\[Buffer-menu-save] or \\<Buffer-menu-mode-map>\\[Buffer-menu-delete] commands."
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
278 (interactive)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
279 (save-excursion
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
280 (goto-char (point-min))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
281 (forward-line 1)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
282 (while (re-search-forward "^.S" nil t)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
283 (let ((modp nil))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
284 (save-excursion
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
285 (set-buffer (Buffer-menu-buffer t))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
286 (save-buffer)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
287 (setq modp (buffer-modified-p)))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
288 (let ((buffer-read-only nil))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
289 (delete-char -1)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
290 (insert (if modp ?* ? ))))))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
291 (save-excursion
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
292 (goto-char (point-min))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
293 (forward-line 1)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
294 (let ((buff-menu-buffer (current-buffer))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
295 (buffer-read-only nil))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
296 (while (search-forward "\nD" nil t)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
297 (forward-char -1)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
298 (let ((buf (Buffer-menu-buffer nil)))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
299 (or (eq buf nil)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
300 (eq buf buff-menu-buffer)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
301 (save-excursion (kill-buffer buf))))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
302 (if (Buffer-menu-buffer nil)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
303 (progn (delete-char 1)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
304 (insert ? ))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
305 (delete-region (point) (progn (forward-line 1) (point)))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
306 (forward-char -1))))))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
307
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
308 (defun Buffer-menu-select ()
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
309 "Select this line's buffer; also display buffers marked with `>'.
10592
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
310 You can mark buffers with the \\<Buffer-menu-mode-map>\\[Buffer-menu-mark] command.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
311 This command deletes and replaces all the previously existing windows
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
312 in the selected frame."
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
313 (interactive)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
314 (let ((buff (Buffer-menu-buffer t))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
315 (menu (current-buffer))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
316 (others ())
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
317 tem)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
318 (goto-char (point-min))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
319 (while (search-forward "\n>" nil t)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
320 (setq tem (Buffer-menu-buffer t))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
321 (let ((buffer-read-only nil))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
322 (delete-char -1)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
323 (insert ?\ ))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
324 (or (eq tem buff) (memq tem others) (setq others (cons tem others))))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
325 (setq others (nreverse others)
777
c99faf9381bb *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
326 tem (/ (1- (frame-height)) (1+ (length others))))
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
327 (delete-other-windows)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
328 (switch-to-buffer buff)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
329 (or (eq menu buff)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
330 (bury-buffer menu))
2334
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
331 (if (equal (length others) 0)
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
332 (progn
2736
d6ff54640930 (buffer-menu): Don't save a window config.
Richard M. Stallman <rms@gnu.org>
parents: 2422
diff changeset
333 ;;; ;; Restore previous window configuration before displaying
d6ff54640930 (buffer-menu): Don't save a window config.
Richard M. Stallman <rms@gnu.org>
parents: 2422
diff changeset
334 ;;; ;; selected buffers.
d6ff54640930 (buffer-menu): Don't save a window config.
Richard M. Stallman <rms@gnu.org>
parents: 2422
diff changeset
335 ;;; (if Buffer-menu-window-config
d6ff54640930 (buffer-menu): Don't save a window config.
Richard M. Stallman <rms@gnu.org>
parents: 2422
diff changeset
336 ;;; (progn
d6ff54640930 (buffer-menu): Don't save a window config.
Richard M. Stallman <rms@gnu.org>
parents: 2422
diff changeset
337 ;;; (set-window-configuration Buffer-menu-window-config)
d6ff54640930 (buffer-menu): Don't save a window config.
Richard M. Stallman <rms@gnu.org>
parents: 2422
diff changeset
338 ;;; (setq Buffer-menu-window-config nil)))
2334
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
339 (switch-to-buffer buff))
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
340 (while others
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
341 (split-window nil tem)
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
342 (other-window 1)
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
343 (switch-to-buffer (car others))
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
344 (setq others (cdr others)))
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
345 (other-window 1) ;back to the beginning!
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
346 )))
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
347
10592
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
348
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
349
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
350 (defun Buffer-menu-visit-tags-table ()
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
351 "Visit the tags table in the buffer on this line. See `visit-tags-table'."
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
352 (interactive)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
353 (let ((file (buffer-file-name (Buffer-menu-buffer t))))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
354 (if file
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
355 (visit-tags-table file)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
356 (error "Specified buffer has no file"))))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
357
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
358 (defun Buffer-menu-1-window ()
777
c99faf9381bb *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
359 "Select this line's buffer, alone, in full frame."
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
360 (interactive)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
361 (switch-to-buffer (Buffer-menu-buffer t))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
362 (bury-buffer (other-buffer))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
363 (delete-other-windows))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
364
6609
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
365 (defun Buffer-menu-mouse-select (event)
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
366 "Select the buffer whose line you click on."
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
367 (interactive "e")
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
368 (let (buffer)
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
369 (save-excursion
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
370 (set-buffer (window-buffer (posn-window (event-end event))))
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
371 (save-excursion
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
372 (goto-char (posn-point (event-end event)))
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
373 (setq buffer (Buffer-menu-buffer t))))
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
374 (select-window (posn-window (event-end event)))
7659
ed3bbbdd9ef5 (Buffer-menu-mouse-select): Handle dedicated window.
Richard M. Stallman <rms@gnu.org>
parents: 7298
diff changeset
375 (if (and (window-dedicated-p (selected-window))
ed3bbbdd9ef5 (Buffer-menu-mouse-select): Handle dedicated window.
Richard M. Stallman <rms@gnu.org>
parents: 7298
diff changeset
376 (eq (selected-window) (frame-root-window)))
ed3bbbdd9ef5 (Buffer-menu-mouse-select): Handle dedicated window.
Richard M. Stallman <rms@gnu.org>
parents: 7298
diff changeset
377 (switch-to-buffer-other-frame buffer)
ed3bbbdd9ef5 (Buffer-menu-mouse-select): Handle dedicated window.
Richard M. Stallman <rms@gnu.org>
parents: 7298
diff changeset
378 (switch-to-buffer buffer))))
6609
3b1eb7f1eba1 (Buffer-menu-mouse-select): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6084
diff changeset
379
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
380 (defun Buffer-menu-this-window ()
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
381 "Select this line's buffer in this window."
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
382 (interactive)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
383 (switch-to-buffer (Buffer-menu-buffer t)))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
384
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
385 (defun Buffer-menu-other-window ()
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
386 "Select this line's buffer in other window, leaving buffer menu visible."
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
387 (interactive)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
388 (switch-to-buffer-other-window (Buffer-menu-buffer t)))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
389
735
ea0823fe7df5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 662
diff changeset
390 (defun Buffer-menu-switch-other-window ()
ea0823fe7df5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 662
diff changeset
391 "Make the other window select this line's buffer.
ea0823fe7df5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 662
diff changeset
392 The current window remains selected."
ea0823fe7df5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 662
diff changeset
393 (interactive)
ea0823fe7df5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 662
diff changeset
394 (display-buffer (Buffer-menu-buffer t)))
ea0823fe7df5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 662
diff changeset
395
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
396 (defun Buffer-menu-2-window ()
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
397 "Select this line's buffer, with previous buffer in second window."
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
398 (interactive)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
399 (let ((buff (Buffer-menu-buffer t))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
400 (menu (current-buffer))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
401 (pop-up-windows t))
2334
ec4ffd67483d Incorporated changes from Bob Weiner's enhanced buff-menu from the LCD
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
402 (delete-other-windows)
194
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
403 (switch-to-buffer (other-buffer))
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
404 (pop-to-buffer buff)
5b0d1a9cf37e Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
405 (bury-buffer menu)))
662
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 194
diff changeset
406
2378
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
407 (defun Buffer-menu-toggle-read-only ()
6084
d42c85701055 (Buffer-menu-toggle-read-only): Change toggle-read-only to
Karl Heuer <kwzh@gnu.org>
parents: 3591
diff changeset
408 "Toggle read-only status of buffer on this line, perhaps via version control."
2378
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
409 (interactive)
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
410 (let (char)
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
411 (save-excursion
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
412 (set-buffer (Buffer-menu-buffer t))
6084
d42c85701055 (Buffer-menu-toggle-read-only): Change toggle-read-only to
Karl Heuer <kwzh@gnu.org>
parents: 3591
diff changeset
413 (vc-toggle-read-only)
2378
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
414 (setq char (if buffer-read-only ?% ? )))
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
415 (save-excursion
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
416 (beginning-of-line)
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
417 (forward-char 2)
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
418 (if (/= (following-char) char)
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
419 (let (buffer-read-only)
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
420 (delete-char 1)
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
421 (insert char))))))
c5d0140aa7b6 (Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2334
diff changeset
422
18278
4f78346eb734 (Buffer-menu-bury): New command.
Richard M. Stallman <rms@gnu.org>
parents: 16401
diff changeset
423 (defun Buffer-menu-bury ()
4f78346eb734 (Buffer-menu-bury): New command.
Richard M. Stallman <rms@gnu.org>
parents: 16401
diff changeset
424 "Bury the buffer listed on this line."
4f78346eb734 (Buffer-menu-bury): New command.
Richard M. Stallman <rms@gnu.org>
parents: 16401
diff changeset
425 (interactive)
18280
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
426 (beginning-of-line)
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
427 (if (looking-at " [-M]") ;header lines
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
428 (ding)
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
429 (save-excursion
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
430 (beginning-of-line)
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
431 (bury-buffer (Buffer-menu-buffer t))
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
432 (let ((line (buffer-substring (point) (progn (forward-line 1) (point))))
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
433 (buffer-read-only nil))
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
434 (delete-region (point) (progn (forward-line -1) (point)))
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
435 (goto-char (point-max))
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
436 (insert line))
f693db11df45 (Buffer-menu-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 18278
diff changeset
437 (message "Buried buffer moved to the end"))))
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
438
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
439
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
440 (define-key ctl-x-map "\C-b" 'list-buffers)
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
441
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
442 (defun list-buffers (&optional files-only)
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
443 "Display a list of names of existing buffers.
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
444 The list is displayed in a buffer named `*Buffer List*'.
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
445 Note that buffers with names starting with spaces are omitted.
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
446 Non-null optional arg FILES-ONLY means mention only file buffers.
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
447
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
448 The M column contains a * for buffers that are modified.
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
449 The R column contains a % for buffers that are read-only."
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
450 (interactive "P")
10592
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
451 (display-buffer (list-buffers-noselect files-only)))
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
452
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
453 (defun list-buffers-noselect (&optional files-only)
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
454 "Create and return a buffer with a list of names of existing buffers.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
455 The buffer is named `*Buffer List*'.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
456 Note that buffers with names starting with spaces are omitted.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
457 Non-null optional arg FILES-ONLY means mention only file buffers.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
458
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
459 The M column contains a * for buffers that are modified.
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
460 The R column contains a % for buffers that are read-only."
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
461 (let ((old-buffer (current-buffer))
10592
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
462 (standard-output standard-output)
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
463 desired-point)
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
464 (save-excursion
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
465 (set-buffer (get-buffer-create "*Buffer List*"))
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
466 (setq buffer-read-only nil)
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
467 (erase-buffer)
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
468 (setq standard-output (current-buffer))
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
469 (princ "\
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
470 MR Buffer Size Mode File
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
471 -- ------ ---- ---- ----
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
472 ")
11215
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
473 ;; Record the column where buffer names start.
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
474 (setq Buffer-menu-buffer-column 4)
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
475 (let ((bl (buffer-list)))
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
476 (while bl
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
477 (let* ((buffer (car bl))
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
478 (name (buffer-name buffer))
10593
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
479 (file (buffer-file-name buffer))
11215
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
480 this-buffer-line-start
10593
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
481 this-buffer-read-only
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
482 this-buffer-size
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
483 this-buffer-mode-name
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
484 this-buffer-directory)
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
485 (save-excursion
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
486 (set-buffer buffer)
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
487 (setq this-buffer-read-only buffer-read-only)
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
488 (setq this-buffer-size (buffer-size))
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
489 (setq this-buffer-mode-name
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
490 (if (eq buffer standard-output)
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
491 "Buffer Menu" mode-name))
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
492 (or file
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
493 ;; No visited file. Check local value of
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
494 ;; list-buffers-directory.
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
495 (if (and (boundp 'list-buffers-directory)
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
496 list-buffers-directory)
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
497 (setq this-buffer-directory list-buffers-directory))))
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
498 (cond
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
499 ;; Don't mention internal buffers.
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
500 ((string= (substring name 0 1) " "))
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
501 ;; Maybe don't mention buffers without files.
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
502 ((and files-only (not file)))
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
503 ;; Otherwise output info.
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
504 (t
11215
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
505 (setq this-buffer-line-start (point))
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
506 ;; Identify current buffer.
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
507 (if (eq buffer old-buffer)
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
508 (progn
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
509 (setq desired-point (point))
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
510 (princ "."))
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
511 (princ " "))
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
512 ;; Identify modified buffers.
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
513 (princ (if (buffer-modified-p buffer) "*" " "))
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
514 ;; Handle readonly status. The output buffer is special
11215
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
515 ;; cased to appear readonly; it is actually made so at a later
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
516 ;; date.
10593
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
517 (princ (if (or (eq buffer standard-output)
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
518 this-buffer-read-only)
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
519 "% "
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
520 " "))
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
521 (princ name)
11215
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
522 ;; Put the buffer name into a text property
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
523 ;; so we don't have to extract it from the text.
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
524 ;; This way we avoid problems with unusual buffer names.
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
525 (setq this-buffer-line-start
896932ac8ced (list-buffers-noselect): Put buffer name in a text
Richard M. Stallman <rms@gnu.org>
parents: 10765
diff changeset
526 (+ this-buffer-line-start Buffer-menu-buffer-column))
12243
ef2749cf206f (list-buffers-noselect): Don't let space after buf name
Richard M. Stallman <rms@gnu.org>
parents: 11842
diff changeset
527 (let ((name-end (point)))
ef2749cf206f (list-buffers-noselect): Don't let space after buf name
Richard M. Stallman <rms@gnu.org>
parents: 11842
diff changeset
528 (indent-to 17 2)
ef2749cf206f (list-buffers-noselect): Don't let space after buf name
Richard M. Stallman <rms@gnu.org>
parents: 11842
diff changeset
529 (put-text-property this-buffer-line-start name-end
ef2749cf206f (list-buffers-noselect): Don't let space after buf name
Richard M. Stallman <rms@gnu.org>
parents: 11842
diff changeset
530 'buffer-name name)
ef2749cf206f (list-buffers-noselect): Don't let space after buf name
Richard M. Stallman <rms@gnu.org>
parents: 11842
diff changeset
531 (put-text-property this-buffer-line-start name-end
ef2749cf206f (list-buffers-noselect): Don't let space after buf name
Richard M. Stallman <rms@gnu.org>
parents: 11842
diff changeset
532 'mouse-face 'highlight))
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
533 (let (size
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
534 mode
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
535 (excess (- (current-column) 17)))
10593
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
536 (setq size (format "%8d" this-buffer-size))
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
537 ;; Ack -- if looking at the *Buffer List* buffer,
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
538 ;; always use "Buffer Menu" mode. Otherwise the
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
539 ;; first time the buffer is created, the mode will be wrong.
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
540 (setq mode this-buffer-mode-name)
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
541 (while (and (> excess 0) (= (aref size 0) ?\ ))
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
542 (setq size (substring size 1))
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
543 (setq excess (1- excess)))
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
544 (princ size)
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
545 (indent-to 27 1)
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
546 (princ mode))
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
547 (indent-to 40 1)
10593
7ae93c2ee7a2 (list-buffers-noselect): Handle read-only properly.
Richard M. Stallman <rms@gnu.org>
parents: 10592
diff changeset
548 (or file (setq file this-buffer-directory))
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
549 (if file
10420
c8c4034ee573 Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 10419
diff changeset
550 (princ file))
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
551 (princ "\n"))))
10592
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
552 (setq bl (cdr bl))))
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
553 (Buffer-menu-mode)
10592
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
554 ;; DESIRED-POINT doesn't have to be set; it is not when the
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
555 ;; current buffer is not displayed for some reason.
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
556 (and desired-point
10592
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
557 (goto-char desired-point))
bbb68f0d31c6 (list-buffers-noselect): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents: 10421
diff changeset
558 (current-buffer))))
10419
cb6f68d16210 (list-buffers): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10269
diff changeset
559
662
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 194
diff changeset
560 ;;; buff-menu.el ends here