diff options
| author | Daniel Pfeiffer <occitan@esperanto.org> | 2004-04-07 12:57:04 +0000 | 
|---|---|---|
| committer | Daniel Pfeiffer <occitan@esperanto.org> | 2004-04-07 12:57:04 +0000 | 
| commit | f6164cdd527b0322da085cff66c186fd53c2b83c (patch) | |
| tree | daa8ba0096501f0ea557a53caab480ada10e69f6 | |
| parent | 3a8b699318f2779aabadb05b5986577d6816eced (diff) | |
| download | emacs-f6164cdd527b0322da085cff66c186fd53c2b83c.tar.gz | |
(compilation-warning-face, compilation-info-face, compilation-skip-threshold)
(compilation-skip-visited, compilation-context-lines): Declare :version when added to Emacs.
(compilation-error-regexp-alist-alist): Extend caml and irix.
(compilation-setup): Fix if font-locked w/o font-lock-defaults.
(compilation-mode-font-lock-keywords): Temporarily undo line as function patch, which wasn't ready.
| -rw-r--r-- | lisp/ChangeLog | 11 | ||||
| -rw-r--r-- | lisp/progmodes/compile.el | 174 | 
2 files changed, 93 insertions, 92 deletions
| diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 74f39d570f8..18256b09a78 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,14 @@ +2004-04-07  Daniel Pfeiffer  <occitan@esperanto.org> + +	* progmodes/compile.el (compilation-warning-face) +	(compilation-info-face, compilation-skip-threshold) +	(compilation-skip-visited, compilation-context-lines): Declare +	:version when added to Emacs. +	(compilation-error-regexp-alist-alist): Extend caml and irix. +	(compilation-setup): Fix if font-locked w/o font-lock-defaults. +	(compilation-mode-font-lock-keywords): Temporarily undo line as +	function patch, which wasn't ready. +  2004-04-07  Kenichi Handa  <handa@m17n.org>  	* international/latin1-disp.el (latin1-display-setup): Check each diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 404494ac313..f53336c409d 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -69,8 +69,6 @@  ;;; Code: -;; This is the parsing engine for compile: -  (defgroup compilation nil    "Run compiler as inferior of Emacs, parse error messages."    :group 'tools @@ -169,9 +167,9 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))   \\([0-9]+\\)\\(?:[) \t]\\|:[^0-9\n]\\)" 2 3 nil (1))      (caml -     "^ *File \"\\([^,\" \n\t]+\\)\", lines? \\([0-9]+\\)-?\\([0-9]+\\)?,\ -\\(?: characters? \\([0-9]+\\)-?\\([0-9]+\\)?:\\)?\\([ \n]Warning:\\)?" -     1 (2 . 3) (4 . 5) (6)) +     "^ *File \\(\"?\\)\\([^,\" \n\t<>]+\\)\\1, lines? \\([0-9]+\\)-?\\([0-9]+\\)?\\(?:$\\|,\ +\\(?: characters? \\([0-9]+\\)-?\\([0-9]+\\)?:\\)?\\([ \n]Warning:\\)?\\)" +     2 (3 . 4) (5 . 6) (7))      (comma       "^\"\\([^,\" \n\t]+\\)\", line \\([0-9]+\\)\ @@ -189,8 +187,8 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))   \\(?:warnin\\(g\\)\\|informationa\\(l\\)\\)?" 1 2 3 (4 . 5))      (irix -     "^[a-z0-9/]+: \\(?:[eE]rror\\|[wW]arnin\\(g\\)\\)[0-9 ]*:\ - \\([^,\" \n\t]+\\)\\(?:, line\\|:\\) \\([0-9]+\\):" 2 3 nil (1)) +     "^[a-z0-9/]+: \\(?:[eE]rror\\|[wW]arnin\\(g\\)\\|[iI]nf\\(o\\)\\)[0-9 ]*:\ + \\([^,\" \n\t]+\\)\\(?:, line\\|:\\) \\([0-9]+\\):" 3 4 nil (1 . 2))      (java       "^\\(?:[ \t]+at \\|==[0-9]+== +\\(?:at\\|b\\(y\\)\\)\\).+(\\([^()\n]+\\):\\([0-9]+\\))$" 2 3 nil (1)) @@ -452,7 +450,8 @@ starting the compilation process.")      (((class color)) (:foreground "Orange" :weight bold))      (t (:weight bold)))    "Face used to highlight compiler warnings." -  :group 'font-lock-highlighting-faces) +  :group 'font-lock-highlighting-faces +  :version "21.4")  (defface compilation-info-face    '((((type tty) (class color)) (:foreground "green" :weight bold)) @@ -460,7 +459,8 @@ starting the compilation process.")      (((class color) (background dark)) (:foreground "Green" :weight bold))      (t (:weight bold)))    "Face used to highlight compiler warnings." -  :group 'font-lock-highlighting-faces) +  :group 'font-lock-highlighting-faces +  :version "21.4")  (defvar compilation-message-face nil    "Face name to use for whole messages. @@ -649,76 +649,60 @@ Faces `compilation-error-face', `compilation-warning-face',  (defun compilation-mode-font-lock-keywords ()    "Return expressions to highlight in Compilation mode." -  (if compilation-parse-errors-function -      ;; An old package!  Try the compatibility code. -      '((compilation-compat-parse-errors)) -    (append -     ;; make directory tracking -     (if compilation-directory-matcher -	 `((,(car compilation-directory-matcher) -	    ,@(mapcar (lambda (elt) -			`(,(car elt) -			  (compilation-directory-properties -			   ,(car elt) ,(cdr elt)) -			  t)) -		      (cdr compilation-directory-matcher))))) - -     ;; Compiler warning/error lines. -     (mapcar -      (lambda (item) -	(if (symbolp item) -	    (setq item (cdr (assq item -				  compilation-error-regexp-alist-alist)))) -	(let ((file (nth 1 item)) -	      (line (nth 2 item)) -	      (col (nth 3 item)) -	      (type (nth 4 item)) -	      end-line end-col fmt) -	  (if (consp file) (setq fmt (cdr file)	  file (car file))) -	  (if (consp line) (setq end-line (cdr line) line (car line))) -	  (if (consp col)	(setq end-col (cdr col)	  col (car col))) -	   -	  (if (symbolp line) -	      ;; The old compile.el had here an undocumented hook that -	      ;; allowed `line' to be a function that computed the actual -	      ;; error location.  Let's do our best. -	      `(,(car item) -		(0 (compilation-compat-error-properties -		    (funcall ',line (list* (match-string ,file) -					  default-directory -					  ',(nthcdr 4 item)) -			     ,(if col `(match-string ,col))))) -		(,file compilation-error-face t)) -		     -	    `(,(nth 0 item) - -	      ,@(when (integerp file) -		  `((,file ,(if (consp type) -				`(compilation-face ',type) -			      (aref [compilation-info-face -				     compilation-warning-face -				     compilation-error-face] -				    (or type 2)))))) - -	      ,@(when line -		  `((,line compilation-line-face nil t))) -	      ,@(when end-line -		  `((,end-line compilation-line-face nil t))) - -	      ,@(when col -		  `((,col compilation-column-face nil t))) -	      ,@(when end-col -		  `((,end-col compilation-column-face nil t))) - -	      ,@(nthcdr 6 item) -	      (,(or (nth 5 item) 0) -	       (compilation-error-properties ',file ,line ,end-line -					     ,col ,end-col ',(or type 2) -					     ',fmt) -	       append)))))		; for compilation-message-face -      compilation-error-regexp-alist) - -     compilation-mode-font-lock-keywords))) +  (nconc +   ;; make directory tracking +   (if compilation-directory-matcher +       `((,(car compilation-directory-matcher) +	  ,@(mapcar (lambda (elt) +		      `(,(car elt) +			(compilation-directory-properties +			 ,(car elt) ,(cdr elt)) +			t)) +		    (cdr compilation-directory-matcher))))) + +   ;; Compiler warning/error lines. +   (mapcar (lambda (item) +	     (if (symbolp item) +		 (setq item (cdr (assq item +				       compilation-error-regexp-alist-alist)))) +	     (let ((file (nth 1 item)) +		   (line (nth 2 item)) +		   (col (nth 3 item)) +		   (type (nth 4 item)) +		   end-line end-col fmt) +	       (if (consp file) (setq fmt (cdr file)	  file (car file))) +	       (if (consp line) (setq end-line (cdr line) line (car line))) +	       (if (consp col)	(setq end-col (cdr col)	  col (car col))) + +	       `(,(nth 0 item) + +		 ,@(when (integerp file) +		     `((,file ,(if (consp type) +				   `(compilation-face ',type) +				 (aref [compilation-info-face +					compilation-warning-face +					compilation-error-face] +				       (or type 2)))))) + +		 ,@(when line +		     `((,line compilation-line-face nil t))) +		 ,@(when end-line +		     `((,end-line compilation-line-face nil t))) + +		 ,@(when col +		     `((,col compilation-column-face nil t))) +		 ,@(when end-col +		     `((,end-col compilation-column-face nil t))) + +		 ,@(nthcdr 6 item) +		 (,(or (nth 5 item) 0) +		  (compilation-error-properties ',file ,line ,end-line +						,col ,end-col ',(or type 2) +						',fmt) +		  append))))		; for compilation-message-face +	   compilation-error-regexp-alist) + +   compilation-mode-font-lock-keywords))  ;;;###autoload @@ -1044,7 +1028,8 @@ info, are considered errors."    :type '(choice (const :tag "Warnings and info" 2)  		 (const :tag "Info" 1)  		 (const :tag "None" 0)) -  :group 'compilation) +  :group 'compilation +  :version "21.4")  (defcustom compilation-skip-visited nil    "*Compilation motion commands skip visited messages if this is t. @@ -1052,7 +1037,8 @@ Visited messages are ones for which the file, line and column have been jumped  to from the current content in the current compilation buffer, even if it was  from a different message."    :type 'boolean -  :group 'compilation) +  :group 'compilation +  :version "21.4")  ;;;###autoload  (defun compilation-mode () @@ -1129,10 +1115,6 @@ The global commands next/previous/first-error/goto-error use this.")    (make-local-variable 'compilation-current-error)    (make-local-variable 'compilation-error-screen-columns)    (setq compilation-last-buffer (current-buffer)) -  (if (and minor font-lock-defaults) -      (font-lock-add-keywords nil (compilation-mode-font-lock-keywords)) -    (set (make-local-variable 'font-lock-defaults) -	 '(compilation-mode-font-lock-keywords t)))    (set (make-local-variable 'font-lock-extra-managed-props)         '(directory message help-echo mouse-face debug))    (set (make-local-variable 'compilation-locs) @@ -1141,12 +1123,19 @@ The global commands next/previous/first-error/goto-error use this.")    ;; jit-lock might fontify some things too late.    (set (make-local-variable 'font-lock-support-mode) nil)    (set (make-local-variable 'font-lock-maximum-size) nil) -  (if minor -      (if font-lock-mode -	  (font-lock-fontify-buffer) -	(turn-on-font-lock)) -    ;; maybe defer font-lock till after derived mode is set up -    (run-mode-hooks 'compilation-turn-on-font-lock))) +  (let ((fld font-lock-defaults)) +    (if (and minor fld) +	(font-lock-add-keywords nil (compilation-mode-font-lock-keywords)) +      (setq font-lock-defaults '(compilation-mode-font-lock-keywords t))) +    (if minor +	(if font-lock-mode +	    (if fld +		(font-lock-fontify-buffer) +	      (font-lock-change-mode) +	      (turn-on-font-lock)) +	  (turn-on-font-lock)) +      ;; maybe defer font-lock till after derived mode is set up +      (run-mode-hooks 'compilation-turn-on-font-lock))))  ;;;###autoload  (define-minor-mode compilation-shell-minor-mode @@ -1486,7 +1475,8 @@ This operates on the output from the \\[compile] command."  (defcustom compilation-context-lines next-screen-context-lines    "*Display this many lines of leading context before message."    :type 'integer -  :group 'compilation) +  :group 'compilation +  :version "21.4")  (defsubst compilation-set-window (w mk)    ;; Align the compilation output window W with marker MK near top. | 
