* 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
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.