]> code.delx.au - gnu-emacs/blobdiff - lisp/emacs-lisp/helper.el
(easy-menu-add): Make it work in non-X Emacs.
[gnu-emacs] / lisp / emacs-lisp / helper.el
index aa7253eab6ca44ca2bf727dbeefeebbcd53d929a..9d22735e1d09daaac780257a932ef6cfa14854a5 100644 (file)
@@ -1,14 +1,16 @@
-;; helper - utility help package for modes which want to provide help
-;; without relinquishing control, e.g. `electric' modes.
+;;; helper.el --- utility help package supporting help in electric modes
 
 ;; Copyright (C) 1985 Free Software Foundation, Inc.
-;; Principal author K. Shane Hartman
+
+;; Author: K. Shane Hartman
+;; Maintainer: FSF
+;; Keywords: help
 
 ;; 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,
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to
-;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
 
+;;; Code:
 
-(provide 'helper)                      ; hey, here's a helping hand.
+;; hey, here's a helping hand.
 
 ;; Bind this to a string for <blank> in "... Other keys <blank>".
 ;; Helper-help uses this to construct help string when scrolling.
@@ -71,7 +77,7 @@
                   "Type anything to %s"))
            blurb)
          (setq continue (read-char))
-         (cond ((and (memq continue '(?\ ?\C-v)) (< state 2))
+         (cond ((and (memq continue '(?\s ?\C-v)) (< state 2))
                 (scroll-up))
                ((= continue ?\C-l)
                 (recenter))
   (sit-for 4))
 
 (defun Helper-describe-key-briefly (key)
-  "Briefly describe binding of KEYS."
+  "Briefly describe binding of KEY."
   (interactive "kDescribe key briefly: ")
   (describe-key-briefly key)
   (sit-for 4))
 
 (defun Helper-describe-key (key)
-  "Describe binding of KEYS."
+  "Describe binding of KEY."
   (interactive "kDescribe key: ")
   (save-window-excursion (describe-key key))
   (Helper-help-scroller))
        (documentation (documentation major-mode)))
     (save-excursion
       (set-buffer (get-buffer-create "*Help*"))
+      (setq buffer-read-only nil)
       (erase-buffer)
-      (insert name " Mode\n" documentation)))
+      (insert name " Mode\n" documentation)
+      (help-mode)))
   (Helper-help-scroller))
 
+;;;###autoload
 (defun Helper-describe-bindings ()
   "Describe local key bindings of current mode."
   (interactive)
   (save-window-excursion (describe-bindings))
   (Helper-help-scroller))
 
+;;;###autoload
 (defun Helper-help ()
   "Provide help for current mode."
   (interactive)
   (let ((continue t) c)
     (while continue
       (message "Help (Type ? for further options)")
-      (setq c (char-to-string (downcase (read-char))))
+      (setq c (read-key-sequence nil))
       (setq c (lookup-key Helper-help-map c))
       (cond ((eq c 'Helper-help-options)
             (Helper-help-options))
             (ding)
             (setq continue nil))))))
 
+(provide 'helper)
+
+;;; arch-tag: a0984577-d3e9-4124-ae0d-c46fe740f6a9
+;;; helper.el ends here