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
prev parent 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.