浏览代码

org-fold-core-regions: Avoid multiple evaluation of argument

* lisp/org-fold-core.el (org-fold-core-regions): Evaluate RELATIVE
once.
Ihor Radchenko 2 年之前
父节点
当前提交
f1a197401c
共有 1 个文件被更改,包括 4 次插入3 次删除
  1. 4 3
      lisp/org-fold-core.el

+ 4 - 3
lisp/org-fold-core.el

@@ -1036,9 +1036,10 @@ from that position."
   `(org-with-wide-buffer
     (when ,override (org-fold-core-region (point-min) (point-max) nil))
     (pcase-dolist (`(,beg ,end ,spec) (delq nil ,regions))
-      (if ,relative
-          (org-fold-core-region (+ ,relative beg) (+ ,relative end) t spec)
-        (org-fold-core-region beg end t spec))
+      (let ((rel ,relative))
+        (if rel
+            (org-fold-core-region (+ rel beg) (+ rel end) t spec)
+          (org-fold-core-region beg end t spec)))
       (when ,clean-markers
         (when (markerp beg) (set-marker beg nil))
         (when (markerp end) (set-marker end nil))))))