X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/b35f288d478ef137a4d9e8e5a6a5f368a86b01f5..1bd74554970450054c874dbb69837b43f783c6bd:/lisp/chistory.el diff --git a/lisp/chistory.el b/lisp/chistory.el index 47f5309cb4..6f8a74b2a6 100644 --- a/lisp/chistory.el +++ b/lisp/chistory.el @@ -1,10 +1,9 @@ ;;; chistory.el --- list command history -;; Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005, -;; 2006, 2007, 2008 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc. ;; Author: K. Shane Hartman -;; Maintainer: FSF +;; Maintainer: emacs-devel@gnu.org ;; Keywords: convenience ;; This file is part of GNU Emacs. @@ -67,7 +66,7 @@ editing and the result is evaluated." '(command-history-mode list-command-history electric-command-history) - "*A list of symbols to be ignored by `default-command-history-filter'. + "A list of symbols to be ignored by `default-command-history-filter'. If 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). @@ -90,7 +89,7 @@ from the command history." (memq (car frob) default-command-history-filter-garbage))) (defcustom list-command-history-max 32 - "*If non-nil, maximum length of the listing produced by `list-command-history'." + "If non-nil, maximum length of the listing produced by `list-command-history'." :type '(choice integer (const nil)) :group 'chistory) @@ -109,46 +108,37 @@ The buffer is left in Command History mode." (buffer-read-only nil) (count (or list-command-history-max -1))) (while (and (/= count 0) history) - (if (and (boundp 'list-command-history-filter) - list-command-history-filter + (if (and (bound-and-true-p list-command-history-filter) (funcall list-command-history-filter (car history))) nil (setq count (1- count)) (prin1 (car history)) (terpri)) (setq history (cdr history)))) - (save-excursion - (set-buffer "*Command History*") + (with-current-buffer "*Command History*" (goto-char (point-min)) (if (eobp) (error "No command history") (command-history-mode))))) -(defvar command-history-map nil) -(unless command-history-map - (setq command-history-map (make-sparse-keymap)) - (set-keymap-parent command-history-map lisp-mode-shared-map) - (suppress-keymap command-history-map) - (define-key command-history-map "x" 'command-history-repeat) - (define-key command-history-map "\n" 'next-line) - (define-key command-history-map "\r" 'next-line) - (define-key command-history-map "\177" 'previous-line)) - -(defun command-history-mode () +(define-obsolete-variable-alias 'command-history-map + 'command-history-mode-map "24.1") +(defvar command-history-mode-map + (let ((map (make-sparse-keymap))) + (set-keymap-parent map lisp-mode-shared-map) + (suppress-keymap map) + (define-key map "x" 'command-history-repeat) + (define-key map "\n" 'next-line) + (define-key map "\r" 'next-line) + (define-key map "\177" 'previous-line) + map) + "Keymap for `command-history-mode'.") + +(define-derived-mode command-history-mode fundamental-mode "Command History" "Major mode for listing and repeating recent commands. Keybindings: -\\{command-history-map}" - (interactive) - (Command-history-setup) - (setq major-mode 'command-history-mode) - (setq mode-name "Command History") - (use-local-map command-history-map) - (run-mode-hooks 'command-history-mode-hook)) - -(defun Command-history-setup () - (kill-all-local-variables) - (use-local-map command-history-map) +\\{command-history-mode-map}" (lisp-mode-variables nil) (set-syntax-table emacs-lisp-mode-syntax-table) (setq buffer-read-only t)) @@ -190,5 +180,4 @@ and runs the normal hook `command-history-hook'." (provide 'chistory) -;; arch-tag: c201a0cd-89f2-4d39-a532-4cb309391dbd ;;; chistory.el ends here