Reported by: "Jose A. Ortega Ruiz" <jao <at> gnu.org>
Date: Wed, 29 Oct 2025 21:08:03 UTC
Severity: normal
Found in version 30.2
To reply to this bug, email your comments to 79721 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org, bugs <at> gnus.org:bug#79721; Package emacs,gnus.
(Wed, 29 Oct 2025 21:08:03 GMT) Full text and rfc822 format available."Jose A. Ortega Ruiz" <jao <at> gnu.org>:bug-gnu-emacs <at> gnu.org, bugs <at> gnus.org.
(Wed, 29 Oct 2025 21:08:03 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: "Jose A. Ortega Ruiz" <jao <at> gnu.org> To: bug-gnu-emacs <at> gnu.org Subject: 30.2; Thread search in gnus-search-notmuch uses incorrect format Date: Wed, 29 Oct 2025 21:07:27 +0000
Hello, In gnus-search-notmuch implementation of gnus-search-indexed-search-command (gnus-search.el:1686), the thread queries use directly id formats as provided in qstring, which happen to include <> brackets. So the query received here seems to not have been transformed according to gnus-search-transform-expression, which removes them (as required for notmuch) in line 1668. As result, all invocations of A T in the summary fail with empty threads. I know this is so because I've put a trace in the function above, and see that it receives queries of the form (real example) "id:<discourse/post/549043 <at> users.rust-lang.org> or id:<discourse/post/548959 <at> users.rust-lang.org> or id:<discourse/post/548986 <at> users.rust-lang.org>" in the qstring parameter. If one removes angled brackets from that query, the search succeeds. Thanks! jao In GNU Emacs 30.2 (build 2, aarch64-apple-darwin25.0.0, NS appkit-2685.10 Version 26.0.1 (Build 25A362)) of 2025-10-10 built on imladris Windowing system distributor 'Apple', version 10.3.2685 System Description: macOS 26.0.1 Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=/opt/homebrew/share/emacs/site-lisp --infodir=/opt/homebrew/Cellar/emacs-plus <at> 30/30.2/share/info/emacs --prefix=/opt/homebrew/Cellar/emacs-plus <at> 30/30.2 --with-native-compilation=aot --with-xml2 --with-gnutls --without-compress-install --without-dbus --without-imagemagick --with-modules --with-rsvg --with-webp --with-ns --disable-ns-self-contained 'CFLAGS=-O2 -DFD_SETSIZE=10000 -DDARWIN_UNLIMITED_SELECT -I/opt/homebrew/opt/sqlite/include -I/opt/homebrew/opt/gcc/include -I/opt/homebrew/opt/libgccjit/include' 'LDFLAGS=-L/opt/homebrew/opt/sqlite/lib -L/opt/homebrew/lib/gcc/15 -I/opt/homebrew/opt/gcc/include -I/opt/homebrew/opt/libgccjit/include'' Configured features: ACL GIF GLIB GMP GNUTLS JPEG LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM ZLIB Important settings: value of $LANG: en_GB.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t paredit-mode: t whitespace-mode: t display-fill-column-indicator-mode: t symbol-overlay-mode: t jao-outline-minor-mode: t outline-minor-faces-mode: t global-diff-hl-mode: t diff-hl-mode: t eshell-syntax-highlighting-global-mode: t winner-mode: t global-auto-revert-mode: t vertico-multiform-mode: t vertico-mode: t marginalia-mode: t persistent-scratch-autosave-mode: t outline-minor-mode: t jao-minibuffer-mode: t minibuffer-electric-default-mode: t minibuffer-depth-indicate-mode: t repeat-mode: t server-mode: t savehist-mode: t recentf-mode: t save-place-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t minibuffer-regexp-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-mua hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-mua /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-tree hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-tree /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-show hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-show /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-tag hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-tag /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/coolj hides /opt/homebrew/share/emacs/site-lisp/notmuch/coolj /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-wash hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-wash /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-maildir-fcc hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-maildir-fcc /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-compat hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-compat /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-address hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-address /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-lib hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-lib /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-print hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-print /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-draft hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-draft /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-jump hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-jump /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/rstdoc hides /opt/homebrew/share/emacs/site-lisp/notmuch/rstdoc /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-parser hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-parser /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-query hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-query /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-message hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-message /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-hello hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-hello /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-crypto hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-crypto /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/make-deps hides /opt/homebrew/share/emacs/site-lisp/notmuch/make-deps /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-pkg hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-pkg /Users/jao/.emacs.d/elpa.30/notmuch-20250620.1557/notmuch-company hides /opt/homebrew/share/emacs/site-lisp/notmuch/notmuch-company /Users/jao/.emacs.d/elpa.30/password-store-20250618.951/password-store hides /opt/homebrew/share/emacs/site-lisp/pass/password-store /Users/jao/.emacs.d/elpa.30/transient-0.10.1.0.20251024.110624/transient hides /opt/homebrew/Cellar/emacs-plus <at> 30/30.2/share/emacs/30.2/lisp/transient /Users/jao/.emacs.d/config/site/custom hides /opt/homebrew/Cellar/emacs-plus <at> 30/30.2/share/emacs/30.2/lisp/custom Features: (shadow emacsbug nnfolder consult-imenu ecomplete gnus-cus gnus-diary nndiary gnus-fun gnus-html gnus-kill gnus-logic gnus-mh mh-comp mh-scan mh-gnus mh-e mh-buffers mh-loaddefs gnus-registry registry eieio-base rmailsum rmail gnus-salt gnus-uu yenc gnus-vm dired-aux gnus-dired quail eglot external-completion jsonrpc magit-extras cc-langs let-alist rustic-spellcheck rustic-expand rustic-lsp rustic-playground rustic-rustfix rustic-babel rustic-rustfmt rustic-comint rustic-clippy rustic-doc f rustic-popup rustic-cargo rustic-compile spinner rustic-interaction rustic xterm-color markdown-toc markdown-mode rustic-autoloads elec-pair rust-utils rust-prog-mode rust-mode rust-playpen rust-common ert rust-rustfmt rust-compile rust-cargo rust-mode-autoloads dash s f-autoloads xterm-color-autoloads loaddefs-gen lisp-mnt tar-mode arc-mode archive-mode goto-chg pulse vertico-buffer shortdoc cus-start cl-print debug backtrace vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs bug-reference magit-bookmark magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff git-commit log-edit add-log magit-core magit-autorevert magit-margin magit-transient magit-process magit-mode benchmark magit-git magit-base magit-section cursor-sensor llama org-cliplink org-cliplink-transport org-cliplink-string bbdb-pgp mailalias bbdb-message url-http url-gw url-cache url-auth pcmpl-unix bash-completion em-unix em-script em-pred em-ls em-hist em-glob em-extpipe em-cmpl em-basic em-banner sort gnus-cite shr-color color qp mm-archive mail-extr textsec uni-scripts idna-mapping uni-confusable textsec-check gnus-async gnus-bcklg gnus-dup gnus-ml gnus-topic utf-7 network-stream nsm imap rfc2104 nnml bbdb-gnus nnnil consult-notmuch jao-notmuch-gnus gnus-search eieio-opt speedbar ezimage dframe bbdb-mua gnus-icalendar ol-gnus nnselect gnus-demon gnus-delay gnus-draft gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache gnus-msg gnus-art mm-uu mml2015 nndraft nnmh gnus-sum gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win cal-move cal-julian org-duration cal-iso image-file image-converter oc-basic bibtex face-remap org-agenda copyright misearch multi-isearch paredit whitespace display-fill-column-indicator symbol-overlay vertico-directory vertico-sort tramp-cmds jao-mpc jao-random-album jao-lyrics json-mode jao-custom-programming apples-mode cl ob-applescript typescript-mode haskell haskell-completions haskell-load haskell-commands highlight-uses-mode haskell-modules haskell-sandbox haskell-navigate-imports haskell-repl haskell-svg haskell-collapse hideshow haskell-debug haskell-interactive-mode haskell-presentation-mode haskell-compile haskell-process haskell-session haskell-hoogle consult-hoogle hoogle-base align geiser-chez geiser-guile tramp trampver tramp-integration tramp-message tramp-compat parse-time iso8601 tramp-loaddefs info-look geiser-debug geiser-repl geiser-image geiser-capf geiser-doc geiser-menu geiser-autodoc geiser-edit geiser-completion geiser-eval geiser-connection tq geiser-syntax scheme geiser-impl help-fns radix-tree geiser-log geiser-popup view geiser-custom geiser-base geiser edit-list project-cmake cmake-mode rst outline-minor-faces git-modes gitignore-mode gitconfig-mode conf-mode gitattributes-mode git-link git-timemachine diff-hl log-view pcvs-util vc-dir ewoc jao-eshell-here eshell-autojump eshell-up git-ps1-mode em-term term disp-table ehelp eshell-syntax-highlighting em-dirs em-prompt em-alias jao-custom-email jao-custom-notmuch org-capture jao-notmuch link-hint avy notmuch notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser notmuch-wash coolj goto-addr icalendar notmuch-tag notmuch-lib notmuch-version notmuch-compat hl-line mm-view mml-smime smime gnutls dig bbdb-anniv bbdb-com crm bbdb bbdb-site timezone randomsig message sendmail yank-media rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader nov imenu esxml-query jao-custom-pdf saveplace-pdf-view jao-custom-eww ol-eww jao-eww-session eww url-queue mm-url gnus nnheader gnus-util mail-utils range mm-util mail-prsvr jao-custom-browse edit-indirect ispell jao-custom-blog htmlize jao-custom-org org-mac-link org-goto jao-org-links jao-doc-view jao-pdf jao-mac doc-view image-mode exif ol-info ol-eshell esh-mode esh-var eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-module-loaddefs esh-util files-x jao-org-notes embark-consult consult bookmark ob-C cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ob-shell ob-scheme ob-python python ob-org ob-ocaml ob-makefile ob-haskell ob-gnuplot ob-clojure ob-calc calc-store calc-trail calc-ext calc calc-loaddefs rect calc-macs org-tempo tempo ox-org ox-texinfo ox-latex ox-html table ox-ascii ox-publish ox org-attach org-fragtog embark-org org-element org-persist xdg org-id org-refile org-element-ast inline avl-tree org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script smie treesit executable ob-comint org-pcomplete org-list org-footnote org-faces org-entities time-date ob-emacs-lisp ob-core ob-eval org-version org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func org-compat org-macs advice winner autorevert filenotify jao-custom-completion embark vertico-multiform vertico marginalia orderless jao-r2e jao-url ffap shr pixel-fill kinsoku url-file puny svg dom jao-skel-latex jao-skel-haskell haskell-mode haskell-cabal haskell-utils haskell-font-lock haskell-indentation haskell-string haskell-sort-imports haskell-lexeme haskell-align-imports haskell-complete-module haskell-ghc-support flymake-proc flymake thingatpt etags fileloop generator xref project dabbrev haskell-customize jao-compilation jao-skel-lisp jao-skel-geiser jao-skel skeleton autoinsert wgrep grep compile text-property-search jka-compr dired-duplicates dired-x dired dired-loaddefs ls-lisp persistent-scratch cal-china lunar solar cal-dst holidays holiday-loaddefs vc-git diff-mode track-changes appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs jao-tracking jao-afio jao-doc-session multisession sqlite tracking shorten jao-notify battery dbus xml noutline outline diminish jao-mode-line jao-minibuffer minibuf-eldef mb-depth man jao-light-theme jao-themes password-store-menu vc vc-dispatcher password-store auth-source-pass with-editor comp comp-cstr warnings comp-run comp-common rx shell pcomplete comint ansi-osc ansi-color ring epa-file epa derived epg rfc6068 epg-config transient format-spec cond-let compat repeat jao-shell edmacro kmacro server savehist recentf tree-widget saveplace cus-edit pp cus-load wid-edit jao-custom-mac gnu-elpa-keyring-update cl-extra help-mode use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core finder-inf apples-mode-autoloads auctex-autoloads tex-site bash-completion-autoloads bbdb-autoloads cider-autoloads clojure-mode-autoloads cmake-mode-autoloads consult-hoogle-autoloads consult-notmuch-autoloads diff-hl-autoloads diminish-autoloads dired-duplicates-autoloads eat-autoloads edit-indirect-autoloads edit-list-autoloads eldoc-cmake-autoloads embark-consult-autoloads consult-autoloads embark-vc-autoloads embark-autoloads eshell-autojump-autoloads eshell-syntax-highlighting-autoloads eshell-up-autoloads flymake-hlint-autoloads flymake-easy-autoloads forge-autoloads closql-autoloads emacsql-autoloads ghub-autoloads git-link-autoloads git-modes-autoloads git-ps1-mode-autoloads git-timemachine-autoloads gnu-elpa-keyring-update-autoloads goto-chg-autoloads haskell-mode-autoloads hlint-refactor-autoloads htmlize-autoloads json-mode-autoloads link-hint-autoloads avy-autoloads magit-autoloads pcase magit-section-autoloads llama-autoloads marginalia-autoloads markdown-toc-autoloads dash-autoloads markdown-mode-autoloads nano-modeline-autoloads notmuch-autoloads nov-autoloads esxml-autoloads ob-applescript-autoloads orderless-autoloads org-cliplink-autoloads org-fragtog-autoloads org-mac-link-autoloads org-static-blog-autoloads outline-minor-faces-autoloads paredit-autoloads parseedn-autoloads parseclj-autoloads password-store-menu-autoloads password-store-autoloads persistent-scratch-autoloads project-cmake-autoloads queue-autoloads s-autoloads saveplace-pdf-view-autoloads sesman-autoloads spinner-autoloads symbol-overlay-autoloads tracking-autoloads transient-autoloads cond-let-autoloads treepy-autoloads typescript-mode-autoloads vertico-autoloads wgrep-autoloads info with-editor-autoloads yaml-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 2115417 652234) (symbols 48 86212 636) (strings 32 521495 28941) (string-bytes 1 22303968) (vectors 16 157411) (vector-slots 8 3992616 232021) (floats 8 3606 54195) (intervals 56 91677 13851) (buffers 992 169)) -- Everyone confesses that exertion which brings out all the powers of body and mind is the best thing for us; but most people do all they can to get rid of it, and as a general rule nobody does much more than circumstances drive them to do. -Harriet Beecher Stowe (1811-1896)
bug-gnu-emacs <at> gnu.org, bugs <at> gnus.org:bug#79721; Package emacs,gnus.
(Thu, 30 Oct 2025 03:03:02 GMT) Full text and rfc822 format available.Message #8 received at 79721 <at> debbugs.gnu.org (full text, mbox):
From: "Jose A. Ortega Ruiz" <jao <at> gnu.org> To: <79721 <at> debbugs.gnu.org> Subject: Re: bug#79721: Acknowledgement (30.2; Thread search in gnus-search-notmuch uses incorrect format) Date: Thu, 30 Oct 2025 03:01:43 +0000
For reference, I've worked around this problem by defining this engine,
which also (orthogonally to this issue) makes use of the `groups'
parameter to add a folder: constraint to the query:
--8<---------------cut here---------------start------------->8---
(defclass gnus-search-jao-notmuch (gnus-search-notmuch) ())
(cl-defmethod gnus-search-indexed-search-command
((engine gnus-search-jao-notmuch) (qstring string) query &optional groups)
(let* ((limit (alist-get 'limit query))
(thread (alist-get 'thread query))
(qs (cond (thread
(format "thread:\"{%s}\""
(thread-last (string-replace "\"" "\"\"" qstring)
(string-replace "<" "")
(string-replace ">" ""))))
(groups
(let ((gs (mapconcat 'gnus-group-short-name groups "|")))
(format "(%s) and folder:/%s/" qstring gs)))
(t qstring))))
(with-slots (switches config-file) engine
`(,(format "--config=%s" config-file) "search" "--output=files"
,@(unless thread '("--duplicate=1"))
,@(when limit (list (format "--limit=%d" limit)))
,@switches
,qs))))
--8<---------------cut here---------------end--------------->8---
Seems to be working here :)
Cheers,
jao
bug-gnu-emacs <at> gnu.org, bugs <at> gnus.org:bug#79721; Package emacs,gnus.
(Thu, 30 Oct 2025 09:46:02 GMT) Full text and rfc822 format available.Message #11 received at 79721 <at> debbugs.gnu.org (full text, mbox):
From: Robert Pluim <rpluim <at> gmail.com> To: "Jose A. Ortega Ruiz" <jao <at> gnu.org> Cc: 79721 <at> debbugs.gnu.org Subject: Re: bug#79721: 30.2; Thread search in gnus-search-notmuch uses incorrect format Date: Thu, 30 Oct 2025 10:45:05 +0100
>>>>> On Wed, 29 Oct 2025 21:07:27 +0000, "Jose A. Ortega Ruiz" <jao <at> gnu.org> said:
jao> Hello,
jao> In gnus-search-notmuch implementation of
jao> gnus-search-indexed-search-command (gnus-search.el:1686), the thread
jao> queries use directly id formats as provided in qstring, which happen to
jao> include <> brackets. So the query received here seems to not have been
jao> transformed according to gnus-search-transform-expression, which removes
jao> them (as required for notmuch) in line 1668. As result, all invocations
jao> of A T in the summary fail with empty threads.
jao> I know this is so because I've put a trace in the function above, and
jao> see that it receives queries of the form (real example)
jao> "id:<discourse/post/549043 <at> users.rust-lang.org> or id:<discourse/post/548959 <at> users.rust-lang.org> or id:<discourse/post/548986 <at> users.rust-lang.org>"
jao> in the qstring parameter. If one removes angled brackets from that
jao> query, the search succeeds.
Can you show us what the value of 'expr' is at entry to
`gnus-search-transform-expression'? The code looks correct, which
means my assumptions don始t match reality 馃榾
Robert
--
bug-gnu-emacs <at> gnu.org, bugs <at> gnus.org:bug#79721; Package emacs,gnus.
(Thu, 30 Oct 2025 13:21:01 GMT) Full text and rfc822 format available.Message #14 received at 79721 <at> debbugs.gnu.org (full text, mbox):
From: "Jose A. Ortega Ruiz" <jao <at> gnu.org> To: "Robert Pluim" <rpluim <at> gmail.com> Cc: 79721 <at> debbugs.gnu.org Subject: Re: bug#79721: 30.2; Thread search in gnus-search-notmuch uses incorrect format Date: Thu, 30 Oct 2025 13:20:26 +0000
On Thu, Oct 30 2025, Robert Pluim wrote: > > jao> "id:<discourse/post/549043 <at> users.rust-lang.org> or id:<discourse/post/548959 <at> users.rust-lang.org> or id:<discourse/post/548986 <at> users.rust-lang.org>" > > jao> in the qstring parameter. If one removes angled brackets from that > jao> query, the search succeeds. > > Can you show us what the value of 'expr' is at entry to > `gnus-search-transform-expression'? The code looks correct, which > means my assumptions don始t match reality 馃榾 As far as I can tell, gnus-search-transform-expression is never called. The code goes as far as calling gnus-search-parse-query with a string that looks like the above, but the iteration using gnus-search-query-next-expr never triggers a call to the transform generic for gnus-search-notmuch. It's as if it had lost track of the engine. Not sure if that might be related, but my secondary select method has an empty name: (nnml "" (gnus-search-engine gnus-search-jao-notmuch (remove-prefix ...))) Cheers, jao -- The little I know, I owe to my ignorance. -Sacha Guitry (1885-1957)
bug-gnu-emacs <at> gnu.org, bugs <at> gnus.org:bug#79721; Package emacs,gnus.
(Thu, 30 Oct 2025 13:52:01 GMT) Full text and rfc822 format available.Message #17 received at 79721 <at> debbugs.gnu.org (full text, mbox):
From: Robert Pluim <rpluim <at> gmail.com> To: "Jose A. Ortega Ruiz" <jao <at> gnu.org> Cc: 79721 <at> debbugs.gnu.org Subject: Re: bug#79721: 30.2; Thread search in gnus-search-notmuch uses incorrect format Date: Thu, 30 Oct 2025 14:51:31 +0100
>>>>> On Thu, 30 Oct 2025 13:20:26 +0000, "Jose A. Ortega Ruiz" <jao <at> gnu.org> said:
jao> On Thu, Oct 30 2025, Robert Pluim wrote:
>>
jao> "id:<discourse/post/549043 <at> users.rust-lang.org> or
jao> id:<discourse/post/548959 <at> users.rust-lang.org> or
jao> id:<discourse/post/548986 <at> users.rust-lang.org>"
>>
jao> in the qstring parameter. If one removes angled brackets from that
jao> query, the search succeeds.
>>
>> Can you show us what the value of 'expr' is at entry to
>> `gnus-search-transform-expression'? The code looks correct, which
>> means my assumptions don始t match reality 馃榾
jao> As far as I can tell, gnus-search-transform-expression is never
jao> called. The code goes as far as calling gnus-search-parse-query with a
jao> string that looks like the above, but the iteration using
jao> gnus-search-query-next-expr never triggers a call to the transform
jao> generic for gnus-search-notmuch. It's as if it had lost track of the
jao> engine. Not sure if that might be related, but my secondary select
jao> method has an empty name:
jao> (nnml "" (gnus-search-engine gnus-search-jao-notmuch (remove-prefix ...)))
Hmm, I guess you need to figure out why
`gnus-search-transform-expression' is never called. I don始t use
notmuch myself. If all else fails I guess I can try to set it up.
Robert
--
bug-gnu-emacs <at> gnu.org, bugs <at> gnus.org:bug#79721; Package emacs,gnus.
(Thu, 30 Oct 2025 18:05:02 GMT) Full text and rfc822 format available.Message #20 received at 79721 <at> debbugs.gnu.org (full text, mbox):
From: "Jose A. Ortega Ruiz" <jao <at> gnu.org> To: "Robert Pluim" <rpluim <at> gmail.com> Cc: 79721 <at> debbugs.gnu.org Subject: Re: bug#79721: 30.2; Thread search in gnus-search-notmuch uses incorrect format Date: Thu, 30 Oct 2025 18:04:26 +0000
On Thu, Oct 30 2025, Robert Pluim wrote:
[...]
> Hmm, I guess you need to figure out why
> `gnus-search-transform-expression' is never called. I don始t use
> notmuch myself. If all else fails I guess I can try to set it up.
>
> Robert
> --
>
>
Actually, I don't think this generic function gets called for any
specific engine at all, at least for the nnml backend:
Inside gnus-summary-refer-thread, one ends up in gnus-search.el:9041,
where one sees the call:
(gnus-search-thread header)
which is passed neither the group nor the server, so it seems not
possible that the search is performed using an engine-specific parsing,
as the search engine is confirgured per server. Or am i missing
something?
Cheers,
jao
--
Spend the afternoon. You can't take it with you.
-Annie Dillard, author (b. 1945)
bug-gnu-emacs <at> gnu.org, bugs <at> gnus.org:bug#79721; Package emacs,gnus.
(Mon, 03 Nov 2025 19:11:02 GMT) Full text and rfc822 format available.Message #23 received at 79721 <at> debbugs.gnu.org (full text, mbox):
From: Sean Whitton <spwhitton <at> spwhitton.name> To: "Jose A. Ortega Ruiz" <jao <at> gnu.org> Cc: 79721 <at> debbugs.gnu.org Subject: Re: bug#79721: 30.2; Thread search in gnus-search-notmuch uses incorrect format Date: Mon, 03 Nov 2025 19:10:14 +0000
Hello, On Wed 29 Oct 2025 at 09:07pm GMT, Jose A. Ortega Ruiz wrote: > Hello, > > In gnus-search-notmuch implementation of > gnus-search-indexed-search-command (gnus-search.el:1686), the thread > queries use directly id formats as provided in qstring, which happen to > include <> brackets. So the query received here seems to not have been > transformed according to gnus-search-transform-expression, which removes > them (as required for notmuch) in line 1668. As result, all invocations > of A T in the summary fail with empty threads. > > I know this is so because I've put a trace in the function above, and > see that it receives queries of the form (real example) > > "id:<discourse/post/549043 <at> users.rust-lang.org> or id:<discourse/post/548959 <at> users.rust-lang.org> or id:<discourse/post/548986 <at> users.rust-lang.org>" > > in the qstring parameter. If one removes angled brackets from that > query, the search succeeds. I use Gnus+notmuch and have not run into this. 'A T' works for me. Hrm. -- Sean Whitton
bug-gnu-emacs <at> gnu.org, bugs <at> gnus.org:bug#79721; Package emacs,gnus.
(Mon, 03 Nov 2025 19:32:01 GMT) Full text and rfc822 format available.Message #26 received at 79721 <at> debbugs.gnu.org (full text, mbox):
From: Jose Antonio Ortega Ruiz <jao <at> gnu.org> To: Sean Whitton <spwhitton <at> spwhitton.name> Cc: 79721 <at> debbugs.gnu.org Subject: Re: bug#79721: 30.2; Thread search in gnus-search-notmuch uses incorrect format Date: Mon, 03 Nov 2025 19:31:24 +0000
On Mon, Nov 03 2025, Sean Whitton wrote: [...] > I use Gnus+notmuch and have not run into this. 'A T' works for me. Hrm. Hmm. What version of emacs do you use? This one is 30.2. Cheers, jao -- "Faith" is a fine invention / For gentlemen who see -- But microscopes are prudent / In an emergency. -Emily Dickinson (1830-1886)
bug-gnu-emacs <at> gnu.org, bugs <at> gnus.org:bug#79721; Package emacs,gnus.
(Tue, 04 Nov 2025 11:01:01 GMT) Full text and rfc822 format available.Message #29 received at 79721 <at> debbugs.gnu.org (full text, mbox):
From: Sean Whitton <spwhitton <at> spwhitton.name> To: Jose Antonio Ortega Ruiz <jao <at> gnu.org> Cc: 79721 <at> debbugs.gnu.org Subject: Re: bug#79721: 30.2; Thread search in gnus-search-notmuch uses incorrect format Date: Tue, 04 Nov 2025 11:00:48 +0000
Hello, On Mon 03 Nov 2025 at 07:31pm GMT, Jose Antonio Ortega Ruiz wrote: > On Mon, Nov 03 2025, Sean Whitton wrote: > > [...] > >> I use Gnus+notmuch and have not run into this. 'A T' works for me. Hrm. > > Hmm. What version of emacs do you use? This one is 30.2. The trunk. But Gnus hasn't changed much. -- Sean Whitton
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.