Subject: bug#3418: Issue with compile.el and compilation-parse-errors-filename-function

From: Andrew Hyatt <[email-masked]>
Date: Tue, 26 Jan 2016 00:21:51 -0500

Gary Oberbrunner <[email-masked]> writes:

> Hi emacs folks.  I submitted a patch to compilation-get-file-structure in
> compile.el in 2001, introducing this stanza:
>
> 	;; If compilation-parse-errors-filename-function is
> 	;; defined, use it to process the filename.
> 	(when compilation-parse-errors-filename-function
> 	  (setq filename
> 		(funcall
> 			 filename)))
>
> At some point since then, the filename was changed to not always be absolute;
> there's now a variable spec-directory in that function.  This means that
> implementations of compilation-parse-errors-filename-function can't always work
> correctly since it doesn't know the full path of the file.
>
> I'm happy to work on a fix, but I see a few issues.
>
> Solution 1: add 2nd arg SPEC-DIRECTORY to
> compilation-parse-errors-filename-function.
> Problem: existing implementations will get an incorrect number of args error and
> will have to change.
>
> Solution 2: make filename absolute before passing to
> compilation-parse-errors-filename-function.
> Problem: the rest of the code is pretty careful not to absolutize the filename;
> this would change the behavior in ways I don't completely understand.
>
> Of course I am personally happy with solution 1, but since it affects
> compatibility I thought I should bring it up on this list.  I am not on the
> list, so please cc me with any replies, thanks!

Sadly, this bug hasn't been responded to.  Your description is pretty
code-intensive, for those of us not familiar with the internals, can you
give instructions on how to reproduce a user-visible issue?