Browse Source

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
Eric Schulte 15 years ago
parent
commit
e3bf0b4a81
1 changed files with 9 additions and 4 deletions
  1. 9 4
      contrib/babel/lisp/langs/org-babel-haskell.el

+ 9 - 4
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