branch: externals/org
commit e340dde63e9ffd5a90d816617b0a8ed297ac83b0
Author: Ihor Radchenko <yanta...@posteo.net>
Commit: Ihor Radchenko <yanta...@posteo.net>

    org-element-export-snippet-parser: Fix when no closing @@
    
    * lisp/org-element.el (org-element-export-snippet-parser): Return nil
    when there is no closing @@.
    * testing/lisp/test-org-element.el (test-org-element/context): Add
    test.
    
    Reported-by: Tom Alexander <t...@fizz.buzz>
    Link: 
https://orgmode.org/list/fb61ea28-f004-4c25-adf7-69fc55683...@app.fastmail.com
---
 lisp/org-element.el              | 15 ++++++++-------
 testing/lisp/test-org-element.el |  8 +++++++-
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/lisp/org-element.el b/lisp/org-element.el
index ab585115a7..99763e3f9d 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -3328,13 +3328,14 @@ Assume point is at the beginning of the snippet."
                  (- contents-end begin))))
             (post-blank (skip-chars-forward " \t"))
             (end (point)))
-       (org-element-create
-         'export-snippet
-        (list :back-end backend
-              :value value
-              :begin begin
-              :end end
-              :post-blank post-blank))))))
+        (when contents-end ; No match when no trailing "@@".
+         (org-element-create
+           'export-snippet
+          (list :back-end backend
+                :value value
+                :begin begin
+                :end end
+                :post-blank post-blank)))))))
 
 (defun org-element-export-snippet-interpreter (export-snippet _)
   "Interpret EXPORT-SNIPPET object as Org syntax."
diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el
index d95195f0dc..92fd630781 100644
--- a/testing/lisp/test-org-element.el
+++ b/testing/lisp/test-org-element.el
@@ -4607,7 +4607,13 @@ Text
   (should
    (eq 'link
        (org-test-with-temp-text "* Headline :file<point>:tags: :real:tag:"
-        (org-element-type (org-element-context))))))
+        (org-element-type (org-element-context)))))
+  ;; Do not parse partial export snippets.
+  (should-not
+   (eq 'export-snippet
+       (org-test-with-temp-text
+           "<point>@@latex:\n\nparagraph\n\n@@"
+         (org-element-type (org-element-context))))))
 
 
 

Reply via email to