summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2016-05-13 17:53:22 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2016-05-13 17:55:30 +0200
commita540e894b6c75fd5dc611210a7b90130bb626d9f (patch)
treebf1d5930645d62ab2f09d11f322fd7d54b5e9dba
parent1fd6f2815721c1d1270e30941c400cb1cb5f20b2 (diff)
downloadorg-mode-a540e894b6c75fd5dc611210a7b90130bb626d9f.tar.gz
org-element: Properly unescape data in export blocks
* lisp/org-element.el (org-element-export-block-parser): Remove commas in export blocks. * testing/lisp/test-org-element.el (test-org-element/export-block-parser): Add test.
-rw-r--r--lisp/org-element.el5
-rw-r--r--testing/lisp/test-org-element.el7
2 files changed, 9 insertions, 3 deletions
diff --git a/lisp/org-element.el b/lisp/org-element.el
index d02b36c..368da60 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -1992,8 +1992,9 @@ Assume point is at export-block beginning."
(point)))
(end (progn (skip-chars-forward " \r\t\n" limit)
(if (eobp) (point) (line-beginning-position))))
- (value (buffer-substring-no-properties contents-begin
- contents-end)))
+ (value (org-unescape-code-in-string
+ (buffer-substring-no-properties contents-begin
+ contents-end))))
(list 'export-block
(nconc
(list :type (and backend (upcase backend))
diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el
index 1ff83f1..94af2b3 100644
--- a/testing/lisp/test-org-element.el
+++ b/testing/lisp/test-org-element.el
@@ -836,7 +836,12 @@ Some other text
;; Handle non-empty blank line at the end of buffer.
(should
(org-test-with-temp-text "#+BEGIN_EXPORT latex\nC\n#+END_EXPORT\n "
- (= (org-element-property :end (org-element-at-point)) (point-max)))))
+ (= (org-element-property :end (org-element-at-point)) (point-max))))
+ ;; Un-escape commas in `:value'.
+ (should
+ (equal "* H\n"
+ (org-test-with-temp-text "#+BEGIN_EXPORT org\n,* H\n#+END_EXPORT\n "
+ (org-element-property :value (org-element-at-point))))))
;;;; Export Snippet