From: Eli Zaretskii Date: Sun, 14 Oct 2012 07:40:05 +0000 (+0200) Subject: Adapt compile.el to changes in MSVC diagnostics format. X-Git-Tag: emacs-24.2.90~235^2 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8111f5e6f05228e36496f3bdccad711f569acb9b;p=emacs.git Adapt compile.el to changes in MSVC diagnostics format. lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): Adjust the msft regexp to the output of Studio 2010, and move msft before edg-1. See the discussion on emacs-devel, http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00579.html, for the details. etc/compilation.txt (msft): Add error messages in new Studio 2010 format. test/automated/compile-tests.el (compile-tests--test-regexps-data): Add data for msft's new format. --- diff --git a/etc/ChangeLog b/etc/ChangeLog index 2bfae3696c5..0a1a5b8b8b7 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,8 @@ +2012-10-14 Eli Zaretskii + + * compilation.txt (msft): Add error messages in new Studio 2010 + format. + 2012-10-11 Kenichi Handa * charsets/CNS-2.map, charsets/CNS-3.map, charsets/CNS-4.map, diff --git a/etc/compilation.txt b/etc/compilation.txt index 269f8d23e6b..8d31847569c 100644 --- a/etc/compilation.txt +++ b/etc/compilation.txt @@ -308,6 +308,13 @@ made it more strict about the error message that follows. keyboard handler.c(537) : warning C4005: 'min' : macro redefinition d:\tmp\test.c(23) : error C2143: syntax error : missing ';' before 'if' d:\tmp\test.c(1145) : see declaration of 'nsRefPtr' +1>test_main.cpp(29): error C2144: syntax error : 'int' should be preceded by ';' +1>test_main.cpp(29): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int +1> +1>Build FAILED. +1> +1>Time Elapsed 00:00:01.46 +========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== * Open Watcom diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a31d474d8a3..7393bbc2845 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2012-10-14 Eli Zaretskii + + * progmodes/compile.el (compilation-error-regexp-alist-alist): + Adjust the msft regexp to the output of Studio 2010, and move msft + before edg-1. See the discussion on emacs-devel, + http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00579.html, + for the details. + 2012-10-14 Stefan Monnier * emacs-lisp/eieio.el (eieio-oset-default, eieio-oset, oset-default) diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 09fba380f15..10fd7a75eaa 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -171,6 +171,15 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1)) "\\(?:^cucumber\\(?: -p [^[:space:]]+\\)?\\|#\\)\ \\(?: \\)\\([^\(].*\\):\\([1-9][0-9]*\\)" 1 2) + (msft + ;; Must be before edg-1, so that MSVC's longer messages are + ;; considered before EDG. + ;; The message may be a "warning", "error", or "fatal error" with + ;; an error code, or "see declaration of" without an error code. + "^ *\\([0-9]+>\\)?\\(\\(?:[a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\)) ?\ +: \\(?:see declaration\\|\\(?:warnin\\(g\\)\\|[a-z ]+\\) C[0-9]+:\\)" + 2 3 nil (4)) + (edg-1 "^\\([^ \n]+\\)(\\([0-9]+\\)): \\(?:error\\|warnin\\(g\\)\\|remar\\(k\\)\\)" 1 2 nil (3 . 4)) diff --git a/test/ChangeLog b/test/ChangeLog index a7e22aa9ae1..72b44747bac 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2012-10-14 Eli Zaretskii + + * automated/compile-tests.el (compile-tests--test-regexps-data): + Add new data for msft's new format. + 2012-09-08 Dmitry Gutov * automated/ruby-mode-tests.el: diff --git a/test/automated/compile-tests.el b/test/automated/compile-tests.el index ecd0e8856f7..9415ee3a17e 100644 --- a/test/automated/compile-tests.el +++ b/test/automated/compile-tests.el @@ -215,6 +215,10 @@ 1 nil 23 "d:\\tmp\\test.c") ("d:\\tmp\\test.c(1145) : see declaration of 'nsRefPtr'" 1 nil 1145 "d:\\tmp\\test.c") + ("1>test_main.cpp(29): error C2144: syntax error : 'int' should be preceded by ';'" + 3 nil 29 "test_main.cpp") + ("1>test_main.cpp(29): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int" + 3 nil 29 "test_main.cpp") ;; watcom ("..\src\ctrl\lister.c(109): Error! E1009: Expecting ';' but found '{'" 1 nil 109 "..\src\ctrl\lister.c")