Subject: bug#3965: 23.1.50; compilation-mode gnu error regexp mismatching ant, irix, gcc-include

From: Kevin Ryde <[email-masked]>
Date: Thu, 30 Jul 2009 09:13:29 +1000

Doing

    (setq compilation-error-regexp-alist '(gnu))

and visiting etc/compilation.txt shows some mismatched parts.

Under "ant"

        [jikes]  foo.java:3:5:7:9: blah blah

Under "irix"

    cfe: Warning 600: xfe.c: 170: Not in a conditional directive while ...
    /usr/lib/cmplrs/cc/cfe: Error: foo.c: 1: blah blah
    /usr/lib/cmplrs/cc/cfe: warning: foo.c: 1: blah blah

And under "gcc-include"

                     from test_clt.cc:1:

In each the match has the wrong part as the filename.  For example the
"ant" one matches "[jikes] foo.java".  With all patterns enabled
`next-error' offers those wrong matches instead of what the specific
patterns for those parts get -- I suppose because the gnu match is
earlier in the line.

Maybe the "ant" and "gcc-include" cases could be attacked by not
allowing leading whitespace.  The "omake" indentation hack might get in
the way there; but is its indentation arbitrary, or a fixed-ish amount?

My best idea for the irix ones would be to disallow ": " in the gnu
pattern filename part.  Other colons could be allowed for dos drive
letters or the occasional filename with a colon, but rate colon+space as
more likely to be a separator than a part of a name.  Mind you the gnu
pattern is already far too complicated for me to want to do anything to
it :-)

In GNU Emacs 23.1.50.4 (i586-pc-linux-gnu, GTK+ Version 2.16.4)
 of 2009-07-24 on blah.blah
configured using `configure  'CFLAGS=-O -g' '--prefix=/down/emacs/b/inst' '--with-x-toolkit=gtk''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_AU
  value of $XMODIFIERS: nil
  locale-coding-system: iso-latin-1-unix
  default-enable-multibyte-characters: t