]> code.delx.au - gnu-emacs/blobdiff - lisp/emacs-lisp/helper.el
Merge from emacs--rel--22
[gnu-emacs] / lisp / emacs-lisp / helper.el
index 233196b5973a0fd52094aaa07839f342c2321bd2..a5459a5db83502315a53f65b80b198dc72d2d42b 100644 (file)
@@ -1,14 +1,17 @@
-;; 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
+;; Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005,
+;;   2006, 2007 Free Software Foundation, Inc.
+
+;; 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 3, 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., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, 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.
@@ -70,8 +77,8 @@
                   "Delete scrolls back. Other keys %s"
                   "Type anything to %s"))
            blurb)
-         (setq continue (read-char))
-         (cond ((and (memq continue '(?\ ?\C-v)) (< state 2))
+         (setq continue (read-event))
+         (cond ((and (memq continue '(?\s ?\C-v)) (< state 2))
                 (scroll-up))
                ((= continue ?\C-l)
                 (recenter))
        (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