# HG changeset patch # User Chong Yidong # Date 1283632923 14400 # Node ID 5328ea5b6e4143606bb2f15336934eb6f15c54ae # Parent 8b593ec5d09cacb2dc499c85f990469ac5d4bab8 Fix Ruby compilation error matching. * progmodes/compile.el (compilation-error-regexp-alist-alist): Remove ruby regexp; handle Ruby errors with gcc-include and gnu. Recognize leading tab in gcc-include regexp. Ignore names with leading "from" or "in" in gnu regexp (Bug#6937). diff -r 8b593ec5d09c -r 5328ea5b6e41 lisp/ChangeLog --- a/lisp/ChangeLog Sat Sep 04 21:44:39 2010 +0200 +++ b/lisp/ChangeLog Sat Sep 04 16:42:03 2010 -0400 @@ -1,3 +1,10 @@ +2010-09-04 Chong Yidong + + * progmodes/compile.el (compilation-error-regexp-alist-alist): + Remove ruby regexp; handle Ruby errors with gcc-include and gnu. + Recognize leading tab in gcc-include regexp. Ignore names with + leading "from" or "in" in gnu regexp (Bug#6937). + 2010-09-04 Stefan Monnier Avoid global recursive calls to kill-buffer-hooks, and fit into 80 cols. diff -r 8b593ec5d09c -r 5328ea5b6e41 lisp/progmodes/compile.el --- a/lisp/progmodes/compile.el Sat Sep 04 21:44:39 2010 +0200 +++ b/lisp/progmodes/compile.el Sat Sep 04 16:42:03 2010 -0400 @@ -227,10 +227,6 @@ "^[-[:alnum:]_/ ]+: \\(?:\\(?:[sS]evere\\|[eE]rror\\|[wW]arnin\\(g\\)\\|[iI]nf\\(o\\)\\)[0-9 ]*: \\)?\ \\([^,\" \n\t]+\\)\\(?:, line\\|:\\) \\([0-9]+\\):" 3 4 nil (1 . 2)) - (ruby - "^[\t ]*\\(?:from \\)?\ -\\([^\(\n][^[:space:]\n]*\\):\\([1-9][0-9]*\\)\\(:in `.*'\\)?.*$" 1 2) - (java "^\\(?:[ \t]+at \\|==[0-9]+== +\\(?:at\\|b\\(y\\)\\)\\).+(\\([^()\n]+\\):\\([0-9]+\\))$" 2 3 nil (1)) @@ -241,6 +237,10 @@ nil 1 nil 2 0 (2 (compilation-face '(3)))) + (gcc-include + "^\\(?:In file included \\| \\|\t\\)from \ +\\(.+\\):\\([0-9]+\\)\\(?:\\(:\\)\\|\\(,\\|$\\)\\)?" 1 2 nil (3 . 4)) + (gnu ;; The first line matches the program name for @@ -264,7 +264,7 @@ ;; can be composed of any non-newline char, but it also rules out some ;; valid but unlikely cases, such as a trailing space or a space ;; followed by a -. - "^\\(?:[[:alpha:]][-[:alnum:].]+: ?\\)?\ + "^\\(?:[[:alpha:]][-[:alnum:].]+: ?\\|[ \t]+\\(?:in \\|from \\)\\)?\ \\([0-9]*[^0-9\n]\\(?:[^\n ]\\| [^-/\n]\\)*?\\): ?\ \\([0-9]+\\)\\(?:\\([.:]\\)\\([0-9]+\\)\\)?\ \\(?:-\\([0-9]+\\)?\\(?:\\.\\([0-9]+\\)\\)?\\)?:\ @@ -273,12 +273,6 @@ \[0-9]?\\(?:[^0-9\n]\\|$\\)\\|[0-9][0-9][0-9]\\)" 1 (2 . 5) (4 . 6) (7 . 8)) - ;; The `gnu' style above can incorrectly match gcc's "In file - ;; included from" message, so we process that first. -- cyd - (gcc-include - "^\\(?:In file included\\| \\) from \ -\\(.+\\):\\([0-9]+\\)\\(?:\\(:\\)\\|\\(,\\)\\)?" 1 2 nil (3 . 4)) - (lcc "^\\(?:E\\|\\(W\\)\\), \\([^(\n]+\\)(\\([0-9]+\\),[ \t]*\\([0-9]+\\)" 2 3 4 (1))