branch: externals/org
commit bfa362c47de9fb2f8e5376c97a885f18f0d352ff
Author: Ihor Radchenko <[email protected]>
Commit: Ihor Radchenko <[email protected]>

    org-element-section-parser: Optimize performance
    
    * lisp/org-element.el (org-element-section-parser): Call
    `re-search-forward' directly instead of using `outline-next-heading'.
---
 lisp/org-element.el | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/lisp/org-element.el b/lisp/org-element.el
index 2df944dc73..a13e91f277 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -1858,14 +1858,15 @@ containing `:begin', `:end', `:contents-begin', 
`contents-end',
     ;; Beginning of section is the beginning of the first non-blank
     ;; line after previous headline.
     (let* ((begin (point))
-          (end (progn (org-with-limited-levels (outline-next-heading))
-                      (point)))
+          (end
+            (if (re-search-forward (org-get-limited-outline-regexp t) nil 
'move)
+                (goto-char (match-beginning 0))
+             (point)))
           (pos-before-blank (progn (skip-chars-backward " \r\t\n")
                                    (line-beginning-position 2)))
            (robust-end (when (> (- pos-before-blank 2) begin)
                          (- pos-before-blank 2)))
-           (robust-begin (when robust-end begin))
-           )
+           (robust-begin (when robust-end begin)))
       (list 'section
            (list :begin begin
                  :end end

Reply via email to