(compilation-sentinel, compile-internal): Use it.
(compilation-exit-message-function): Doc fix for protocol change: take
process status and exit-code args instead of process object.
(grep): Use new protocol for compilation-exit-message-function.
processes: do relevant parts of compilation-sentinel after the
process exits; make modeline during and after compilation be
similar to what compilation-sentinel displays.
(compilation-sentinel): If compilation-exit-message-function is non-nil,
call it to produce messages for buffer and mode line.
(grep): Use that variable to produce snazzier messages.
abbreviate-file-name to it and then use its directory part as the first
search path element, searching for its nondirectory part.
Fix prompting code not to use a free variable.
(compilation-parse-errors, compile-abbreviate-directory): Use
abbreviate-file-name on directories.
(compilation-parse-errors): Don't store the beginning of the line
containing the end of the error-regexp match. Instead, store the beginning
of the line containing the start of the match, unless the match starts
with a newline, in which case the beginning of the next line.
(compilation-error-regexp-alist): Doc fix: optional cdrs give
string containing %s to produce the file name from the matched text.
(compilation-find-file): Reorder args: MARKER first, then FILENAME, DIR,
and new arg &rest FORMATS (as they appear in parsed the fileinfo lists).
Try each of the FORMATS in each directory tried.
(compilation-next-error-locus): Apply compilation-find-file to the FILEINFO
list.
(compilation-parse-errors): Instead of a cons (DIR . FILE), make a list
(FILE DIR [FORMATS...]) using the 4th cdr of the matching elt of
regexp-alist.
compilation-mode major mode, rather than internal state variables. Don't
want to match a buffer that was once in compilation-minor-mode but is not now.
(compilation-error-regexp-alist): Make first regexp match column numbers too.
Remove regexp for "prog:file:line: error".
Replace GNAT 1.82 regexp with "prog: file:line\(:col\)?: error".
(compilation-parse-errors): If spec has a column subexpr, but it was
optional and didn't match, ignore it.
broken out from compile-internal.
Don't change window height if it is the frame root window.
(compile-internal): Call it.
(compilation-goto-locus): Call it.
Use any visible frame already showing the compilation buffer.