Mapping: Restore point and restriction in current buffer.

Daniel Clemente writes:

    Hi. After you eval this (for instance to count the number of
    headlines under a tree):

     (org-map-entries 'ignore t 'tree)

    you end up with a different view of the buffer
    because (org-narrow-to-subtree) was called. This seems an
    unwanted side effect since narrowing is not org-map-entries' job.

     Should (save-excursion) be used inside (org-map-entries
    ... 'tree) ?

He is right, and save-restriction is needed as well.  This is
what this commit implements.
This commit is contained in:
Carsten Dominik 2009-01-14 21:22:37 +01:00
parent d075718333
commit 8cb1d66f86
2 changed files with 39 additions and 32 deletions

View File

@ -1,3 +1,8 @@
2009-01-14 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-map-entries): Restore point and restriction after
`org-map-entries'.
2009-01-13 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-time=, org-time<, org-time<=, org-time>)

View File

@ -10166,6 +10166,8 @@ the scanner. The following items can be given here:
((eq match nil) (setq matcher t))
(t (setq matcher (if match (cdr (org-make-tags-matcher match)) t))))
(save-excursion
(save-restriction
(when (eq scope 'tree)
(org-back-to-heading t)
(org-narrow-to-subtree)
@ -10175,7 +10177,7 @@ the scanner. The following items can be given here:
(progn
(org-prepare-agenda-buffers
(list (buffer-file-name (current-buffer))))
(org-scan-tags func matcher))
(setq res (org-scan-tags func matcher)))
;; Get the right scope
(setq pos (point))
(cond
@ -10197,8 +10199,8 @@ the scanner. The following items can be given here:
(save-restriction
(widen)
(goto-char (point-min))
(setq res (append res (org-scan-tags func matcher)))))))
res)))
(setq res (append res (org-scan-tags func matcher))))))))))
res))
;;;; Properties