;ELC   
;;; compiled by kwzh@hal.gnu.ai.mit.edu on Mon Apr 17 19:42:42 1995
;;; from file /gd/gnu/emacs/19.0/lisp/help-macro.el
;;; emacs version 19.28.90.26.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19")))
    (error "`/gd/gnu/emacs/19.0/lisp/help-macro.el' was compiled for Emacs 19"))


(byte-code "ÀÁ!ˆÂÃ!‡" [provide help-macro require backquote] 2)
#@297 *Non-nil means give more info about Help command in three steps.
The three steps are simple prompt, prompt with all options,
and window listing and describing the options.
A value of nil means skip the middle step, so that
\[help-command] \[help-command] gives the window that lists the options.
(defvar three-step-help nil (#$ . -554))
#@318 Construct help-menu function name FNAME.
When invoked, FNAME shows HELP-LINE and reads a command using HELPED-MAP.
If the command is the help character, FNAME displays HELP-TEXT
and continues trying to read a command using HELPED-MAP.
When FNAME finally does get a command, it executes that command
and then returns.
(defalias 'make-help-screen '(macro . #[(fname help-line help-text helped-map) "À	ÂÄÅÆÇDDCÉÊËÌÍ	DDDÎBÏÐÑÒEÔBBÕBBEF¯‡" [defun fname nil help-text (interactive) let line-prompt substitute-command-keys help-line (if three-step-help (message line-prompt)) let* help-screen documentation quote ((local-map (make-sparse-keymap)) (minor-mode-map-alist nil) (prev-frame (selected-frame)) config new-frame key char) unwind-protect progn setcdr local-map helped-map ((define-key local-map [t] (quote undefined)) (if three-step-help (progn (setq key (let ((overriding-local-map local-map)) (read-key-sequence nil))) (if (lookup-key function-key-map key) (setq key (lookup-key function-key-map key))) (setq char (aref key 0))) (setq char 63)) (if (or (eq char 63) (eq char help-char)) (progn (setq config (current-window-configuration)) (switch-to-buffer-other-window "*Help*") (and (fboundp (quote make-frame)) (not (eq (window-frame (selected-window)) prev-frame)) (setq new-frame (window-frame (selected-window)) config nil)) (erase-buffer) (insert help-screen) (help-mode) (goto-char (point-min)) (while (or (memq char (cons help-char (quote (63 22 32 127 delete -134217610)))) (eq (car-safe char) (quote switch-frame)) (equal key "ö")) (condition-case nil (progn (if (eq (car-safe char) (quote switch-frame)) (handle-switch-frame char)) (if (memq char (quote (22 32))) (scroll-up)) (if (or (memq char (quote (127 -134217610 delete))) (equal key "ö")) (scroll-down))) (error nil)) (let ((cursor-in-echo-area t) (overriding-local-map local-map)) (setq key (read-key-sequence (format "Type one of the options listed%s: " (if (pos-visible-in-window-p (point-max)) "" " or Space to scroll"))) char (aref key 0)))))) (if (listp char) (setq unread-command-events (cons char unread-command-events) config nil) (let ((defn (lookup-key local-map key))) (if defn (progn (if config (progn (set-window-configuration config) (setq config nil))) (if new-frame (progn (iconify-frame new-frame) (setq new-frame nil))) (call-interactively defn)) (ding))))) ((if new-frame (iconify-frame new-frame)) (if config (set-window-configuration config)))] 15 (#$ . 898)]))
