(require (quote electric))

(require (quote chistory))

(defun Electric-command-history-redo-expression (&optional noconfirm) "\
Edit current history line in minibuffer and execute result.
With prefix argument NOCONFIRM, execute current line as is without editing." (interactive "P") (byte-code "ˆq p!!($	D\"%‚)))" [todo noconfirm nil "*Command History*" beginning-of-line read boundp electric-history-in-progress throw electric-history-quit] 7))

(defvar electric-history-map nil)

(if electric-history-map nil (setq electric-history-map (make-keymap)) (fillarray electric-history-map (quote Electric-history-undefined)) (define-key electric-history-map "" (make-keymap)) (fillarray (lookup-key electric-history-map "") (quote Electric-history-undefined)) (define-key electric-history-map "" (quote universal-argument)) (define-key electric-history-map " " (quote Electric-command-history-redo-expression)) (define-key electric-history-map "!" (quote Electric-command-history-redo-expression)) (define-key electric-history-map "" (quote eval-sexp)) (define-key electric-history-map "" (quote down-list)) (define-key electric-history-map "" (quote backward-up-list)) (define-key electric-history-map "" (quote backward-sexp)) (define-key electric-history-map "" (quote forward-sexp)) (define-key electric-history-map "" (quote beginning-of-defun)) (define-key electric-history-map "" (quote end-of-defun)) (define-key electric-history-map "" (quote forward-list)) (define-key electric-history-map "" (quote backward-list)) (define-key electric-history-map "q" (quote Electric-history-quit)) (define-key electric-history-map "" nil) (define-key electric-history-map "" (quote Electric-history-quit)) (define-key electric-history-map "" (quote Electric-history-quit)) (define-key electric-history-map "" (quote suspend-emacs)) (define-key electric-history-map "" (quote Helper-help)) (define-key electric-history-map "?" (quote Helper-describe-bindings)) (define-key electric-history-map ">" (quote end-of-buffer)) (define-key electric-history-map "<" (quote beginning-of-buffer)) (define-key electric-history-map "
" (quote next-line)) (define-key electric-history-map "
" (quote next-line)) (define-key electric-history-map "" (quote previous-line)) (define-key electric-history-map "" (quote next-line)) (define-key electric-history-map "" (quote previous-line)) (define-key electric-history-map "v" (quote scroll-down)) (define-key electric-history-map "" (quote scroll-up)) (define-key electric-history-map "" (quote recenter)) (define-key electric-history-map "" (quote scroll-other-window)))

(defvar electric-command-history-hook nil "\
If non-nil, its value is called by  electric-command-history.")

(defun electric-command-history nil "\
Major mode for examining and redoing commands from  command-history.
The number of command listed is controlled by  list-command-history-max.
The command history is filtered by  list-command-history-filter  if non-nil.
Combines typeout Command History list window with menu like selection
of an expression from the history for re-evaluation in the *original* buffer.

The history displayed is filtered by  list-command-history-filter  if non-nil.

This pops up a window with the Command History listing.  If the very
next character typed is Space, the listing is killed and the previous
window configuration is restored.  Otherwise, you can browse in the
Command History with  Return  moving down and  Delete  moving up, possibly
selecting an expression to be redone with Space or quitting with `Q'.

Like Emacs-Lisp Mode except that characters do not insert themselves and
Tab and linefeed do not indent.  Instead these commands are provided:
Space or !	edit then evaluate current line in history inside
		   the ORIGINAL buffer which invoked this mode.
		   The previous window configuration is restored
		   unless the invoked command changes it.
C-c C-c, C-], Q	Quit and restore previous window configuration.
LFD, RET	Move to the next line in the history.
DEL		Move to the previous line in the history.
?		Provides a complete list of commands.

Calls the value of  electric-command-history-hook  if that is non-nil
The Command History listing is recomputed each time this mode is invoked." (interactive) (byte-code "Ĉpǎɍ):4
q@+A@@A@A\"1A@\"5+" [electric-history-in-progress t old-buffer todo nil electric-history-map Helper-return-blurb ((byte-code "q p!" ["*Command History*" Command-history-setup bury-buffer] 3)) electric-history-quit (byte-code "ċ" [electric-history-map nil Helper-return-blurb t ((byte-code "ċ!!m !\"%#)" [electric-history-map nil Helper-return-blurb t ((byte-code " q#" [electric-history-map list-command-history "*Command History*" Command-history-setup electric-command-history "Electric History"] 5)) Electric-pop-up-window "*Command History*" run-hooks electric-command-history-hook ding message "No command history." throw electric-history-quit "return to History" Electric-command-loop "->"] 9))] 1) apply edit-and-eval-command "Redo: "] 4))

(defun Electric-history-undefined nil (interactive) (byte-code " !!" [nil ding message "Type C-h for help, ? for commands, C-c to quit, Space to execute" sit-for 4] 4))

(defun Electric-history-quit nil "\
Quit Electric Command History, restoring previous window configuration." (interactive) (byte-code "!!\"" [nil boundp electric-history-in-progress message "" throw electric-history-quit] 5))