unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* compile.el error properties: buffer as filename not working
@ 2022-02-01  4:07 JD Smith
  2022-02-12 22:42 ` Stefan Monnier
  0 siblings, 1 reply; 3+ messages in thread
From: JD Smith @ 2022-02-01  4:07 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1348 bytes --]


`compilation-parse-errors’ uses a regex matcher which includes support for a file matching function returning a buffer (emphasis added):

Or FILE can also be a function that returns (FILENAME) or (RELATIVE-FILENAME . DIRNAME).
In the former case, FILENAME may be relative or absolute, or it may be a buffer.

But unfortunately compile.el (v27.2) doesn’t actually seem to fully support the (BUFFER) style of return, despite mentioning, in the docs of `compilation-internal-error-properties':

FILE should be (FILENAME) or (RELATIVE-FILENAME . DIRNAME) or (BUFFER) or
nil.

I have discovered two issues (there may be more):

1. In `compilation-error-properties’, `compilation-transform-file-match-alist’ is matched against a nil filename, since the definition of that filename looks like (note the bufferp):

(let ((file-name
             (and (consp file)
                  (not (bufferp (car file)))
                  (if (cdr file)
                      (expand-file-name (car file) (cdr file))
                    (car file)))))

This seems to have been fixed using a when-let in the Emacs 28 branch (unconfirmed).

2. `compilation-get-file-structure’ is called with the file list, but this function does not expect a (buffer), and calls (e.g.) file-name-absolute-p(#<buffer boo.py>), resulting in an error.


[-- Attachment #2: Type: text/html, Size: 4436 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-02-13 14:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-01  4:07 compile.el error properties: buffer as filename not working JD Smith
2022-02-12 22:42 ` Stefan Monnier
2022-02-13 14:20   ` JD Smith

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).