all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 33122@debbugs.gnu.org
Subject: bug#33122: Acknowledgement (27.0.50; Allow use of Gnus search groups as notmuch :path search terms)
Date: Mon, 19 Nov 2018 10:17:24 -0800	[thread overview]
Message-ID: <87bm6l9bkb.fsf@ericabrahamsen.net> (raw)
In-Reply-To: <83h8gyft55.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 03 Nov 2018 10:43:34 +0200")

[-- Attachment #1: Type: text/plain, Size: 495 bytes --]


On 11/03/18 10:43 AM, Eli Zaretskii wrote:
>> From: Eric Abrahamsen <eric@ericabrahamsen.net>
>> Date: Wed, 24 Oct 2018 08:46:29 +0800
>> 
>> Here's an updated version of the patch, thanks to Andreas Goesele for
>> reporting and testing.
>
> Thanks, pushed to the master branch.

In hindsight, this behavior should be off by default: it's going to
require user intervention too often to be practical as on-by-default.
This patch changes that, fixes a small bug, and also documents the
option.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Fix-Allow-use-of-Gnus-search-groups-as-notmuch-path-.patch --]
[-- Type: text/x-patch, Size: 3557 bytes --]

From 7c26e8db58f64446f60c6f255a1a614deba198a6 Mon Sep 17 00:00:00 2001
From: Eric Abrahamsen <eric@ericabrahamsen.net>
Date: Mon, 19 Nov 2018 10:03:16 -0800
Subject: [PATCH] Fix "Allow use of Gnus search groups as notmuch path: search
 term"

* lisp/gnus/nnir.el (nnir-notmuch-filter-group-names-function):
  Default to nil -- getting correct behavior requires user
  intervention too often to have this enabled by default.
* lisp/gnus/nnir.el (nnir-run-notmuch): If the user has turned this
  on, then also hardcode `gnus-group-short-name' as a filter -- things
  will never work without it. Also move leading space to before the
  opening parenthesis.
* doc/misc/gnus.texi: Document option.

(Bug#33122)
---
 doc/misc/gnus.texi | 12 ++++++++++++
 lisp/gnus/nnir.el  | 27 +++++++++++++--------------
 2 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index fb9113f460..d1c746c2e5 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -21468,6 +21468,18 @@ The notmuch Engine
 to get a group name (albeit with @samp{/} instead of @samp{.}).  This
 is a regular expression.
 
+@item nnir-notmuch-filter-group-names-function
+A function used to transform the names of groups being searched in,
+for use as a ``path:'' search keyword for notmuch.  If nil, the
+default, ``path:'' keywords are not used.  Otherwise, this should be a
+callable which accepts a single group name and returns a transformed
+name as notmuch expects to see it.  In many mail backends, for
+instance, dots in group names must be converted to forward slashes: to
+achieve this, set this option to
+@example
+(lambda (g) (replace-regexp-in-string "\\." "/" g))
+@end example
+
 @end table
 
 
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index ea7257d0c9..084b154e8a 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -518,18 +518,16 @@ nnir-notmuch-remove-prefix
   :type '(regexp)
   :group 'nnir)
 
-(defcustom nnir-notmuch-filter-group-names-function
-  #'gnus-group-short-name
+(defcustom nnir-notmuch-filter-group-names-function nil
   "Whether and how to use Gnus group names as \"path:\" search terms.
 When nil, the groups being searched in are not used as notmuch
 :path search terms.  It's still possible to use \"path:\" terms
 manually within the search query, however.
 
-When a function, map this function over all the group names.  By
-default this runs them through `gnus-group-short-name', and it is
-recommended to use this transform, at least.  Further
-transforms (for instance, converting \".\" to \"/\") can be
-added like so:
+When a function, map this function over all the group names.  To
+use the group names unchanged, set to (lambda (g) g).  Multiple
+transforms (for instance, converting \".\" to \"/\") can be added
+like so:
 
 \(add-function :filter-return
    nnir-notmuch-filter-group-names-function
@@ -1541,14 +1539,15 @@ nnir-run-notmuch
 				":[0-9]+"
 			      "^[0-9]+$"))
 	   (groups (when nnir-notmuch-filter-group-names-function
-		     (mapcar nnir-notmuch-filter-group-names-function
-			     groups)))
+		     (delq nil
+			   (mapcar nnir-notmuch-filter-group-names-function
+				   (mapcar #'gnus-group-short-name groups)))))
 	   (pathquery (when groups
-			(concat "("
-			 (mapconcat (lambda (g)
-				      (format " path:%s" g))
-				    groups " or")
-			 ")")))
+			(concat " ("
+				(mapconcat (lambda (g)
+					     (format "path:%s" g))
+					   groups " or")
+				")")))
            artno dirnam filenam)
 
       (when (equal "" qstring)
-- 
2.19.1


      reply	other threads:[~2018-11-19 18:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-23  2:56 bug#33122: 27.0.50; Allow use of Gnus search groups as notmuch :path search terms Eric Abrahamsen
     [not found] ` <handler.33122.B.154026344121931.ack@debbugs.gnu.org>
2018-10-24  0:46   ` bug#33122: Acknowledgement (27.0.50; Allow use of Gnus search groups as notmuch :path search terms) Eric Abrahamsen
2018-11-03  8:43     ` Eli Zaretskii
2018-11-19 18:17       ` Eric Abrahamsen [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87bm6l9bkb.fsf@ericabrahamsen.net \
    --to=eric@ericabrahamsen.net \
    --cc=33122@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.