This commit is contained in:
Kazu Yamamoto 2014-03-14 21:35:30 +09:00
parent 661f1a3813
commit 01298837e0
2 changed files with 10 additions and 9 deletions

View File

@ -20,7 +20,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defconst ghc-flymake-allowed-file-name-masks
'("\\.l?hs$" ghc-flymake-init nil ghc-emacs23-larter-hack))
'("\\.l?hs$" ghc-flymake-init nil ghc-emacs23-later-hack))
(defconst ghc-flymake-err-line-patterns
'("^\\(.*\\):\\([0-9]+\\):\\([0-9]+\\):[ ]*\\(.+\\)" 1 2 3 4))
@ -33,7 +33,7 @@
;; flymake of Emacs 23 or later does not display errors
;; if they occurred in other files. So, let's cheat flymake.
(defun ghc-emacs23-larter-hack (tmp-file)
(defun ghc-emacs23-later-hack (tmp-file)
(let ((real-name (flymake-get-real-file-name tmp-file))
(hack-name (flymake-get-real-file-name buffer-file-name)))
(unless (string= real-name hack-name)

View File

@ -184,16 +184,17 @@
(defvar ghc-debug-buffer "*GHC Debug*")
(defmacro ghc-with-debug-buffer (&rest body)
`(with-current-buffer (set-buffer (get-buffer-create ghc-debug-buffer))
(goto-char (point-max))
,@body))
(defun ghc-call-process (cmd x y z &rest args)
(when ghc-debug
(with-current-buffer (set-buffer (get-buffer-create ghc-debug-buffer))
(goto-char (point-max))
(insert (format "%% %s %s\n" cmd (mapconcat 'identity args " ")))))
(apply 'call-process cmd x y z args)
(when ghc-debug
(let ((cbuf (current-buffer)))
(with-current-buffer (set-buffer (get-buffer-create ghc-debug-buffer))
(goto-char (point-max))
(insert-buffer-substring cbuf)))))
(ghc-with-debug-buffer
(insert (format "%% %s %s\n" cmd (mapconcat 'identity args " ")))
(insert-buffer-substring cbuf)))))
(provide 'ghc-func)