From bfa362c47de9fb2f8e5376c97a885f18f0d352ff Mon Sep 17 00:00:00 2001 From: Ihor Radchenko Date: Wed, 26 Apr 2023 15:07:32 +0200 Subject: [PATCH] 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 2df944dc7..a13e91f27 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