Subject: Re: bug#9679: 24.0.90; After rgrep, next-error goes to the wrong line

From: Juri Linkov <[email-masked]>
Date: Fri, 07 Oct 2011 19:36:00 +0300

> col: 13, screen nil
> col: 7, screen nil
> col: 13, screen t
> col: 7, screen t

Something is completely broken in your test case, because I get:

col: 13, screen nil
col: 7, screen nil
col: 13, screen nil
col: 7, screen nil

i.e. `nil' is what's expected for the second match.

I don't understand how `t' is possible.  It looks like
`compilation-next-error-function' is not in `grep-mode' at that time.

Could you please add the following `message' to `compilation-next-error-function':

(defun compilation-next-error-function (n &optional reset)
  "Advance to the next error message and visit the file where the error was.
This is the value of `next-error-function' in Compilation buffers."
  (interactive "p")
  (when reset
    (setq compilation-current-error nil))
  (message "mode: %S, buffer: %S" major-mode (current-buffer))
  ...

I get the following output:

mode: grep-mode, buffer: #<buffer *grep*>
col: 13, screen nil
col: 7, screen nil
col: 13, screen nil
col: 7, screen nil
mode: grep-mode, buffer: #<buffer *grep*>