Require CL.

(compilation-mode-font-lock-keywords): Re-install the "line as function" patch.
This commit is contained in:
Stefan Monnier 2004-04-07 19:34:11 +00:00
parent d5d66b7eda
commit 583a15bb15

View file

@ -66,9 +66,10 @@
;; These are the value of the `message' text-properties in the compilation ;; These are the value of the `message' text-properties in the compilation
;; buffer. ;; buffer.
;;; Code: ;;; Code:
(eval-when-compile (require 'cl))
(defgroup compilation nil (defgroup compilation nil
"Run compiler as inferior of Emacs, parse error messages." "Run compiler as inferior of Emacs, parse error messages."
:group 'tools :group 'tools
@ -673,33 +674,45 @@ Faces `compilation-error-face', `compilation-warning-face',
(if (consp file) (setq fmt (cdr file) file (car file))) (if (consp file) (setq fmt (cdr file) file (car file)))
(if (consp line) (setq end-line (cdr line) line (car line))) (if (consp line) (setq end-line (cdr line) line (car line)))
(if (consp col) (setq end-col (cdr col) col (car col))) (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)
`(,(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 (integerp file) ,@(when line
`((,file ,(if (consp type) `((,line compilation-line-face nil t)))
`(compilation-face ',type) ,@(when end-line
(aref [compilation-info-face `((,end-line compilation-line-face nil t)))
compilation-warning-face
compilation-error-face]
(or type 2))))))
,@(when line ,@(when col
`((,line compilation-line-face nil t))) `((,col compilation-column-face nil t)))
,@(when end-line ,@(when end-col
`((,end-line compilation-line-face nil t))) `((,end-col compilation-column-face nil t)))
,@(when col ,@(nthcdr 6 item)
`((,col compilation-column-face nil t))) (,(or (nth 5 item) 0)
,@(when end-col (compilation-error-properties ',file ,line ,end-line
`((,end-col compilation-column-face nil t))) ,col ,end-col ',(or type 2)
',fmt)
,@(nthcdr 6 item) append))))) ; for compilation-message-face
(,(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-error-regexp-alist)
compilation-mode-font-lock-keywords)) compilation-mode-font-lock-keywords))