emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 981f135 2/2: Fix compilation-transform-file-match-a


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 981f135 2/2: Fix compilation-transform-file-match-alist failure
Date: Sat, 12 Oct 2019 14:57:50 -0400 (EDT)

branch: master
commit 981f1358f0332db06cac325e640ce7570662a72b
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>

    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.
---
 lisp/progmodes/compile.el | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index e312def..505e091 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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]