                            ((string-match "^Splicing " msg) 'splice)
                            (t                               'error)))
                (location (intero-parse-error
-                          (concat file ":" location-raw ": x")))
+                          (concat local-file ":" location-raw ": x")))
                (line (plist-get location :line))
                (column (plist-get location :col)))
           (setq messages

;; Process communication

(defun intero-call-process (program &optional infile destination display &rest args)
  "Synchronously call a process. Same interface as call-process/process-file."
  (let ((process-args (append (list program infile destination display) args)))
    (apply 'process-file process-args)))


              (concat "[\r\n]\\([A-Z]?:?[^ \r\n:][^:\n\r]+\\):\\([0-9()-:]+\\):"
                      "[ \n\r]+\\([[:unibyte:][:nonascii:]]+?\\)\n[^ ]")
              nil t 1)
        (let* ((local-file (intero-canonicalize-path (match-string 1)))
               (file (intero-extend-path-by-buffer-host local-file buffer))
               (location-raw (match-string 2))
               (msg (match-string 3)) ;; Replace gross bullet points.
               (type (cond ((string-match "^Warning:" msg)
