# HG changeset patch
# User Gerd Moellmann <gerd@gnu.org>
# Date 1003996068 0
# Node ID c3b8e6d5266f7f786ae344bb6eff271d2a055a43
# Parent  1c73528c9b15a3cf1a6296c2e2394a1fb5eac2d6
(compilation-parse-errors-filename-function):
New variable.
(compilation-parse-errors): Use it.

diff -r 1c73528c9b15 -r c3b8e6d5266f lisp/progmodes/compile.el
--- a/lisp/progmodes/compile.el	Thu Oct 25 07:13:22 2001 +0000
+++ b/lisp/progmodes/compile.el	Thu Oct 25 07:47:48 2001 +0000
@@ -1,6 +1,7 @@
 ;;; compile.el --- run compiler as inferior of Emacs, parse error messages
 
-;; Copyright (C) 1985, 86, 87, 93, 94, 95, 96, 97, 98, 1999, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 86, 87, 93, 94, 95, 96, 97, 98, 1999, 2001
+;;  Free Software Foundation, Inc.
 
 ;; Author: Roland McGrath <roland@gnu.org>
 ;; Maintainer: FSF
@@ -133,6 +134,11 @@
 `compilation-error-list' to a list with an element for each error message
 found.  See that variable for more info.")
 
+(defvar compilation-parse-errors-filename-function nil
+  "Function to call to post-process filenames while parsing error messages.
+It takes one arg FILENAME which is the name of a file as found
+in the compilation output, and should return a transformed file name.")
+
 ;;;###autoload
 (defvar compilation-process-setup-function nil
   "*Function to call to customize the compilation process.
@@ -1944,6 +1950,13 @@
 			 (setq filename
 			       (concat comint-file-name-prefix filename)))
 
+		    ;; If compilation-parse-errors-filename-function is
+		    ;; defined, use it to process the filename.
+		    (when compilation-parse-errors-filename-function
+		      (setq filename
+			    (funcall compilation-parse-errors-filename-function
+				     filename)))
+
 		    ;; Some compilers (e.g. Sun's java compiler, reportedly)
 		    ;; produce bogus file names like "./bar//foo.c" for file
 		    ;; "bar/foo.c"; expand-file-name will collapse these into