branch: externals-release/org
commit 0db82ee8f80e6ef151742e71c247dad4282c1466
Author: Ihor Radchenko <[email protected]>
Commit: Ihor Radchenko <[email protected]>
org-agenda-manipulate-query: Fix repeated canceled calls
* lisp/org-agenda.el (org-agenda-manipulate-query): When called
multiple times, discarding edits, prevent accumulating trailing + + +
- +{} in the query string.
Reported-by: Carlos Pita <[email protected]>
Link: https://orgmode.org/list/87r1be97xd.fsf@localhost
---
lisp/org-agenda.el | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index c60c2086b3..19eb7deb21 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -8858,6 +8858,14 @@ Negative selection means regexp must not match for
selection of an entry."
(org-agenda-redo))
(message "Display now includes inactive timestamps as well"))
((eq org-agenda-type 'search)
+ ;; Previous calls to `org-agenda-manipulate-query' could already
+ ;; add trailing text to the query. Prevent duplicating it.
+ ;; Trim the trailing spaces and +/.
+ (setq org-agenda-query-string
+ (replace-regexp-in-string
+ (rx (or (1+ " ") (seq (1+ " ") (any "+-") (opt "{}"))) eos)
+ ""
+ org-agenda-query-string))
(org-add-to-string
'org-agenda-query-string
(if org-agenda-last-search-view-search-was-boolean