diff --git a/lisp/ob-haskell.el b/lisp/ob-haskell.el index bea162528..893e4220c 100644 --- a/lisp/ob-haskell.el +++ b/lisp/ob-haskell.el @@ -56,15 +56,25 @@ (defvar org-babel-haskell-eoe "\"org-babel-haskell-eoe\"") -(defvar haskell-prompt-regexp) +(defvar haskell-prompt-regexp "^[^>\n]*\\(> \\)?" + "Filter out prompts from Haskell interpreters: + +GHC: + +- '^Prelude> ' +- '^Prelude| Prelude| Prelude> ' + +Unknown Interpreter: + +- '^> ' +- '^λ> '") (defun org-babel-execute:haskell (body params) "Execute a block of Haskell code." (require 'inf-haskell) (add-hook 'inferior-haskell-hook (lambda () - (setq-local comint-prompt-regexp - (concat haskell-prompt-regexp "\\|^λ?> ")))) + (setq-local comint-prompt-regexp haskell-prompt-regexp))) (let* ((session (cdr (assq :session params))) (result-type (cdr (assq :result-type params))) (full-body (org-babel-expand-body:generic