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