Subject: bug#46047: 28.0.50; Namazu-based mail searching not working anymore

From: Eric Abrahamsen <[email-masked]>
Date: Mon, 17 May 2021 11:53:27 -0700

Torsten Bronger <[email-masked]> writes:

> Hallöchen!
>
> Eric Abrahamsen writes:
>
>> [...]
>>
>> I'm assuming you've also got `gnus-search-namazu-raw-queries-p'
>> set to t, otherwise you would have hit an error earlier than this.
>
> No, but I did now.

Oh, maybe you just had `gnus-search-use-parsed-queries' set to nil. One
way or another, the query must not be getting parsed. But that's fine!

>> [...]
>>
>> Earlier in the day I pushed a change to Emacs master to use
>> `condition-case-unless-debug' in `nnselect-run'. If you're in the
>> habit of running a recent Emacs, would you pull from source and
>> rebuild, then `toggle-debug-on-error' and run this search again,
>> posting the backtrace?
>
> Debugger entered--Lisp error: (wrong-type-argument stringp nil)
>   file-readable-p(nil)

This just means that when namazu returns its search results, this
function fails to find a filename. In other words, the (match-string 4)
returns nil.

(cl-defmethod gnus-search-indexed-extract ((_engine gnus-search-namazu))
  "Extract a single message result for Namazu.
Namazu provides a little more information, for instance a score."

  (when (re-search-forward
	 "^\\([0-9,]+\\.\\).*\\((score: \\([0-9]+\\)\\))\n\\([^ ]+\\)"
	 nil t)
    (forward-line 1)
    (list (match-string 4)
	  (match-string 3))))

Using the example results that you send me (the bash script) the file
names are found correctly. Is there a way you can find and show me the
filename that isn't being found by this regexp? I assume it's a filename
that doesn't start with a digit. I'm not sure where this regexp came
from, originally.