Browse Source

ox: White spaces after export snippets are never ignored

* lisp/ox.el (org-export-data): White spaces after export snippets are
  never ignored.
* testing/lisp/test-ox.el: Add test.

Back-end developers should pay attention to the fact that white spaces
before and after an ignored export snippet now are accumulated in the
output.
Nicolas Goaziou 12 years ago
parent
commit
a6d9fd82ea
2 changed files with 16 additions and 3 deletions
  1. 6 2
      lisp/ox.el
  2. 10 1
      testing/lisp/test-ox.el

+ 6 - 2
lisp/ox.el

@@ -2062,8 +2062,12 @@ Return transcoded string."
 			 (eq (plist-get info :with-archived-trees) 'headline)
 			 (org-element-property :archivedp data)))
 		(let ((transcoder (org-export-transcoder data info)))
-		  (and (functionp transcoder)
-		       (funcall transcoder data nil info))))
+		  (or (and (functionp transcoder)
+			   (funcall transcoder data nil info))
+		      ;; Export snippets never return a nil value so
+		      ;; that white spaces following them are never
+		      ;; ignored.
+		      (and (eq type 'export-snippet) ""))))
 	       ;; Element/Object with contents.
 	       (t
 		(let ((transcoder (org-export-transcoder data info)))

+ 10 - 1
testing/lisp/test-ox.el

@@ -871,7 +871,16 @@ body\n")))
       (let ((org-export-snippet-translation-alist nil))
 	(should (equal (org-export-as 'test) "A\n")))
       (let ((org-export-snippet-translation-alist '(("t" . "test"))))
-	(should (equal (org-export-as 'test) "AB\n"))))))
+	(should (equal (org-export-as 'test) "AB\n")))))
+  ;; Ignored export snippets do not remove any blank.
+  (should
+   (equal "begin  end\n"
+	  (org-test-with-parsed-data "begin @@test:A@@ end"
+	    (org-export-data-with-translations
+	     tree
+	     '((paragraph . (lambda (paragraph contents info) contents))
+	       (section . (lambda (section contents info) contents)))
+	     info)))))