Subject: bug#39042: 26.3; Undocumented keys for Info mode

From: Stefan Kangas <[email-masked]>
Date: Tue, 28 Apr 2020 01:13:11 +0200

tags 39042 + patch
thanks

Mark Harig <[email-masked]> writes:

> Emacs Maintainers,

Thank you for this bug report.

>    In Info mode, the following keys are mapped to the listed
> functions, but there is no description of the keys or what they do
> in either the Info summary or in the help for Info mode.  Also, none
> of these functions are available from the Info menu in the menu bar.
>
> 1. . (period):  'beginning-of-buffer
> 2. e: 'end-of-buffer
> 3. ?: 'Info-summary
> 4. H: 'describe-mode
> 5. t: 'Info-top-node

(1) is already documented as 'b', which I think is enough.

(2) is a useful addition, I think.  (See the below patch.)

(3) and (4) I think we can leave out.  The user surely knows how to
get help if she is already reading it, right?

(5) is actually already documented.

> The following keys are described in the Info summary, but are not
> listed in the Info menu on the menu bar:
>
> h    Invoke the Info tutorial.
> RET    Follow a node reference near point, like <mouse-2>.
> m    Pick menu item specified by name (or abbreviation).
> d    Go to the Info directory node.
> TAB    Move cursor to next cross-reference or menu item.
> C-M-i    Move cursor to previous cross-reference or menu item.
> f    Follow a cross reference.  Reads name of reference.
> S    Search through this Info file for specified regexp case-sensitively.

The menu is already quite long, so I would only suggest to add the
'Info-directory' command.

Please see the attached patch, where I also suggest to move some menu
items to submenus.  This cuts down the number of items on the top
level of the menu to 17 compared to 21 before.  This buys us the space
to add three separators too.

Best regards,
Stefan Kangas

>From 0d34e8b98c76bfc1f9dcd24dc0691793b2e03ae5 Mon Sep 17 00:00:00 2001
From: Stefan Kangas <[email-masked]>
Date: Tue, 28 Apr 2020 00:25:11 +0200
Subject: [PATCH] Make leaving Info-summary more intuitive

* lisp/info.el (Info-summary): Discard character on exit instead of
pushing it onto 'unread-command-events'.
---
 lisp/info.el | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/lisp/info.el b/lisp/info.el
index 3015e60a4f..703907b98f 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -3828,14 +3828,14 @@ Info-summary
     (insert (documentation 'Info-mode))
     (help-mode)
     (goto-char (point-min))
-    (let (ch flag)
-      (while (progn (setq flag (not (pos-visible-in-window-p (point-max))))
-		    (message (if flag "Type Space to see more"
-			       "Type Space to return to Info"))
-		    (if (not (eq ?\s (setq ch (read-event))))
-			(progn (push ch unread-command-events) nil)
-		      flag))
-	(scroll-up)))
+    (while (let ((flag (not (pos-visible-in-window-p (point-max)))))
+	     (message (if flag "Type Space to see more"
+			"Type any key to return to Info"))
+             ;; Space scrolls if there is more content.
+             ;; Any other key returns.
+             (setq ch (read-event))
+	     (and flag (eq ch ?\s)))
+      (scroll-up))
     (bury-buffer "*Help*")))
 
 (defun Info-get-token (pos start all &optional errorstring)
-- 
2.26.2