Fix hitting RET on some text in compilation-mode
* lisp/progmodes/compile.el (compilation-next-error-function): Don't bug out with an incomprehensible error message on "make[2]:" texts (bug#5316). (compilation-find-file): Protect against there being no file name.
This commit is contained in:
parent
5c4195fd36
commit
88eadc75d0
1 changed files with 9 additions and 3 deletions
|
@ -2509,6 +2509,8 @@ This is the value of `next-error-function' in Compilation buffers."
|
|||
(loc (compilation--message->loc msg))
|
||||
(end-loc (compilation--message->end-loc msg))
|
||||
(marker (point-marker)))
|
||||
(unless loc
|
||||
(user-error "No next error"))
|
||||
(setq compilation-current-error (point-marker)
|
||||
overlay-arrow-position
|
||||
(if (bolp)
|
||||
|
@ -2822,7 +2824,8 @@ attempts to find a file whose name is produced by (format FMT FILENAME)."
|
|||
(expand-file-name directory)
|
||||
default-directory))
|
||||
buffer thisdir fmts name)
|
||||
(if (file-name-absolute-p filename)
|
||||
(if (and filename
|
||||
(file-name-absolute-p filename))
|
||||
;; The file name is absolute. Use its explicit directory as
|
||||
;; the first in the search path, and strip it from FILENAME.
|
||||
(setq filename (abbreviate-file-name (expand-file-name filename))
|
||||
|
@ -2850,8 +2853,11 @@ attempts to find a file whose name is produced by (format FMT FILENAME)."
|
|||
(and w (progn (compilation-set-window w marker)
|
||||
(compilation-set-overlay-arrow w))))
|
||||
(let* ((name (read-file-name
|
||||
(format "Find this %s in (default %s): "
|
||||
compilation-error filename)
|
||||
(format "Find this %s in%s: "
|
||||
compilation-error
|
||||
(if filename
|
||||
(format " (default %s)" filename)
|
||||
""))
|
||||
spec-dir filename t nil
|
||||
;; The predicate below is fine when called from
|
||||
;; minibuffer-complete-and-exit, but it's too
|
||||
|
|
Loading…
Add table
Reference in a new issue