org-macs: store evaluated version of pom
* lisp/org-macs.el (org-with-point-at): Store evaluated version of pom. This fixes a potential bug when using (org-with-point-at (func) …), where (func) would be evaluated multiple times, therefore might return different results if a marker was returned and different each time. Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
c2443d48e9
commit
eced270fbf
|
@ -134,11 +134,12 @@ We use a macro so that the test can happen at compilation time."
|
|||
|
||||
(defmacro org-with-point-at (pom &rest body)
|
||||
"Move to buffer and point of point-or-marker POM for the duration of BODY."
|
||||
`(save-excursion
|
||||
(if (markerp ,pom) (set-buffer (marker-buffer ,pom)))
|
||||
`(let ((pom ,pom))
|
||||
(save-excursion
|
||||
(goto-char (or ,pom (point)))
|
||||
,@body)))
|
||||
(if (markerp pom) (set-buffer (marker-buffer pom)))
|
||||
(save-excursion
|
||||
(goto-char (or pom (point)))
|
||||
,@body))))
|
||||
(put 'org-with-point-at 'lisp-indent-function 1)
|
||||
|
||||
(defmacro org-no-warnings (&rest body)
|
||||
|
|
Loading…
Reference in New Issue