summaryrefslogtreecommitdiff
path: root/lisp/progmodes/compile.el
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2007-07-31 05:50:45 +0000
committerMiles Bader <miles@gnu.org>2007-07-31 05:50:45 +0000
commit9899d01a0ccec166e04caa60657a44e614be50cd (patch)
tree6f7874938065fd9808765059213ff7a94ab3268b /lisp/progmodes/compile.el
parent96157d113ae5828cc280488211610db1960d572c (diff)
parent2f12b713116a4e15b4744fc78d5f0dbb57fcd1ca (diff)
downloademacs-9899d01a0ccec166e04caa60657a44e614be50cd.tar.gz
Merge from emacs--devo--0
Patches applied: * emacs--devo--0 (patch 824-838) - Update from CVS - Merge from emacs--rel--22 - Remove lisp/erc/erc-nicklist.el - Update some .arch-inventory files - Fix void function definition error in cus-edit.el - Restore lisp/emacs-lisp/cl-loaddefs.el * emacs--rel--22 (patch 70-83) - Update from CVS - Remove lisp/erc/erc-nicklist.el - Update some .arch-inventory files - Indicate that emacs--devo--0--patch-834 does not need to be applied - Merge from gnus--rel--5.10 - Restore lisp/emacs-lisp/cl-loaddefs.el * gnus--rel--5.10 (patch 239-241) - Merge from emacs--devo--0 - Update from CVS Revision: emacs@sv.gnu.org/emacs--multi-tty--0--patch-28
Diffstat (limited to 'lisp/progmodes/compile.el')
-rw-r--r--lisp/progmodes/compile.el44
1 files changed, 22 insertions, 22 deletions
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 0c57e6f55b1..2710066c2cd 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -12,7 +12,7 @@
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -167,6 +167,10 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
"^[ \t]*\\[[^] \n]+\\][ \t]*\\([^: \n]+\\):\\([0-9]+\\):\\(?:\\([0-9]+\\):[0-9]+:[0-9]+:\\)?\
\\( warning\\)?" 1 2 3 (4))
+ (maven
+ ;; Maven is a popular build tool for Java. Maven is Free Software.
+ "\\(.*?\\):\\[\\([0-9]+\\),\\([0-9]+\\)\\]" 1 2 3)
+
(bash
"^\\([^: \n\t]+\\): line \\([0-9]+\\):" 1 2)
@@ -1101,8 +1105,7 @@ Returns the compilation buffer created."
(unless (getenv "EMACS")
(list "EMACS=t"))
(list "INSIDE_EMACS=t")
- (copy-sequence process-environment)))
- (start-process (symbol-function 'start-process)))
+ (copy-sequence process-environment))))
(set (make-local-variable 'compilation-arguments)
(list command mode name-function highlight-regexp))
(set (make-local-variable 'revert-buffer-function)
@@ -1123,22 +1126,14 @@ Returns the compilation buffer created."
;; comint uses `start-file-process'.
(get-buffer-process
(with-no-warnings
- (comint-exec outbuf (downcase mode-name)
- shell-file-name nil `("-c" ,command))))
- ;; Redefine temporarily `start-process' in order to
- ;; handle remote compilation.
- (fset 'start-process
- (lambda (name buffer program &rest program-args)
- (apply
- (if (file-remote-p default-directory)
- 'start-file-process
- start-process)
- name buffer program program-args)))
- (unwind-protect
- (start-process-shell-command (downcase mode-name)
- outbuf command)
- ;; Unwindform: Reset original definition of `start-process'.
- (fset 'start-process start-process)))))
+ (comint-exec
+ outbuf (downcase mode-name)
+ (if (file-remote-p default-directory)
+ "/bin/sh"
+ shell-file-name)
+ `("-c" ,command))))
+ (start-file-process-shell-command (downcase mode-name)
+ outbuf command))))
;; Make the buffer's mode line show process state.
(setq mode-line-process '(":%s"))
(set-process-sentinel proc 'compilation-sentinel)
@@ -2055,9 +2050,9 @@ The file-structure looks like this:
;; compilation-error-list) to point-min, but that was only meaningful for
;; the internal uses of compilation-forget-errors: all calls from external
;; packages seem to be followed by a move of compilation-parsing-end to
- ;; something equivalent to point-max. So we speculatively move
+ ;; something equivalent to point-max. So we heuristically move
;; compilation-current-error to point-max (since the external package
- ;; won't know that it should do it). --stef
+ ;; won't know that it should do it). --Stef
(setq compilation-current-error nil)
(let* ((proc (get-buffer-process (current-buffer)))
(mark (if proc (process-mark proc)))
@@ -2068,7 +2063,12 @@ The file-structure looks like this:
;; we need to put ours just before the insertion point rather
;; than at the insertion point. If that's not possible, then
;; don't use a marker. --Stef
- (if (> pos (point-min)) (copy-marker (1- pos)) pos))))
+ (if (> pos (point-min)) (copy-marker (1- pos)) pos)))
+ ;; Again, since this command is used in buffers that contain several
+ ;; compilations, to set the beginning of "this compilation", it's a good
+ ;; place to reset compilation-auto-jump-to-next.
+ (set (make-local-variable 'compilation-auto-jump-to-next)
+ compilation-auto-jump-to-first-error))
;;;###autoload
(add-to-list 'auto-mode-alist '("\\.gcov\\'" . compilation-mode))