[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org fe23bec607 2/3: * lisp/org-element.el (org-element-
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org fe23bec607 2/3: * lisp/org-element.el (org-element-subscript-parser): Fix edge case |
Date: |
Tue, 10 Oct 2023 09:58:55 -0400 (EDT) |
branch: externals/org
commit fe23bec607ced366177f72ea486131906156af58
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>
* lisp/org-element.el (org-element-subscript-parser): Fix edge case
Fix when both subscript and underline object match in
`org-element--object-lex'.
*
testing/lisp/test-org-element.el (test-org-element/underline-parser):
Add new test.
Reported-by: Tom Alexander <tom@fizz.buzz>
Link:
https://orgmode.org/list/dad964f5-c764-4dd5-9829-ca38e3fbeb0d@app.fastmail.com
---
lisp/org-element.el | 37 +++++++++++++++++++------------------
testing/lisp/test-org-element.el | 8 +++++++-
2 files changed, 26 insertions(+), 19 deletions(-)
diff --git a/lisp/org-element.el b/lisp/org-element.el
index 0c5fd00dc5..21ae915ac6 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -4087,24 +4087,25 @@ nil.
Assume point is at the underscore."
(save-excursion
- (unless (bolp) (backward-char))
- (when (looking-at org-match-substring-regexp)
- (let ((bracketsp (if (match-beginning 4) t nil))
- (begin (match-beginning 2))
- (contents-begin (or (match-beginning 4)
- (match-beginning 3)))
- (contents-end (or (match-end 4) (match-end 3)))
- (post-blank (progn (goto-char (match-end 0))
- (skip-chars-forward " \t")))
- (end (point)))
- (org-element-create
- 'subscript
- (list :begin begin
- :end end
- :use-brackets-p bracketsp
- :contents-begin contents-begin
- :contents-end contents-end
- :post-blank post-blank))))))
+ (unless (bolp)
+ (backward-char)
+ (when (looking-at org-match-substring-regexp)
+ (let ((bracketsp (if (match-beginning 4) t nil))
+ (begin (match-beginning 2))
+ (contents-begin (or (match-beginning 4)
+ (match-beginning 3)))
+ (contents-end (or (match-end 4) (match-end 3)))
+ (post-blank (progn (goto-char (match-end 0))
+ (skip-chars-forward " \t")))
+ (end (point)))
+ (org-element-create
+ 'subscript
+ (list :begin begin
+ :end end
+ :use-brackets-p bracketsp
+ :contents-begin contents-begin
+ :contents-end contents-end
+ :post-blank post-blank)))))))
(defun org-element-subscript-interpreter (subscript contents)
"Interpret SUBSCRIPT object as Org syntax.
diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el
index 3b11d496fb..5ca8a08db4 100644
--- a/testing/lisp/test-org-element.el
+++ b/testing/lisp/test-org-element.el
@@ -3219,7 +3219,13 @@ Outside list"
(org-test-with-temp-text "_first line\nsecond line_"
(org-element-map
(org-element-parse-buffer) 'underline #'identity nil t)))
- '("first line\nsecond line"))))
+ '("first line\nsecond line")))
+ ;; Nested underlines.
+ (should
+ (= 2
+ (org-test-with-temp-text "__test__"
+ (length
+ (org-element-map (org-element-parse-buffer) 'underline 'identity))))))
;;;; Verbatim