X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/49116ac071969bee7f129bf7ce725c7a5b0b0fc5..22cc6690e717501adc7dcbb19ec910a4009e92ca:/lisp/chistory.el diff --git a/lisp/chistory.el b/lisp/chistory.el index 2dd78a1f55..db04beae38 100644 --- a/lisp/chistory.el +++ b/lisp/chistory.el @@ -1,12 +1,15 @@ -;; chistory -- List command history +;;; chistory.el --- list command history + ;; Copyright (C) 1985 Free Software Foundation, Inc. -;; Principal author K. Shane Hartman + +;; Author: K. Shane Hartman +;; Maintainer: FSF ;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 1, or (at your option) +;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, @@ -18,12 +21,15 @@ ;; along with GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +;;; Commentary: ;; This really has nothing to do with list-command-history per se, but -;; its a nice alternative to C-x ESC (repeat-complex-command) and +;; its a nice alternative to C-x ESC ESC (repeat-complex-command) and ;; functions as a lister if given no pattern. It's not important ;; enough to warrant a file of its own. +;;; Code: + ;;;###autoload (defun repeat-matching-complex-command (&optional pattern) "Edit and re-evaluate complex command with name matching PATTERN. @@ -33,19 +39,16 @@ command history is offered. The form is placed in the minibuffer for editing and the result is evaluated." (interactive "sRedo Command (regexp): ") (if pattern - (if (equal (setq pattern - (substring pattern - (or (string-match "[ \t]*[^ \t]" pattern) - (length pattern)))) - "") - (setq pattern nil))) + (if (string-match "[^ \t]" pattern) + (setq pattern (substring pattern (match-beginning 0))) + (setq pattern nil))) (let ((history command-history) (temp) (what)) (while (and history (not what)) (setq temp (car history)) (if (and (or (not pattern) (string-match pattern (symbol-name (car temp)))) - (y-or-n-p (format "Redo %s? " (setq temp (prin1-to-string temp))))) + (y-or-n-p (format "Redo %S? " temp))) (setq what (car history)) (setq history (cdr history)))) (if (not what) @@ -59,13 +62,15 @@ editing and the result is evaluated." '(command-history-mode list-command-history electric-command-history) - "*A list of symbols. If `default-list-command-history-filter' is -given a list whose car is an element of this list, then it will return -non-nil (indicating the list should be discarded from the history). + "*A list of symbols to be ignored by `default-command-history-filter'. +It that function is given a list whose car is an element of this list, +then it will return non-nil (indicating the list should be discarded from +the history). Initially, all commands related to the command history are discarded.") (defvar list-command-history-filter 'default-command-history-filter - "If non-nil, should be the name of a function of one argument. + "Predicate to test which commands should be excluded from the history listing. +If non-nil, should be the name of a function of one argument. It is passed each element of the command history when \\[list-command-history] is called. If the filter returns non-nil for some element, that element is excluded from the history listing. The @@ -78,8 +83,7 @@ from the command history." (memq (car frob) default-command-history-filter-garbage))) (defvar list-command-history-max 32 - "*If non-nil, should be a positive number which specifies the maximum -length of the Command History listing produced by `list-command-history'.") + "*If non-nil, maximum length of the listing produced by `list-command-history'.") ;;;###autoload (defun list-command-history () @@ -145,7 +149,7 @@ The buffer for that command is the previous current buffer." (beginning-of-line) (read (current-buffer))) (set-buffer - (cdr (buffer-list))))))) + (car (cdr (buffer-list)))))))) ;;;###autoload (defun command-history-mode () @@ -166,3 +170,4 @@ The Command History listing is recomputed each time this mode is invoked." (provide 'chistory) +;;; chistory.el ends here