Subject: Re: bug#30064: 27.0.50; Improve grammar of map-y-or-n-p help text

From: "Basil L. Contovounesios" <[email-masked]>
Date: Wed, 10 Jan 2018 15:25:39 +0000

>From eddabf4a3cba46000ba04356b38e86b3616aff82 Mon Sep 17 00:00:00 2001
From: "Basil L. Contovounesios" <[email-masked]>
Date: Wed, 10 Jan 2018 13:55:29 +0000
Subject: [PATCH 1/2] Improve grammar of map-y-or-n-p help text (bug#30064)

* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Do not follow a
definite article with an action verb in C-h help text.
---
 lisp/emacs-lisp/map-ynp.el | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el
index 2a7eddedad..5aa2a6fad1 100644
--- a/lisp/emacs-lisp/map-ynp.el
+++ b/lisp/emacs-lisp/map-ynp.el
@@ -197,14 +197,14 @@ map-y-or-n-p
 				   (objects (if help (nth 1 help) "objects"))
 				   (action (if help (nth 2 help) "act on")))
 			       (concat
-				(format-message "\
+                                (format-message
+                                 "\
 Type SPC or `y' to %s the current %s;
 DEL or `n' to skip the current %s;
-RET or `q' to give up on the %s (skip all remaining %s);
+RET or `q' to skip the current and all remaining %s;
 C-g to quit (cancel the whole command);
 ! to %s all remaining %s;\n"
-					action object object action objects action
-					objects)
+                                 action object object objects action objects)
 				(mapconcat (function
 					    (lambda (elt)
 					      (format "%s to %s"
-- 
2.15.1

>From 8d84b1bdfb2c974720cb3bff43a5114150422eca Mon Sep 17 00:00:00 2001
From: "Basil L. Contovounesios" <[email-masked]>
Date: Wed, 10 Jan 2018 15:07:37 +0000
Subject: [PATCH 2/2] Simplify map-y-or-n-p help text logic (bug#30064)

* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p):
Use with-help-window instead of with-output-to-temp-buffer.
Simplify string concatenation.
---
 lisp/emacs-lisp/map-ynp.el | 30 +++++++++++++-----------------
 1 file changed, 13 insertions(+), 17 deletions(-)

diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el
index 5aa2a6fad1..dd80524a15 100644
--- a/lisp/emacs-lisp/map-ynp.el
+++ b/lisp/emacs-lisp/map-ynp.el
@@ -191,11 +191,11 @@ map-y-or-n-p
 				  (funcall actor elt)
 				  (setq actions (1+ actions))))))
 			 ((eq def 'help)
-			  (with-output-to-temp-buffer "*Help*"
+                          (with-help-window (help-buffer)
 			    (princ
-			     (let ((object (if help (nth 0 help) "object"))
-				   (objects (if help (nth 1 help) "objects"))
-				   (action (if help (nth 2 help) "act on")))
+                             (let ((object  (or (nth 0 help) "object"))
+                                   (objects (or (nth 1 help) "objects"))
+                                   (action  (or (nth 2 help) "act on")))
 			       (concat
                                 (format-message
                                  "\
@@ -205,20 +205,16 @@ map-y-or-n-p
 C-g to quit (cancel the whole command);
 ! to %s all remaining %s;\n"
                                  action object object objects action objects)
-				(mapconcat (function
-					    (lambda (elt)
-					      (format "%s to %s"
-						      (single-key-description
-						       (nth 0 elt))
-						      (nth 2 elt))))
+                                (mapconcat (lambda (elt)
+                                             (format "%s to %s;\n"
+                                                     (single-key-description
+                                                      (nth 0 elt))
+                                                     (nth 2 elt)))
 					   action-alist
-					   ";\n")
-				(if action-alist ";\n")
-				(format "or . (period) to %s \
-the current %s and exit."
-					action object))))
-			    (with-current-buffer standard-output
-			      (help-mode)))
+                                           "")
+                                (format
+                                 "or . (period) to %s the current %s and exit."
+                                 action object)))))
 
 			  (funcall try-again))
 			 ((and (symbolp def) (commandp def))
-- 
2.15.1

I was able to make some minor improvements/simplifications to the logic
surrounding my last patch.  I attach a patch to this effect, along with
a reworded version of the original patch to include the assigned bug
ticket number.

Thanks,

-- 
Basil