emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master bf006d5: (compilation-error-regexp-alist-alist): To


From: Stefan Monnier
Subject: [Emacs-diffs] master bf006d5: (compilation-error-regexp-alist-alist): Tone down guile-file
Date: Sun, 20 Sep 2015 19:46:33 +0000

branch: master
commit bf006d59e665e1289c8b4fd4fb519d478b5d87d6
Author: Jostein Kjønigsen <address@hidden>
Commit: Stefan Monnier <address@hidden>

    (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
---
 lisp/progmodes/compile.el |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index f9c097e..9cb367a 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'.")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]