Make `org-save-outline-visibility' macro return a useful value

Modified from a patch by Paul Sexton
This commit is contained in:
Carsten Dominik 2011-05-02 09:42:11 +02:00
parent 71400037f3
commit d8625e809f
1 changed files with 5 additions and 3 deletions

View File

@ -323,16 +323,18 @@ but it also means that the buffer should stay alive
during the operation, because otherwise all these markers will
point nowhere."
(declare (indent 1))
`(let ((data (org-outline-overlay-data ,use-markers)))
`(let ((data (org-outline-overlay-data ,use-markers))
rtn)
(unwind-protect
(progn
,@body
(setq rtn (progn ,@body))
(org-set-outline-overlay-data data))
(when ,use-markers
(mapc (lambda (c)
(and (markerp (car c)) (move-marker (car c) nil))
(and (markerp (cdr c)) (move-marker (cdr c) nil)))
data)))))
data)))
rtn))
(defmacro org-with-wide-buffer (&rest body)
"Execute body while temporarily widening the buffer."