emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] Possibly Bug in function org-scan-tags


From: bala subramaniyam
Subject: [O] Possibly Bug in function org-scan-tags
Date: Thu, 15 Dec 2011 03:18:51 +0200

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

[Prev in Thread] Current Thread [Next in Thread]