]> code.delx.au - gnu-emacs/blobdiff - lisp/help.el
*** empty log message ***
[gnu-emacs] / lisp / help.el
index a3e14014b791b1d46faab12cd105beb33fef723f..cb634e2bdad60773d523cf5d102fd71579b3d24e 100644 (file)
@@ -1,7 +1,7 @@
 ;;; help.el --- help commands for Emacs
 
-;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2004,
-;;   200 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002,
+;;   2003, 2004, 2005 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: help, internal
@@ -20,8 +20,8 @@
 
 ;; 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, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
@@ -590,7 +590,8 @@ the last key hit are used."
        ;; Don't bother user with strings from (e.g.) the select-paste menu.
        (if (stringp (aref key (1- (length key))))
            (aset key (1- (length key)) "(any string)"))
-       (if (stringp (aref untranslated (1- (length untranslated))))
+       (if (and (> (length untranslated) 0)
+                (stringp (aref untranslated (1- (length untranslated)))))
            (aset untranslated (1- (length untranslated))
                  "(any string)"))
        ;; Now describe the key, perhaps as changed.
@@ -603,7 +604,6 @@ the last key hit are used."
                         key-desc
                         (if (symbolp defn) defn (prin1-to-string defn)))))))))
 
-
 (defun describe-key (key &optional untranslated up-event)
   "Display documentation of the function invoked by KEY.
 KEY should be a key sequence--when calling from a program,
@@ -611,6 +611,7 @@ pass a string or a vector.
 If non-nil UNTRANSLATED is a vector of the untranslated events.
 It can also be a number in which case the untranslated events from
 the last key hit are used."
+  ;; UP-EVENT is the up-event that was discarded by reading KEY, or nil.
   (interactive "kDescribe key: \np\nU")
   (if (numberp untranslated)
       (setq untranslated (this-single-command-raw-keys)))
@@ -634,7 +635,8 @@ the last key hit are used."
          ;; Don't bother user with strings from (e.g.) the select-paste menu.
          (if (stringp (aref key (1- (length key))))
              (aset key (1- (length key)) "(any string)"))
-         (if (stringp (aref untranslated (1- (length untranslated))))
+         (if (and untranslated
+                  (stringp (aref untranslated (1- (length untranslated)))))
              (aset untranslated (1- (length untranslated))
                    "(any string)"))
          (with-output-to-temp-buffer (help-buffer)
@@ -696,8 +698,8 @@ the last key hit are used."
                    (princ " runs the command ")
                    (prin1 defn)
                    (princ "\n   which is ")
-                   (describe-function-1 defn))))
-           (print-help-return-message))))))))
+                   (describe-function-1 defn)))))
+           (print-help-return-message)))))))
 
 \f
 (defun describe-mode (&optional buffer)