From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.bugs Subject: bug#53989: 29.0.50; Gnus searches broken Date: Tue, 15 Feb 2022 15:23:07 -0800 Message-ID: <8735kjd89w.fsf@ericabrahamsen.net> References: <874k52i0ef.fsf@web.de> <87v8xijcuo.fsf@ericabrahamsen.net> <875ypicac2.fsf@web.de> <871r06c9ed.fsf@web.de> <874k51hzey.fsf@ericabrahamsen.net> <874k51qd1k.fsf@web.de> <87ee45gi6j.fsf@ericabrahamsen.net> <87v8xhowz1.fsf@web.de> <871r05ghfj.fsf@ericabrahamsen.net> <87pmnpowif.fsf@web.de> <87h791ow4f.fsf@web.de> <87pmnpf1wq.fsf@ericabrahamsen.net> <87wnhw9759.fsf@web.de> <878rucg5cu.fsf@ericabrahamsen.net> <87v8xg7oce.fsf@web.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="7566"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: 53989@debbugs.gnu.org To: Michael Heerdegen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Feb 16 00:24:22 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nK7BF-0001lV-Dr for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 16 Feb 2022 00:24:21 +0100 Original-Received: from localhost ([::1]:51468 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nK7BE-0006lQ-F4 for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 15 Feb 2022 18:24:20 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:60236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nK7Ax-0006jV-98 for bug-gnu-emacs@gnu.org; Tue, 15 Feb 2022 18:24:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:52857) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nK7Aw-000168-OW for bug-gnu-emacs@gnu.org; Tue, 15 Feb 2022 18:24:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nK7Aw-0002L9-IM for bug-gnu-emacs@gnu.org; Tue, 15 Feb 2022 18:24:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eric Abrahamsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 15 Feb 2022 23:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53989 X-GNU-PR-Package: emacs Original-Received: via spool by 53989-submit@debbugs.gnu.org id=B53989.16449673988930 (code B ref 53989); Tue, 15 Feb 2022 23:24:02 +0000 Original-Received: (at 53989) by debbugs.gnu.org; 15 Feb 2022 23:23:18 +0000 Original-Received: from localhost ([127.0.0.1]:46753 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nK7AE-0002Jx-71 for submit@debbugs.gnu.org; Tue, 15 Feb 2022 18:23:18 -0500 Original-Received: from mail.ericabrahamsen.net ([52.70.2.18]:46712) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nK7AC-0002JW-1M for 53989@debbugs.gnu.org; Tue, 15 Feb 2022 18:23:16 -0500 Original-Received: from localhost (97-126-64-167.tukw.qwest.net [97.126.64.167]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 4E703102A15; Tue, 15 Feb 2022 23:23:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net; s=mail; t=1644967389; bh=1k0QZ2xAtApqHdFohxpx0L3TnQHk9qYfhRMesM1V6cA=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=oHoDzJm6HDbbUjFZ/ENvHiDLNekYvF9/0fL6fDwuC/NoPT/UNueFVpknsKntS1MZv w1gaV+DVWe3cWfV7ya2wXewkhvpm+Z1yJgxCrYQx/hrGe63RzUBuSaiIMXu3C3n8MU q/JVFwbTPgCpRvqxhoQ4MHKIRk0EVq1700P1Ugpc= In-Reply-To: <87v8xg7oce.fsf@web.de> (Michael Heerdegen's message of "Tue, 15 Feb 2022 05:20:17 +0100") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:227018 Archived-At: --=-=-= Content-Type: text/plain On 02/15/22 05:20 AM, Michael Heerdegen wrote: > Eric Abrahamsen writes: > >> Oh, that's not bad. If you mess up your mairix config again and then >> eval this: >> >> (cl-defmethod gnus-search-indexed-extract :around >> ((_engine gnus-search-indexed)) >> (let ((ret (cl-call-next-method))) >> (cl-callf expand-file-name (car ret) "/") >> ret)) >> >> Does everything work properly? > > Yes, I think so, looks good. Okay, it turns out that also lets us drop most of the regexp silliness from the parsing stuff. Would you mind trying the attached patch and confirm that it doesn't break anything? I'll try to make this the last time I mess with search results parsing... --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=moresearchparsingfun.diff diff --git a/lisp/gnus/gnus-search.el b/lisp/gnus/gnus-search.el index 605d8a34e9..871163c38b 100644 --- a/lisp/gnus/gnus-search.el +++ b/lisp/gnus/gnus-search.el @@ -1396,17 +1396,22 @@ gnus-search-indexed-parse-output (file-readable-p f-name) (null (file-directory-p f-name))) (setq group - (replace-regexp-in-string - "[/\\]" "." - (replace-regexp-in-string - "/?\\(cur\\|new\\|tmp\\)?/\\'" "" + (delete + "" + (file-name-split (replace-regexp-in-string - "\\`\\." "" - (string-remove-prefix + "\\`\\." "" ; Why do we do this? + (string-remove-prefix prefix (file-name-directory f-name)) - nil t) - nil t) - nil t)) + nil t))) + ;; Turn file name segments into Gnus group name. + group (mapconcat + #'identity + (if (member (car (last group)) + '("new" "tmp" "cur")) + (nbutlast group) + group) + ".")) (setq article (file-name-nondirectory f-name) article ;; TODO: Provide a cleaner way of producing final @@ -1434,6 +1439,14 @@ gnus-search-indexed-parse-output (string-to-number score)))) artlist))) +(cl-defmethod gnus-search-indexed-extract :around + ((_engine gnus-search-indexed)) + (let ((ret (cl-call-next-method))) + ;; We run `expand-file-name' here in order to collapse multiple + ;; consecutive directory separators. + (cl-callf expand-file-name (car ret)) + ret)) + (cl-defmethod gnus-search-indexed-extract ((_engine gnus-search-indexed)) "Base implementation treats the whole line as a filename, and fudges a relevancy score of 100." --=-=-=--