I have just fixed this issue, in the spirit of Nicks proposal.

Thanks!

- Carsten

On 15.12.2011, at 02:18, bala subramaniyam wrote:

> 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