From e3bf0b4a8107b6bec1b3e25edfa3fa577e7349b3 Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Wed, 4 Nov 2009 17:46:55 -0700 Subject: [PATCH] org-babel-haskell: org-babel-haskell-export-to-lhs now optionally preserves indentation based either on the value of org-src-preserve-indentation or the presence of the -i switch --- contrib/babel/lisp/langs/org-babel-haskell.el | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/contrib/babel/lisp/langs/org-babel-haskell.el b/contrib/babel/lisp/langs/org-babel-haskell.el index 411807435..d8b56e75b 100644 --- a/contrib/babel/lisp/langs/org-babel-haskell.el +++ b/contrib/babel/lisp/langs/org-babel-haskell.el @@ -153,6 +153,7 @@ constructs (header arguments, no-web syntax etc...) are ignored." (lhs-file (concat base-name ".lhs")) (tex-file (concat base-name ".tex")) (command (concat org-babel-haskell-lhs2tex-command " " lhs-file " > " tex-file)) + (preserve-indentp org-src-preserve-indentation) indentation) ;; escape haskell source-code blocks (with-temp-file tmp-org-file @@ -160,10 +161,14 @@ constructs (header arguments, no-web syntax etc...) are ignored." (goto-char (point-min)) (while (re-search-forward haskell-regexp nil t) (save-match-data (setq indentation (length (match-string 1)))) - (replace-match (save-match-data (concat - "#+begin_latex\n\\begin{code}\n" - (org-remove-indentation (match-string 3)) - "\n\\end{code}\n#+end_latex\n")) + (replace-match (save-match-data + (concat + "#+begin_latex\n\\begin{code}\n" + (if (or preserve-indentp + (string-match "-i" (match-string 2))) + (match-string 3) + (org-remove-indentation (match-string 3))) + "\n\\end{code}\n#+end_latex\n")) t t) (indent-code-rigidly (match-beginning 0) (match-end 0) indentation))) (save-excursion