|
|
I'm used to using igrep within XEmacs. Today I installed the most recent
version I could find for use with Emacs as well, and found that its
matching presentation differs. The relevant versions are as follows:
,----
| GNU Emacs 22.2.1 (i386-mingw-nt5.1.2600) of 2008-03-26 on RELEASE
| igrep: 2.113
| compile: (not sure, but carries copyright year 2008)
`----
When I run `igrep-find', it produces a compilation buffer such as the
following:
,----[ Sample `igrep-find' compilation buffer ]
| -*- mode: igrep; default-directory: "~/.emacs.d/" -*-
| Igrep started at Sun Aug 03 09:29:50
|
| find . -type d \( -name RCS -o -name CVS -o -name SCCS \) -prune -o -type f
\! -name \*\~ \! -name \*\,v \! -name s.\* \! -name .\#\* -name \*.el -print0 |
xargs -0 -e egrep -n -e memq NUL
| ./cygwin.el:3:(defvar running-on-cygwin-p (memq system-type '(cygwin
cygwin32)))
| ./platform.el:3:(when (memq system-type '(windows-nt cygwin))
|
| Igrep finished (matches found) at Sun Aug 03 09:29:50
`----
The problem is that the lines starting with "Igrep started" and "Igrep
finished" are interpreted as "info" lines, hyperlinked, and selected as
part of the `next-error' sequence. In each of these lines, the minute
component of the time (29 in both) is selected as the target line
number, with file locations that obviously don't exist ("Igrep started
at Sun Aug 03 09" for the first).
I tried working through the regular expressions supplied in compile.el
to figure out which one is matching here mistakenly:
,----
| (dolist (pair compilation-error-regexp-alist-alist)
| (let ((name (symbol-name (car pair))))
| ;(message "Trying to match '%s'." name)
| (when (string-match (cadr pair)
| "Igrep started at Sun Aug 03 09:29:50")
| (return name))))
`----
None of those matched. Reaching further, next I tried the ones in
`compilation-mode-font-lock-keywords', and found no match there either.
In each of the two (mis)matched lines, the faces are assigned as
follows:
,----
| Igrep started at Sun Aug 03 09:29:50
| | | |||
| +-------------+--------------+ ++|
| | compilation-info compilation-line-number
| | |
| +-------------+------------------+
| underline
`----
That is, everything up through the last colon is underlined. Everything
up to the first colon is compilation-info; the numbers between the first
and second colons are compilation-line-number.
Looking through igrep.el, I don't see any regular expressions there, so
I suspect that the problem here lies with compile.el. I'd appreciate
some help figure out which regular expression is matching these lines so
that I can defeat the match and make `next-error' pass over these lines.
--
Steven E. Harris
|
|