From: Jostein Kjønigsen Date: Sun, 20 Sep 2015 19:46:28 +0000 (-0400) Subject: (compilation-error-regexp-alist-alist): Tone down guile-file X-Git-Tag: emacs-25.0.90~1224^2~65 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bf006d59e665e1289c8b4fd4fb519d478b5d87d6;p=emacs.git (compilation-error-regexp-alist-alist): Tone down guile-file * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): Make guile-file a bit less enthusiastic (bug#21496). Copyright-paperwork-exempt: yes --- diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index f9c097e00ec..9cb367aa633 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -477,7 +477,29 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?" ;; "^\\([^ \t\r\n(]+\\) (\\([0-9]+\\):\\([0-9]+\\)) " 1 2 3) - (guile-file "^In \\(.+\\):\n" 1) + + ;; Guile compilation yields file-headers in the following format: + ;; + ;; In sourcefile.scm: + ;; + ;; We need to catch those, but we also need to be aware that Emacs + ;; byte-compilation yields compiler headers in similar form of + ;; those: + ;; + ;; In toplevel form: + ;; In end of data: + ;; + ;; We want to catch the Guile file-headers but not the Emacs + ;; byte-compilation headers, because that will cause next-error + ;; and prev-error to break, because the files "toplevel form" and + ;; "end of data" does not exist. + ;; + ;; To differentiate between these two cases, we require that the + ;; file-match must always contain an extension. + ;; + ;; We should also only treat this as "info", not "error", because + ;; we do not know what lines will follow. + (guile-file "^In \\(.+\\..+\\):\n" 1 nil nil 0) (guile-line "^ *\\([0-9]+\\): *\\([0-9]+\\)" nil 1 2) ) "Alist of values for `compilation-error-regexp-alist'.")