[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.