- (interactive)
- (message
- "A B C F I K L M N S T V W C-c C-d C-n C-w. Type C-h again for more help: ")
- (let ((char (read-char)))
- (if (or (= char ?\C-h) (= char ??))
- (save-window-excursion
- (switch-to-buffer "*Help*")
- (delete-other-windows)
- (erase-buffer)
- (insert (documentation 'help-for-help))
- (goto-char (point-min))
- (while (memq char '(?\C-h ?? ?\C-v ?\ ?\177 ?\M-v))
- (if (memq char '(?\C-v ?\ ))
- (scroll-up))
- (if (memq char '(?\177 ?\M-v))
- (scroll-down))
- (message "A B C F I K L M N S T V W C-c C-d C-n C-w%s: "
- (if (pos-visible-in-window-p (point-max))
- "" " or Space to scroll"))
- (let ((cursor-in-echo-area t))
- (setq char (read-char))))))
- (let ((defn (cdr (assq (downcase char) (cdr help-map)))))
- (if defn (call-interactively defn) (ding)))))
-