annotate lisp/chistory.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents 1d1d5d9bd884
children 376148b31b5e
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: 584
diff changeset
1 ;;; chistory.el --- list command history
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 584
diff changeset
2
74439
ddcbd2c1b70d Update copyright years.
Glenn Morris <rgm@gnu.org>
parents: 68651
diff changeset
3 ;; Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 105994
diff changeset
4 ;; 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
845
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
5
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
6 ;; Author: K. Shane Hartman
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
7 ;; Maintainer: FSF
45078
829beb9a6a4b Follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 33941
diff changeset
8 ;; Keywords: convenience
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10 ;; This file is part of GNU Emacs.
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
12 ;; GNU Emacs is free software: you can redistribute it and/or modify
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
14 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
15 ;; (at your option) any later version.
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20 ;; GNU General Public License for more details.
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
23 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
25 ;;; Commentary:
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27 ;; This really has nothing to do with list-command-history per se, but
9626
e928e72d3342 (repeat-matching-complex-command): Fix check for empty pattern. Simplify.
Karl Heuer <kwzh@gnu.org>
parents: 2452
diff changeset
28 ;; its a nice alternative to C-x ESC ESC (repeat-complex-command) and
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29 ;; functions as a lister if given no pattern. It's not important
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30 ;; enough to warrant a file of its own.
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
31
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
32 ;;; Code:
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
33
21088
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
34 (defgroup chistory nil
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
35 "List command history."
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
36 :group 'keyboard)
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
37
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 ;;;###autoload
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39 (defun repeat-matching-complex-command (&optional pattern)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 "Edit and re-evaluate complex command with name matching PATTERN.
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 Matching occurrences are displayed, most recent first, until you select
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 a form for evaluation. If PATTERN is empty (or nil), every form in the
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43 command history is offered. The form is placed in the minibuffer for
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 editing and the result is evaluated."
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45 (interactive "sRedo Command (regexp): ")
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46 (if pattern
9626
e928e72d3342 (repeat-matching-complex-command): Fix check for empty pattern. Simplify.
Karl Heuer <kwzh@gnu.org>
parents: 2452
diff changeset
47 (if (string-match "[^ \t]" pattern)
e928e72d3342 (repeat-matching-complex-command): Fix check for empty pattern. Simplify.
Karl Heuer <kwzh@gnu.org>
parents: 2452
diff changeset
48 (setq pattern (substring pattern (match-beginning 0)))
e928e72d3342 (repeat-matching-complex-command): Fix check for empty pattern. Simplify.
Karl Heuer <kwzh@gnu.org>
parents: 2452
diff changeset
49 (setq pattern nil)))
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50 (let ((history command-history)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51 (temp)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52 (what))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
53 (while (and history (not what))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54 (setq temp (car history))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 (if (and (or (not pattern) (string-match pattern (symbol-name (car temp))))
9626
e928e72d3342 (repeat-matching-complex-command): Fix check for empty pattern. Simplify.
Karl Heuer <kwzh@gnu.org>
parents: 2452
diff changeset
56 (y-or-n-p (format "Redo %S? " temp)))
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
57 (setq what (car history))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58 (setq history (cdr history))))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59 (if (not what)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 (error "Command history exhausted")
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61 ;; Try to remove any useless command history element for this command.
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
62 (if (eq (car (car command-history)) 'repeat-matching-complex-command)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63 (setq command-history (cdr command-history)))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
64 (edit-and-eval-command "Redo: " what))))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65
21088
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
66 (defcustom default-command-history-filter-garbage
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67 '(command-history-mode
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
68 list-command-history
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69 electric-command-history)
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 96381
diff changeset
70 "A list of symbols to be ignored by `default-command-history-filter'.
21088
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
71 If that function is given a list whose car is an element of this list,
9626
e928e72d3342 (repeat-matching-complex-command): Fix check for empty pattern. Simplify.
Karl Heuer <kwzh@gnu.org>
parents: 2452
diff changeset
72 then it will return non-nil (indicating the list should be discarded from
e928e72d3342 (repeat-matching-complex-command): Fix check for empty pattern. Simplify.
Karl Heuer <kwzh@gnu.org>
parents: 2452
diff changeset
73 the history).
21088
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
74 Initially, all commands related to the command history are discarded."
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
75 :type '(repeat symbol)
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
76 :group 'chistory)
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
77
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
78 (defvar list-command-history-filter 'default-command-history-filter
9626
e928e72d3342 (repeat-matching-complex-command): Fix check for empty pattern. Simplify.
Karl Heuer <kwzh@gnu.org>
parents: 2452
diff changeset
79 "Predicate to test which commands should be excluded from the history listing.
e928e72d3342 (repeat-matching-complex-command): Fix check for empty pattern. Simplify.
Karl Heuer <kwzh@gnu.org>
parents: 2452
diff changeset
80 If non-nil, should be the name of a function of one argument.
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
81 It is passed each element of the command history when
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
82 \\[list-command-history] is called. If the filter returns non-nil for
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
83 some element, that element is excluded from the history listing. The
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
84 default filter removes commands associated with the command-history.")
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
85
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86 (defun default-command-history-filter (frob)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
87 "Filter commands matching `default-command-history-filter-garbage' list
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88 from the command history."
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89 (or (not (consp frob))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90 (memq (car frob) default-command-history-filter-garbage)))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91
21088
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
92 (defcustom list-command-history-max 32
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 96381
diff changeset
93 "If non-nil, maximum length of the listing produced by `list-command-history'."
21088
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
94 :type '(choice integer (const nil))
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
95 :group 'chistory)
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
96
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97 ;;;###autoload
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98 (defun list-command-history ()
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99 "List history of commands typed to minibuffer.
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100 The number of commands listed is controlled by `list-command-history-max'.
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
101 Calls value of `list-command-history-filter' (if non-nil) on each history
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
102 element to judge if that element should be excluded from the list.
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
103
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
104 The buffer is left in Command History mode."
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
105 (interactive)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
106 (with-output-to-temp-buffer
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
107 "*Command History*"
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
108 (let ((history command-history)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
109 (buffer-read-only nil)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
110 (count (or list-command-history-max -1)))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
111 (while (and (/= count 0) history)
96381
e495cfc33b5e (list-command-history): Use `bound-and-true-p'.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
112 (if (and (bound-and-true-p list-command-history-filter)
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
113 (funcall list-command-history-filter (car history)))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
114 nil
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
115 (setq count (1- count))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
116 (prin1 (car history))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
117 (terpri))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
118 (setq history (cdr history))))
105994
009383a57ce8 * x-dnd.el (x-dnd-maybe-call-test-function):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 100908
diff changeset
119 (with-current-buffer "*Command History*"
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
120 (goto-char (point-min))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
121 (if (eobp)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
122 (error "No command history")
27065
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
123 (command-history-mode)))))
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
124
96381
e495cfc33b5e (list-command-history): Use `bound-and-true-p'.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
125 (defvar command-history-map
e495cfc33b5e (list-command-history): Use `bound-and-true-p'.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
126 (let ((map (make-sparse-keymap)))
e495cfc33b5e (list-command-history): Use `bound-and-true-p'.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
127 (set-keymap-parent map lisp-mode-shared-map)
e495cfc33b5e (list-command-history): Use `bound-and-true-p'.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
128 (suppress-keymap map)
e495cfc33b5e (list-command-history): Use `bound-and-true-p'.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
129 (define-key map "x" 'command-history-repeat)
e495cfc33b5e (list-command-history): Use `bound-and-true-p'.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
130 (define-key map "\n" 'next-line)
e495cfc33b5e (list-command-history): Use `bound-and-true-p'.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
131 (define-key map "\r" 'next-line)
e495cfc33b5e (list-command-history): Use `bound-and-true-p'.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
132 (define-key map "\177" 'previous-line)
e495cfc33b5e (list-command-history): Use `bound-and-true-p'.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
133 map)
e495cfc33b5e (list-command-history): Use `bound-and-true-p'.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
134 "Keymap for `command-history-mode'.")
48915
36f7a48a9735 (command-history-map): Move definition up.
Richard M. Stallman <rms@gnu.org>
parents: 48778
diff changeset
135
27065
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
136 (defun command-history-mode ()
48778
d414c281a629 * ibuffer.el (ibuffer-mode): If `show-paren-mode' is enabled,
John Paul Wallington <jpw@pobox.com>
parents: 45078
diff changeset
137 "Major mode for listing and repeating recent commands.
d414c281a629 * ibuffer.el (ibuffer-mode): If `show-paren-mode' is enabled,
John Paul Wallington <jpw@pobox.com>
parents: 45078
diff changeset
138
d414c281a629 * ibuffer.el (ibuffer-mode): If `show-paren-mode' is enabled,
John Paul Wallington <jpw@pobox.com>
parents: 45078
diff changeset
139 Keybindings:
d414c281a629 * ibuffer.el (ibuffer-mode): If `show-paren-mode' is enabled,
John Paul Wallington <jpw@pobox.com>
parents: 45078
diff changeset
140 \\{command-history-map}"
d414c281a629 * ibuffer.el (ibuffer-mode): If `show-paren-mode' is enabled,
John Paul Wallington <jpw@pobox.com>
parents: 45078
diff changeset
141 (interactive)
27065
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
142 (Command-history-setup)
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
143 (setq major-mode 'command-history-mode)
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
144 (setq mode-name "Command History")
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
145 (use-local-map command-history-map)
62721
049538abf38f (command-history-mode): Use run-mode-hooks.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
146 (run-mode-hooks 'command-history-mode-hook))
27065
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
147
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
148 (defun Command-history-setup ()
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
149 (kill-all-local-variables)
33941
10c41fa2dafe (Command-history-setup): Remove extraneous `keymap'
Gerd Moellmann <gerd@gnu.org>
parents: 32367
diff changeset
150 (use-local-map command-history-map)
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
151 (lisp-mode-variables nil)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
152 (set-syntax-table emacs-lisp-mode-syntax-table)
27065
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
153 (setq buffer-read-only t))
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
154
21088
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
155 (defcustom command-history-hook nil
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
156 "If non-nil, its value is called on entry to `command-history-mode'."
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
157 :type 'hook
ac1673121774 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
158 :group 'chistory)
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
159
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
160 (defun command-history-repeat ()
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
161 "Repeat the command shown on the current line.
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
162 The buffer for that command is the previous current buffer."
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
163 (interactive)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
164 (save-excursion
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
165 (eval (prog1
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
166 (save-excursion
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
167 (beginning-of-line)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
168 (read (current-buffer)))
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
169 (set-buffer
2452
5c9d9b33f249 (repeat-history-command): Bug fix. Someone forgot a car.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
170 (car (cdr (buffer-list))))))))
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
171
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
172 ;;;###autoload
27065
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
173 (defun command-history ()
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
174 "Examine commands from `command-history' in a buffer.
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
175 The number of commands listed is controlled by `list-command-history-max'.
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
176 The command history is filtered by `list-command-history-filter' if non-nil.
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
177 Use \\<command-history-map>\\[command-history-repeat] to repeat the command on the current line.
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
178
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
179 Otherwise much like Emacs-Lisp Mode except that there is no self-insertion
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
180 and digits provide prefix arguments. Tab does not indent.
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
181 \\{command-history-map}
27065
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
182
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
183 This command always recompiles the Command History listing
bd4ad2d321a7 (command-history): Renamed from command-history-mode.
Richard M. Stallman <rms@gnu.org>
parents: 21088
diff changeset
184 and runs the normal hook `command-history-hook'."
411
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
185 (interactive)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
186 (list-command-history)
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
187 (pop-to-buffer "*Command History*")
cb75ab565260 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
188 (run-hooks 'command-history-hook))
584
4cd7543be581 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 411
diff changeset
189
4cd7543be581 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 411
diff changeset
190 (provide 'chistory)
4cd7543be581 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 411
diff changeset
191
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 79721
diff changeset
192 ;; arch-tag: c201a0cd-89f2-4d39-a532-4cb309391dbd
662
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 584
diff changeset
193 ;;; chistory.el ends here