emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/org c35a856048 3/4: org-in-archived-heading-p: Improve


From: ELPA Syncer
Subject: [elpa] externals/org c35a856048 3/4: org-in-archived-heading-p: Improve performance
Date: Wed, 21 Sep 2022 00:59:29 -0400 (EDT)

branch: externals/org
commit c35a856048f205101f9f06a7f67d4b1d420c9e19
Author: Ihor Radchenko <yantar92@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>

    org-in-archived-heading-p: Improve performance
    
    * lisp/org.el (org-in-archived-heading-p): Use explicit `while' loop
    instead of `org-element-lineage'.
---
 lisp/org.el | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index daa0b6d956..c0b505e0aa 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -20156,9 +20156,13 @@ Optional argument ELEMENT contains element at point."
             (cl-some (apply-partially #'string= org-archive-tag) tags)))))
    (no-inheritance nil)
    (t
-    (if (org-element--cache-active-p)
-        (cl-some (lambda (el) (org-element-property :archivedp el))
-                 (org-element-lineage (or element (org-element-at-point)) nil 
t))
+    (if (or element (org-element--cache-active-p))
+        (catch :archived
+          (unless element (setq element (org-element-at-point)))
+          (while element
+            (when (org-element-property :archivedp element)
+              (throw :archived t))
+            (setq element (org-element-property :parent element))))
       (save-excursion (and (org-up-heading-safe) 
(org-in-archived-heading-p)))))))
 
 (defun org-at-comment-p nil



reply via email to

[Prev in Thread] Current Thread [Next in Thread]