summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <n.goaziou@gmail.com>2014-02-01 21:49:37 +0100
committerNicolas Goaziou <n.goaziou@gmail.com>2014-02-01 21:52:43 +0100
commitac2f516edf90e9631f069c08294fb11ecf42b231 (patch)
tree10b98c2c363ad444b5afd9bb371bf3ca76a8872e
parentccc4f6b96e6af91a5a1e7a5e6766eed9006d658b (diff)
downloadorg-mode-ac2f516edf90e9631f069c08294fb11ecf42b231.tar.gz
ob-exp: Do not ignore `org-src-preserve-indentation'
* lisp/ob-exp.el (org-babel-exp-process-buffer): Also check `org-src-preserve-indentation' to know when to preserve indentation. * testing/lisp/test-ob-exp.el (ob-export/export-and-indentation): New test. Thanks to John Hendy for reporting it.
-rw-r--r--lisp/ob-exp.el4
-rw-r--r--testing/lisp/test-ob-exp.el33
2 files changed, 36 insertions, 1 deletions
diff --git a/lisp/ob-exp.el b/lisp/ob-exp.el
index cb64136..6d65496 100644
--- a/lisp/ob-exp.el
+++ b/lisp/ob-exp.el
@@ -269,7 +269,9 @@ this template."
(save-excursion (goto-char end)
(line-end-position)))
(insert replacement)
- (if (org-element-property :preserve-indent element)
+ (if (or org-src-preserve-indentation
+ (org-element-property :preserve-indent
+ element))
;; Indent only the code block markers.
(save-excursion (skip-chars-backward " \r\t\n")
(indent-line-to ind)
diff --git a/testing/lisp/test-ob-exp.el b/testing/lisp/test-ob-exp.el
index d09e9eb..8345da7 100644
--- a/testing/lisp/test-ob-exp.el
+++ b/testing/lisp/test-ob-exp.el
@@ -323,6 +323,39 @@ Here is one at the end of a line. =2=
(org-export-execute-babel-code)
(buffer-string)))))
+(ert-deftest ob-export/export-and-indentation ()
+ "Test indentation of evaluated source blocks during export."
+ ;; No indentation.
+ (should
+ (string-match
+ "^t"
+ (org-test-with-temp-text "#+BEGIN_SRC emacs-lisp\n t\n#+END_SRC"
+ (let ((indent-tabs-mode t)
+ (tab-width 1)
+ (org-src-preserve-indentation nil))
+ (org-export-execute-babel-code)
+ (buffer-string)))))
+ ;; Preserve indentation with "-i" flag.
+ (should
+ (string-match
+ "^ t"
+ (org-test-with-temp-text "#+BEGIN_SRC emacs-lisp -i\n t\n#+END_SRC"
+ (let ((indent-tabs-mode t)
+ (tab-width 1))
+ (org-export-execute-babel-code)
+ (buffer-string)))))
+ ;; Preserve indentation with a non-nil
+ ;; `org-src-preserve-indentation'.
+ (should
+ (string-match
+ "^ t"
+ (org-test-with-temp-text "#+BEGIN_SRC emacs-lisp\n t\n#+END_SRC"
+ (let ((indent-tabs-mode t)
+ (tab-width 1)
+ (org-src-preserve-indentation t))
+ (org-export-execute-babel-code)
+ (buffer-string))))))
+
(provide 'test-ob-exp)
;;; test-ob-exp.el ends here