summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <n.goaziou@gmail.com>2012-10-14 21:34:22 +0200
committerNicolas Goaziou <n.goaziou@gmail.com>2012-10-14 21:38:42 +0200
commitc65abd85776734d894a4594c0561eb120a0449e2 (patch)
treebcf11b6ac42e514d398718060f74e3427f725a26
parent9d00dd4a88bb98e8666c8e5a5744a9b9ef17309a (diff)
downloadorg-mode-c65abd85776734d894a4594c0561eb120a0449e2.tar.gz
org-element: Fix parsing of syntax at beginning of item
* lisp/org-element.el (org-element-sub/superscript-successor): Fix parsing of sub/superscript at beginning of item. (org-element-latex-or-entity-successor): Fix parsing of latex fragments at beginning of item. * testing/lisp/test-org-element.el: Add test.
-rw-r--r--lisp/org-element.el2
-rw-r--r--testing/lisp/test-org-element.el24
2 files changed, 23 insertions, 3 deletions
diff --git a/lisp/org-element.el b/lisp/org-element.el
index 46e668c..6bcfa85 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -2412,6 +2412,7 @@ LIMIT bounds the search.
Return value is a cons cell whose CAR is `entity' or
`latex-fragment' and CDR is beginning position."
(save-excursion
+ (unless (bolp) (backward-char))
(let ((matchers
(remove "begin" (plist-get org-format-latex-options :matchers)))
;; ENTITY-RE matches both LaTeX commands and Org entities.
@@ -3089,6 +3090,7 @@ LIMIT bounds the search.
Return value is a cons cell whose CAR is either `subscript' or
`superscript' and CDR is beginning position."
(save-excursion
+ (unless (bolp) (backward-char))
(when (re-search-forward org-match-substring-regexp limit t)
(cons (if (string= (match-string 2) "_") 'subscript 'superscript)
(match-beginning 2)))))
diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el
index 887ca1b..e7cfada 100644
--- a/testing/lisp/test-org-element.el
+++ b/testing/lisp/test-org-element.el
@@ -1074,7 +1074,13 @@ e^{i\\pi}+1=0
(should
(org-test-with-temp-text "\\[a\\]"
(org-element-map
- (org-element-parse-buffer) 'latex-fragment 'identity)))))
+ (org-element-parse-buffer) 'latex-fragment 'identity)))
+ ;; Test fragment at the beginning of an item.
+ (should
+ (eq 'latex-fragment
+ (org-test-with-temp-text "- $x$"
+ (progn (search-forward "$")
+ (org-element-type (org-element-context))))))))
;;;; Line Break
@@ -1511,7 +1517,13 @@ Outside list"
;; With braces.
(should
(org-test-with-temp-text "a_{b}"
- (org-element-map (org-element-parse-buffer) 'subscript 'identity))))
+ (org-element-map (org-element-parse-buffer) 'subscript 'identity)))
+ ;; At the beginning of an item.
+ (should
+ (eq 'subscript
+ (org-test-with-temp-text "- _b"
+ (progn (search-forward "_")
+ (org-element-type (org-element-context)))))))
;;;; Superscript
@@ -1525,7 +1537,13 @@ Outside list"
;; With braces.
(should
(org-test-with-temp-text "a^{b}"
- (org-element-map (org-element-parse-buffer) 'superscript 'identity))))
+ (org-element-map (org-element-parse-buffer) 'superscript 'identity)))
+ ;; At the beginning of an item.
+ (should
+ (eq 'superscript
+ (org-test-with-temp-text "- ^b"
+ (progn (search-forward "^")
+ (org-element-type (org-element-context)))))))
;;;; Table