diff options
author | Nicolas Goaziou <n.goaziou@gmail.com> | 2012-10-14 21:34:22 +0200 |
---|---|---|
committer | Nicolas Goaziou <n.goaziou@gmail.com> | 2012-10-14 21:38:42 +0200 |
commit | c65abd85776734d894a4594c0561eb120a0449e2 (patch) | |
tree | bcf11b6ac42e514d398718060f74e3427f725a26 | |
parent | 9d00dd4a88bb98e8666c8e5a5744a9b9ef17309a (diff) | |
download | org-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.el | 2 | ||||
-rw-r--r-- | testing/lisp/test-org-element.el | 24 |
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 |