Subject: Re: flymake highlights errors from wrong file

From: Chong Yidong <[email-masked]>
Date: Mon, 18 Aug 2008 15:21:39 -0400

Hi Pavel,

Could you review the patch sent by Nikolaj?  Thanks.

Nikolaj Schumacher wrote:

> flymake will highlight errors in the current buffer, even if the error
> comes from a different file.
>
> This can be noted, for example, when using
>
> >  check-syntax:
> >          gcc -Wall -Wextra -fsyntax-only *.cpp
>
> instead of the more common
>
> >  check-syntax:
> >          gcc -Wall -Wextra -pedantic -fsyntax-only -S $(CHK_SOURCES)
>
> in the Makefile.
>
> It also happens when using ant, where it can't be avoided.
>
> The attached patch filters out these errors when parsing.
> Alternatively, they could be filtered out when highlighting.

--- lisp/progmodes/flymake.el	2008-06-02 23:30:29.000000000 +0200
+++ lisp/progmodes/flymake.el	2008-06-05 23:30:08.000000000 +0200
@@ -866,11 +867,10 @@
                                       (flymake-ler-file line-err-info)))
 	(setq line-err-info (flymake-ler-set-full-file line-err-info real-file-name))
 
-	(if (flymake-same-files real-file-name source-file-name)
-	    (setq line-err-info (flymake-ler-set-file line-err-info nil))
-	  (setq line-err-info (flymake-ler-set-file line-err-info (file-name-nondirectory real-file-name))))
+	(when (flymake-same-files real-file-name source-file-name)
+	  (setq line-err-info (flymake-ler-set-file line-err-info nil))
+	  (setq err-info-list (flymake-add-err-info err-info-list line-err-info))))
 
-	(setq err-info-list (flymake-add-err-info err-info-list line-err-info)))
       (flymake-log 3 "parsed '%s', %s line-err-info" (nth idx lines) (if line-err-info "got" "no"))
       (setq idx (1+ idx)))
     err-info-list))