]> code.delx.au - gnu-emacs/blobdiff - lisp/help.el
Minor typo fixes in vc-src.el.
[gnu-emacs] / lisp / help.el
index 01a569a67106f814de4410fb4ab540a26294b39a..eaee6d147363450b4007898f1536f7d2c90b7668 100644 (file)
@@ -23,7 +23,7 @@
 
 ;;; Commentary:
 
-;; This code implements GNU Emacs's on-line help system, the one invoked by
+;; This code implements GNU Emacs's built-in help system, the one invoked by
 ;; `M-x help-for-help'.
 
 ;;; Code:
 ;; or run interpreted, but not when the compiled code is loaded.
 (eval-when-compile (require 'help-macro))
 
+;; This makes `with-output-to-temp-buffer' buffers use `help-mode'.
+(add-hook 'temp-buffer-setup-hook 'help-mode-setup)
+(add-hook 'temp-buffer-show-hook 'help-mode-finish)
+
 ;; `help-window-point-marker' is a marker you can move to a valid
 ;; position of the buffer shown in the help window in order to override
 ;; the standard positioning mechanism (`point-min') chosen by
@@ -198,13 +202,13 @@ d PATTERN   Show a list of functions, variables, and other items whose
               documentation matches the PATTERN (a list of words or a regexp).
 e           Go to the *Messages* buffer which logs echo-area messages.
 f FUNCTION  Display documentation for the given function.
-F COMMAND   Show the on-line manual's section that describes the command.
+F COMMAND   Show the Emacs manual's section that describes the command.
 g           Display information about the GNU project.
 h           Display the HELLO file which illustrates various scripts.
-i           Start the Info documentation reader: read on-line manuals.
+i           Start the Info documentation reader: read included manuals.
 I METHOD    Describe a specific input method, or RET for current.
 k KEYS      Display the full documentation for the key sequence.
-K KEYS      Show the on-line manual's section for the command bound to KEYS.
+K KEYS      Show the Emacs manual's section for the command bound to KEYS.
 l           Show last 300 input keystrokes (lossage).
 L LANG-ENV  Describes a specific language environment, or RET for current.
 m           Display documentation of current minor modes and current major mode,
@@ -214,7 +218,7 @@ p TOPIC     Find packages matching a given topic keyword.
 P PACKAGE   Describe the given Emacs Lisp package.
 r           Display the Emacs manual in Info mode.
 s           Display contents of current syntax table, plus explanations.
-S SYMBOL    Show the section for the given symbol in the on-line manual
+S SYMBOL    Show the section for the given symbol in the Info manual
               for the programming language used in this buffer.
 t           Start the Emacs learn-by-doing tutorial.
 v VARIABLE  Display the given variable's documentation and value.
@@ -444,25 +448,32 @@ is specified by the variable `message-log-max'."
   (info "(efaq)Packages that do not come with Emacs"))
 
 (defun view-lossage ()
-  "Display last 300 input keystrokes.
+  "Display last few input keystrokes and the commands run.
 
 To record all your input, use `open-dribble-file'."
   (interactive)
   (help-setup-xref (list #'view-lossage)
                   (called-interactively-p 'interactive))
   (with-help-window (help-buffer)
+    (princ " ")
     (princ (mapconcat (lambda (key)
-                       (if (or (integerp key) (symbolp key) (listp key))
-                           (single-key-description key)
-                         (prin1-to-string key nil)))
-                     (recent-keys)
+                       (cond
+                        ((and (consp key) (null (car key)))
+                         (format "[%s]\n" (if (symbolp (cdr key)) (cdr key)
+                                          "anonymous-command")))
+                        ((or (integerp key) (symbolp key) (listp key))
+                         (single-key-description key))
+                        (t
+                         (prin1-to-string key nil))))
+                     (recent-keys 'include-cmds)
                      " "))
     (with-current-buffer standard-output
       (goto-char (point-min))
-      (while (progn (move-to-column 50) (not (eobp)))
-        (when (search-forward " " nil t)
-          (delete-char -1))
-        (insert "\n"))
+      (while (not (eobp))
+       (move-to-column 50)
+       (unless (eolp)
+         (fill-region (line-beginning-position) (line-end-position)))
+       (forward-line 1))
       ;; jidanni wants to see the last keystrokes immediately.
       (set-marker help-window-point-marker (point)))))
 
@@ -666,16 +677,16 @@ POSITION is as documented in the function `key-binding'."
                (not no-remap)
                (command-remapping found))
           ;; The user might want to know in which map the binding is
-          ;; found, or in which map the remapping is found. The
+          ;; found, or in which map the remapping is found.  The
           ;; default is to show the latter.
-          (key-binding-keymap (vector 'remap found))
+          (help--key-binding-keymap (vector 'remap found))
         map))))
 
 (defun help--binding-locus (key position)
   "Describe in which keymap KEY is defined.
 Return a symbol pointing to that keymap if one exists ; otherwise
 return nil."
-  (let ((map (key-binding-keymap key t nil position)))
+  (let ((map (help--key-binding-keymap key t nil position)))
     (when map
       (catch 'found
         (let ((advertised-syms (nconc