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

Reply via email to