all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#70882: 30.0.50; [PATCH] Print the real direction in the prompt for '(previous|next)-matching-history-element'
@ 2024-05-11 18:53 Jim Porter
  2024-05-18  9:18 ` Eli Zaretskii
  0 siblings, 1 reply; 3+ messages in thread
From: Jim Porter @ 2024-05-11 18:53 UTC (permalink / raw)
  To: 70882

[-- Attachment #1: Type: text/plain, Size: 514 bytes --]

To see the problem, start from "emacs -Q":

   M-x
   M-r      ;; Emacs prompts "Previous element matching regexp:"
   C-g

   M-- M-r  ;; Emacs prompts "Previous element matching regexp:" (?!)

In the last line, the prefix argument is negative, so the search will 
actually be for the *next* matching element. The attached patch fixes 
this so that the prompt message accounts for the prefix arg.

While I was here, I also made 'next-matching-history-element' use 
'format-prompt' like its 'previous-...' sibling.

[-- Attachment #2: 0001-Tell-direction-in-prompts-for-previous-next-matching.patch --]
[-- Type: text/plain, Size: 3753 bytes --]

From 514ccf9288bf29f74e1b2cdfde52a3bf19ae2833 Mon Sep 17 00:00:00 2001
From: Jim Porter <jporterbugs@gmail.com>
Date: Sat, 11 May 2024 11:41:11 -0700
Subject: [PATCH] Tell direction in prompts for
 '(previous|next)-matching-history-element'

Previously, this always said "Previous" for
'previous-matching-history-element' (likewise "Next").  Now, the prompt
accounts for a negative prefix argument changing the search direction.

* lisp/simple.el (previous-matching-history-element)
(next-matching-history-element): Consult numeric prefix argument to
determine the prompt string.
---
 lisp/simple.el | 33 +++++++++++++++++++--------------
 1 file changed, 19 insertions(+), 14 deletions(-)

diff --git a/lisp/simple.el b/lisp/simple.el
index deab52c4201..d10e414586f 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -2876,11 +2876,13 @@ previous-matching-history-element
 makes the search case-sensitive.
 See also `minibuffer-history-case-insensitive-variables'."
   (interactive
-   (let* ((enable-recursive-minibuffers t)
+   (let* ((n (prefix-numeric-value current-prefix-arg))
+          (enable-recursive-minibuffers t)
 	  (regexp (read-from-minibuffer
-                   (format-prompt "Previous element matching regexp"
+                   (format-prompt "%s element matching regexp"
                                   (and minibuffer-history-search-history
-                                       (car minibuffer-history-search-history)))
+                                       (car minibuffer-history-search-history))
+                                  (if (>= n 0) "Previous" "Next"))
 		   nil minibuffer-local-map nil
 		   'minibuffer-history-search-history
 		   (car minibuffer-history-search-history))))
@@ -2888,9 +2890,9 @@ previous-matching-history-element
      (list (if (string= regexp "")
 	       (if minibuffer-history-search-history
 		   (car minibuffer-history-search-history)
-		 (user-error "No previous history search regexp"))
+                 (user-error "No history search regexp"))
 	     regexp)
-	   (prefix-numeric-value current-prefix-arg))))
+           n)))
   (unless (zerop n)
     (if (and (zerop minibuffer-history-position)
 	     (null minibuffer-text-before-history))
@@ -2948,20 +2950,23 @@ next-matching-history-element
 `case-fold-search' is non-nil, but an uppercase letter in REGEXP
 makes the search case-sensitive."
   (interactive
-   (let* ((enable-recursive-minibuffers t)
-	  (regexp (read-from-minibuffer "Next element matching (regexp): "
-					nil
-					minibuffer-local-map
-					nil
-					'minibuffer-history-search-history
- 					(car minibuffer-history-search-history))))
+   (let* ((n (prefix-numeric-value current-prefix-arg))
+          (enable-recursive-minibuffers t)
+          (regexp (read-from-minibuffer
+                   (format-prompt "%s element matching regexp"
+                                  (and minibuffer-history-search-history
+                                       (car minibuffer-history-search-history))
+                                  (if (>= n 0) "Next" "Previous"))
+                   nil minibuffer-local-map nil
+                   'minibuffer-history-search-history
+                   (car minibuffer-history-search-history))))
      ;; Use the last regexp specified, by default, if input is empty.
      (list (if (string= regexp "")
 	       (if minibuffer-history-search-history
 		   (car minibuffer-history-search-history)
-		 (user-error "No previous history search regexp"))
+                 (user-error "No history search regexp"))
 	     regexp)
-	   (prefix-numeric-value current-prefix-arg))))
+           n)))
   (previous-matching-history-element regexp (- n)))
 
 (defvar minibuffer-temporary-goal-position nil)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* bug#70882: 30.0.50; [PATCH] Print the real direction in the prompt for '(previous|next)-matching-history-element'
  2024-05-11 18:53 bug#70882: 30.0.50; [PATCH] Print the real direction in the prompt for '(previous|next)-matching-history-element' Jim Porter
@ 2024-05-18  9:18 ` Eli Zaretskii
  2024-05-20  1:35   ` Jim Porter
  0 siblings, 1 reply; 3+ messages in thread
From: Eli Zaretskii @ 2024-05-18  9:18 UTC (permalink / raw)
  To: Jim Porter; +Cc: 70882

> Date: Sat, 11 May 2024 11:53:18 -0700
> From: Jim Porter <jporterbugs@gmail.com>
> 
> To see the problem, start from "emacs -Q":
> 
>    M-x
>    M-r      ;; Emacs prompts "Previous element matching regexp:"
>    C-g
> 
>    M-- M-r  ;; Emacs prompts "Previous element matching regexp:" (?!)
> 
> In the last line, the prefix argument is negative, so the search will 
> actually be for the *next* matching element. The attached patch fixes 
> this so that the prompt message accounts for the prefix arg.
> 
> While I was here, I also made 'next-matching-history-element' use 
> 'format-prompt' like its 'previous-...' sibling.

Thanks, LGTM.





^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#70882: 30.0.50; [PATCH] Print the real direction in the prompt for '(previous|next)-matching-history-element'
  2024-05-18  9:18 ` Eli Zaretskii
@ 2024-05-20  1:35   ` Jim Porter
  0 siblings, 0 replies; 3+ messages in thread
From: Jim Porter @ 2024-05-20  1:35 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 70882-done

On 5/18/2024 2:18 AM, Eli Zaretskii wrote:
> Thanks, LGTM.

Thanks for checking. Merged as 44d1687f1f6, and closing this bug.






^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-05-20  1:35 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-11 18:53 bug#70882: 30.0.50; [PATCH] Print the real direction in the prompt for '(previous|next)-matching-history-element' Jim Porter
2024-05-18  9:18 ` Eli Zaretskii
2024-05-20  1:35   ` Jim Porter

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.