[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org 328be6d: org-element--parse-to: Fix skipping siblin
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org 328be6d: org-element--parse-to: Fix skipping sibling optimisation |
Date: |
Wed, 1 Dec 2021 20:57:21 -0500 (EST) |
branch: externals/org
commit 328be6df40368ddfc7572b6d99f55c76abfa611c
Author: Ihor Radchenko <yantar92@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>
org-element--parse-to: Fix skipping sibling optimisation
* lisp/org-element.el (org-element--parse-to): Fallback to normal
parsing when there are no siblings between POS and ELEM-END.
Reported in
https://github.com/yantar92/org/issues/38#issuecomment-982830497
---
lisp/org-element.el | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/lisp/org-element.el b/lisp/org-element.el
index f42fa2a..84c1b72 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -6420,14 +6420,18 @@ If you observe Emacs hangs frequently, please report
this to Org mode mailing li
;; may exist though. Parse starting from the
;; last sibling or from ELEM-END if there are
;; no other siblings.
- (goto-char pos)
- (re-search-backward
- (rx-to-string
- `(and bol (repeat ,(let ((level (org-element-property
:level element)))
- (if org-odd-levels-only (1- (*
level 2)) level))
- "*")
- " "))
- elem-end t))))
+ (let ((p (point)))
+ (goto-char pos)
+ (unless
+ (re-search-backward
+ (rx-to-string
+ `(and bol (repeat ,(let ((level
(org-element-property :level element)))
+ (if org-odd-levels-only
(1- (* level 2)) level))
+ "*")
+ " "))
+ elem-end t)
+ ;; Roll-back to normal parsing.
+ (goto-char p))))))
(setq mode (org-element--next-mode mode type nil)))
;; A non-greater element contains point: return it.
((not (memq type org-element-greater-elements))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/org 328be6d: org-element--parse-to: Fix skipping sibling optimisation,
ELPA Syncer <=