From: Lars Ingebrigtsen Date: Sat, 12 Oct 2019 18:57:37 +0000 (+0200) Subject: Fix compilation-transform-file-match-alist failure X-Git-Tag: emacs-27.0.90~1130 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=981f1358f0332db06cac325e640ce7570662a72b;p=emacs.git Fix compilation-transform-file-match-alist failure * lisp/progmodes/compile.el (compilation-error-properties): Fix thinko in compilation-transform-file-match-alist feature -- `file' isn't a list of files after all. --- diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index e312def18d0..505e0917dcb 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -1181,18 +1181,19 @@ POS and RES.") 2))) ;; Remove matches like /bin/sh and do other file name transforms. (save-match-data - (let ((transformed nil)) - (dolist (f file) - (let ((match - (cl-loop for (regexp replacement) - in compilation-transform-file-match-alist - when (string-match regexp f) - return (or replacement t)))) - (cond ((not match) - (push f transformed)) - ((stringp match) - (push (replace-match match nil nil f) transformed))))) - (setq file (nreverse transformed)))) + (let ((file-name + (and (consp file) + (not (bufferp (car file))) + (if (cdr file) + (expand-file-name (car file) (cdr file)) + (car file))))) + (cl-loop for (regexp replacement) + in compilation-transform-file-match-alist + when (string-match regexp file-name) + return (if replacement + (setq file (list (replace-match replacement nil nil + file-name))) + (setq file nil))))) (if (not file) ;; If we ignored all the files with errors on this line, then ;; return nil.