annotate lisp/echistory.el @ 4413:5a00cec8e9b0

(fill-region-as-paragraph): When we take one word after the fill column, don't stop at period with just one space. When checking whether at beginning of line, if no fill prefix, ignore intervening whitespace.
author Richard M. Stallman <rms@gnu.org>
date Mon, 02 Aug 1993 05:55:56 +0000
parents c37784da62e7
children 8b71746369ed
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: 258
diff changeset
1 ;;; echistory.el --- Electric Command History Mode
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 258
diff changeset
2
846
20674ae6bf52 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
3 ;; Copyright (C) 1985 Free Software Foundation, Inc.
20674ae6bf52 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
4
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
5 ;; Author: K. Shane Hartman
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
6 ;; Maintainer: FSF
198
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
198
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 ;; any later version.
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; GNU General Public License for more details.
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
24 ;;; Code:
198
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26 (require 'electric) ; command loop
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27 (require 'chistory) ; history lister
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28
258
1e0bc00dca7a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 198
diff changeset
29 ;;;###autoload
198
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 (defun Electric-command-history-redo-expression (&optional noconfirm)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31 "Edit current history line in minibuffer and execute result.
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 With prefix arg NOCONFIRM, execute current line as-is without editing."
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 (interactive "P")
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 (let (todo)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 (save-excursion
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 (set-buffer "*Command History*")
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 (beginning-of-line)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 (setq todo (read (current-buffer)))
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39 (if (boundp 'electric-history-in-progress)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
40 (if todo (throw 'electric-history-quit (list noconfirm todo)))))))
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 (defvar electric-history-map ())
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 (if electric-history-map
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 ()
3651
c37784da62e7 (electric-history-map): Don't use fillarray;
Richard M. Stallman <rms@gnu.org>
parents: 919
diff changeset
45 (setq electric-history-map (make-sparse-keymap))
c37784da62e7 (electric-history-map): Don't use fillarray;
Richard M. Stallman <rms@gnu.org>
parents: 919
diff changeset
46 (define-key electric-history-map [t] 'Electric-history-undefined)
c37784da62e7 (electric-history-map): Don't use fillarray;
Richard M. Stallman <rms@gnu.org>
parents: 919
diff changeset
47 (define-key electric-history-map "\e" (make-sparse-keymap))
c37784da62e7 (electric-history-map): Don't use fillarray;
Richard M. Stallman <rms@gnu.org>
parents: 919
diff changeset
48 (define-key electric-history-map [?\e t] 'Electric-history-undefined)
198
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 (define-key electric-history-map "\C-u" 'universal-argument)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 (define-key electric-history-map " " 'Electric-command-history-redo-expression)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 (define-key electric-history-map "!" 'Electric-command-history-redo-expression)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52 (define-key electric-history-map "\e\C-x" 'eval-sexp)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 (define-key electric-history-map "\e\C-d" 'down-list)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 (define-key electric-history-map "\e\C-u" 'backward-up-list)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 (define-key electric-history-map "\e\C-b" 'backward-sexp)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56 (define-key electric-history-map "\e\C-f" 'forward-sexp)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 (define-key electric-history-map "\e\C-a" 'beginning-of-defun)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58 (define-key electric-history-map "\e\C-e" 'end-of-defun)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 (define-key electric-history-map "\e\C-n" 'forward-list)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60 (define-key electric-history-map "\e\C-p" 'backward-list)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 (define-key electric-history-map "q" 'Electric-history-quit)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62 (define-key electric-history-map "\C-c" nil)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 (define-key electric-history-map "\C-c\C-c" 'Electric-history-quit)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 (define-key electric-history-map "\C-]" 'Electric-history-quit)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 (define-key electric-history-map "\C-z" 'suspend-emacs)
919
567b06901789 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 918
diff changeset
66 (define-key electric-history-map (char-to-string help-char) 'Helper-help)
198
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 (define-key electric-history-map "?" 'Helper-describe-bindings)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 (define-key electric-history-map "\e>" 'end-of-buffer)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 (define-key electric-history-map "\e<" 'beginning-of-buffer)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70 (define-key electric-history-map "\n" 'next-line)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71 (define-key electric-history-map "\r" 'next-line)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72 (define-key electric-history-map "\177" 'previous-line)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73 (define-key electric-history-map "\C-n" 'next-line)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
74 (define-key electric-history-map "\C-p" 'previous-line)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75 (define-key electric-history-map "\ev" 'scroll-down)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
76 (define-key electric-history-map "\C-v" 'scroll-up)
3651
c37784da62e7 (electric-history-map): Don't use fillarray;
Richard M. Stallman <rms@gnu.org>
parents: 919
diff changeset
77 (define-key electric-history-map [home] 'beginning-of-buffer)
c37784da62e7 (electric-history-map): Don't use fillarray;
Richard M. Stallman <rms@gnu.org>
parents: 919
diff changeset
78 (define-key electric-history-map [down] 'next-line)
c37784da62e7 (electric-history-map): Don't use fillarray;
Richard M. Stallman <rms@gnu.org>
parents: 919
diff changeset
79 (define-key electric-history-map [up] 'previous-line)
c37784da62e7 (electric-history-map): Don't use fillarray;
Richard M. Stallman <rms@gnu.org>
parents: 919
diff changeset
80 (define-key electric-history-map [prior] 'scroll-down)
c37784da62e7 (electric-history-map): Don't use fillarray;
Richard M. Stallman <rms@gnu.org>
parents: 919
diff changeset
81 (define-key electric-history-map [next] 'scroll-up)
198
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
82 (define-key electric-history-map "\C-l" 'recenter)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
83 (define-key electric-history-map "\e\C-v" 'scroll-other-window))
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
84
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
85 (defvar electric-command-history-hook nil
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
86 "If non-nil, its value is called by `electric-command-history'.")
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
87
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
88 (defun electric-command-history ()
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
89 "\\<electric-history-map>Major mode for examining and redoing commands from `command-history'.
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90 This pops up a window with the Command History listing.
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
91 The number of command listed is controlled by `list-command-history-max'.
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
92 The command history is filtered by `list-command-history-filter' if non-nil.
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
93 Combines typeout Command History list window with menu like selection
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
94 of an expression from the history for re-evaluation in the *original* buffer.
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
95
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
96 The history displayed is filtered by `list-command-history-filter' if non-nil.
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
97
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
98 Like Emacs-Lisp mode except that characters do not insert themselves and
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
99 Tab and Linefeed do not indent. Instead these commands are provided:
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
100 \\{electric-history-map}
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
102 Calls the value of `electric-command-history-hook' if that is non-nil.
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
103 The Command History listing is recomputed each time this mode is invoked."
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104 (interactive)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
105 (let ((electric-history-in-progress t)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
106 (old-buffer (current-buffer))
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
107 (todo))
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
108 (unwind-protect
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
109 (setq todo
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
110 (catch 'electric-history-quit
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
111 (save-window-excursion
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
112 (save-window-excursion
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
113 (list-command-history)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
114 (set-buffer "*Command History*")
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
115 (Command-history-setup 'electric-command-history
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
116 "Electric History"
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
117 electric-history-map))
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118 (Electric-pop-up-window "*Command History*")
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
119 (run-hooks 'electric-command-history-hook)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
120 (if (eobp)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
121 (progn (ding)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
122 (message "No command history.")
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
123 (throw 'electric-history-quit nil))
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
124 (let ((Helper-return-blurb "return to History"))
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
125 (Electric-command-loop 'electric-history-quit
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
126 "->" t))))))
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
127 (set-buffer "*Command History*")
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
128 (Command-history-setup)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
129 (bury-buffer (current-buffer)))
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
130 (if (consp todo)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
131 (progn (set-buffer old-buffer)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
132 (if (car todo)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
133 (apply (car (car (cdr todo))) (cdr (car (cdr todo))))
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
134 (edit-and-eval-command "Redo: " (car (cdr todo))))))))
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
135
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136 (defun Electric-history-undefined ()
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
137 (interactive)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
138 (ding)
918
94b50bbd43c3 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 846
diff changeset
139 (message (substitute-command-keys "Type \\[Help-for-help] for help, ? for commands, C-c to quit, Space to execute"))
198
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
140 (sit-for 4))
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
141
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
142 (defun Electric-history-quit ()
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
143 "Quit Electric Command History, restoring previous window configuration."
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
144 (interactive)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
145 (if (boundp 'electric-history-in-progress)
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
146 (progn (message "")
db1d84cdb2e2 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
147 (throw 'electric-history-quit nil))))
662
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 258
diff changeset
148
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 258
diff changeset
149 ;;; echistory.el ends here