Hi,
             The variable "org-map-continue-from" is not reset to nil after
the funcall to action in function "org-scan-tags".

Heres the patch which works

diff --git a/lisp/org.el b/lisp/org.el
index 8a1fbd3..54ab5fb 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -12848,7 +12848,8 @@ only lines with a TODO keyword are included in the
output."
              (setq org-map-continue-from nil)
              (save-excursion
                (setq rtn1 (funcall action))
-               (push rtn1 rtn)))
+               (push rtn1 rtn))
+             (setq org-map-continue-from nil))
             (t (error "Invalid action")))

            ;; if we are to skip sublevels, jump to end of subtree

To see the error in action assume that we want to archive all the "DONE"
states in the file
/tmp/test.org which contains the following lines.
* s1
** DONE ss1
** NEXT ss2


(defun my-org-archive-subtree ()
  (setq org-map-continue-from (point-at-bol))
  (org-archive-subtree))

 (org-map-entries 'my-org-archive-subtree "/DONE" (list "/tmp/test.org"))

While the org-scan-tags funciton parses the first subheading(**DONE ss1)
the match is
successful and the function "my-org-archive-subtree" is called which sets
the variable
"org-map-continue-from" value to *beginning of line* and this variable is
not set back to nil after the function call ends, which leads to infinite
loop while parsing the subsequent headlines which does not match the "DONE"
state(**NEXT ss2).

Regards,
Balamayam

Reply via email to