From ac2f516edf90e9631f069c08294fb11ecf42b231 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 1 Feb 2014 21:49:37 +0100 Subject: [PATCH] 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. --- lisp/ob-exp.el | 4 +++- testing/lisp/test-ob-exp.el | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/lisp/ob-exp.el b/lisp/ob-exp.el index cb64136ad..6d65496db 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 d09e9ebd2..8345da787 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 -- 2.11.4.GIT