From unknown Sat Jun 14 18:38:32 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#65467 <65467@debbugs.gnu.org> To: bug#65467 <65467@debbugs.gnu.org> Subject: Status: 29.1.50; Gnus agent groups with spaces in their names cannot be activated while unplugged Reply-To: bug#65467 <65467@debbugs.gnu.org> Date: Sun, 15 Jun 2025 01:38:32 +0000 retitle 65467 29.1.50; Gnus agent groups with spaces in their names cannot = be activated while unplugged reassign 65467 emacs,gnus submitter 65467 James Thomas severity 65467 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 23 03:08:02 2023 Received: (at submit) by debbugs.gnu.org; 23 Aug 2023 07:08:02 +0000 Received: from localhost ([127.0.0.1]:60947 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYhyD-0007Sy-Jh for submit@debbugs.gnu.org; Wed, 23 Aug 2023 03:08:02 -0400 Received: from lists.gnu.org ([2001:470:142::17]:38954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYhyB-0007Sl-FH for submit@debbugs.gnu.org; Wed, 23 Aug 2023 03:08:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qYhxy-0006m1-Nh for bug-gnu-emacs@gnu.org; Wed, 23 Aug 2023 03:07:49 -0400 Received: from mout.gmx.net ([212.227.15.18]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qYhxu-0004BB-6D for bug-gnu-emacs@gnu.org; Wed, 23 Aug 2023 03:07:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=s31663417; t=1692774459; x=1693379259; i=jimjoe@gmx.net; bh=vb7fyy2/qk60GLRo6KBAXMQ6g/vo7E1mHmCat65/p9g=; h=X-UI-Sender-Class:From:To:Subject:Date; b=WB2H1cZG2t24D41xPe3rGUaeboZMARSr7ENG9jEmTlDQ3oCUb5turw6SKy/HyvyIBvslcXT aoVQKX/WrL1qdW9oZmq+OzBgayQMh/AZnMrZ0my9h1BghH4YFy7qprum8ztupoZHMwusbttEf xnukIy9MXunTCtSGFVxnRzDyZcXrIsv+SS9kt6DXKxFvv9/WUBahHfZkiymNwHI8HclYVMbHH 2NUNKfvgpTYkD5UvTZnFXm2W55GP+JN5ni5j1AVMwORn7R7BTCgigdc29K1HnmOAsWwkvNXV9 ZXYg/+TS1TCuPVQcjPyPvupBHhgHkBvFCG4qG2MSg0dWh+H7zL2Q== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from user-Inspiron-15-5518 ([59.182.150.145]) by mail.gmx.net (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MGhuK-1qUoCe280Y-00Dsc8 for ; Wed, 23 Aug 2023 09:07:39 +0200 From: James Thomas To: bug-gnu-emacs@gnu.org Subject: 29.1.50; Gnus agent groups with spaces in their names cannot be activated while unplugged X-Debbugs-Package: emacs,gnus Date: Wed, 23 Aug 2023 12:37:34 +0530 Message-ID: <87zg2i6xu1.fsf@gmx.net> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:N50JxzdzRMYggDzmxLdC+RAZ/Rdw9E4TXdPCC4cRmoghMKKo3Jq yFMmCadzVlBxbFJnw3zoewD9BwkfwWKz1aocNvwt6xLyw8/++ekHO6WfyAe3Y2S++/5SAuA 27SjFTU4vrdC3cviEzYbPdZMn32aeBg4l88zDs9BM+CoEhDh6vRGPZed9hR/wRjLm1Bwo2z Ksl8fItw0FnkEukrc01VQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:rbQorbt0T6A=;g2WHjZMJR/7q+iQJFMYJBCITurQ RyuNvJ70e+Q4coHLGlmuxgG3RtYCEXRLx1Y7nGIIh1cjw3EfAEz+F2f1hEQ/vazbn6kMj8Vrm bsWy7vrcx1xCrt71pYAlKV3gAwMIudNrLTHKDeol2r6by9xiyaFqYOVGsdAPIu0PpuTXZXs1V /J/CN5XmxPDrZ+816GLGIz2MWIArApoyqQnxecbxpNxAwo7LnjarjmuXUOBC1fREqkWrFGonV rr6zzopct5yPa2hSpPH3HiOXjDEtkLTCBL3+901E2ghexiZjufgPLZkROriyoVEJ4U9sh8yit QH3nwv9HwpPa9K+YL2lR3+3UTVpjLN77aoCWqdziTlwROk7l7SeJhlIfqt1erFA9gHCXqq9gS p8rWCK3bTnU5snxabe19FzjnHV2/t+7c5FR20YWOwTbVw0/611OirO1Ox/R2aWywf34/NHhmB +1yGcthw85RRch2NIqgR56T/VaXqMWG63WkeJtEwgS+iOfmgBKpNdd1JC9/s0zBCbqWZmLH0y 9XePaPvAu4Dfm7hFmttsmEyadjS9FzpJePZt6rek8uipbw75rqiVbChFsv624tFWzxtabVe7s 5EghTC0lpWj8iDVyYPWfch9mNdzy2tuo3cnTwEnSmwIHpp0S5ydAWDN0BWJjWkF9aUgQiueQS Xp5p7tNz4z0svuG03FbDpFNfSMUnL9Z9noC0ZekkXfQ/WJIxQIPrW2C8YP7OWmHpjAhUKkhCy CibgmRWZIzD0Wz0Yb5dU36/0bC1GaFhyg67uRP/GMjImCZddx3Tb6lIXir1eRHeiBAYulz4ZY TpkYjlYFeEfM2ISB56oAC4b7SiQ6NKitw/xkEo8pTjJemDE3zMvdqlSQsiCqDDtykj+0ETu6V s8mbP5ZnzBpCdpNhCooz2nqagFtRYke3njedovaTQ4AnSaDBTTOqdJ48v3SsOSHd4OHDaDD/R iJomow== Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=212.227.15.18; envelope-from=jimjoe@gmx.net; helo=mout.gmx.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) To reproduce, attempt to access, while unplugged, any group of an agentized (IMAP) server with a space in its name (such as Gmail's 'Sent Mail' or 'All Mail'). Here's a patch that fixes it: diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index db205c5b657..5f2401c7c07 100644 =2D-- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el @@ -1340,13 +1340,13 @@ gnus-agent-save-group-info (goto-char (point-min)) (when (re-search-forward - (concat "^" (regexp-quote group) " ") nil t) + (concat "^\"?" (regexp-quote group) "\"? ") nil t) (save-excursion (setq oactive-max (read (current-buffer)) ;; max oactive-min (read (current-buffer)))) ;; min (gnus-delete-line))) (when active - (insert (format "%s %d %d y\n" group + (insert (format "%S %d %d y\n" group (max (or oactive-max (cdr active)) (cdr active)) (min (or oactive-min (car active)) (car active)))) (goto-char (point-max)) @@ -1370,7 +1370,7 @@ gnus-agent-get-group-info (goto-char (point-min)) (when (re-search-forward - (concat "^" (regexp-quote group) " ") nil t) + (concat "^\"?" (regexp-quote group) "\"? ") nil t) (save-excursion (setq oactive-max (read (current-buffer)) ;; max oactive-min (read (current-buffer))) ;; min diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el index e8f157392d4..3a91139cb3f 100644 =2D-- a/lisp/gnus/nnmail.el +++ b/lisp/gnus/nnmail.el @@ -695,7 +697,7 @@ nnmail-generate-active (erase-buffer) (let (group) (while (setq group (pop alist)) - (insert (format "%s %d %d y\n" (car group) (cdadr group) + (insert (format "%S %d %d y\n" (car group) (cdadr group) (caadr group)))) (goto-char (point-max)) (while (search-backward "\\." nil t) Note: If you're already facing this problem with a group, after applying the patch, you'll also have to do M-g over it in the Group buffer while plugged, to update the agent's active file. New servers wouldn't need this. This is similar in spirit to bug#42823. =2D- In GNU Emacs 29.1.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0) of 2023-08-02 built on user-Inspiron-15-5518 Repository revision: 608a8757d9fa54bc2fd57180b0347931db9c46b0 Repository branch: emacs-29 Windowing system distributor 'The X.Org Foundation', version 11.0.12101003 System Description: Ubuntu 22.04.2 LTS Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LANG: en_IN value of $XMODIFIERS: @im=3Dibus locale-coding-system: iso-latin-1-unix Major mode: Fundamental Minor modes in effect: shell-dirtrack-mode: t display-time-mode: t desktop-environment-mode: t server-mode: t recentf-mode: t override-global-mode: t icomplete-mode: t fido-mode: t display-battery-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/user/.emacs.d/elpa/transient-20230315.1520/transient hides /home/use= r/code/emacs/lisp/transient /home/user/.emacs.d/elpa/use-package-20230203.2004/use-package-jump hides = /home/user/code/emacs/lisp/use-package/use-package-jump /home/user/.emacs.d/elpa/use-package-20230203.2004/use-package-ensure hide= s /home/user/code/emacs/lisp/use-package/use-package-ensure /home/user/.emacs.d/elpa/use-package-20230203.2004/use-package-lint hides = /home/user/code/emacs/lisp/use-package/use-package-lint /home/user/.emacs.d/elpa/use-package-20230203.2004/use-package-core hides = /home/user/code/emacs/lisp/use-package/use-package-core /home/user/.emacs.d/elpa/use-package-20230203.2004/use-package hides /home= /user/code/emacs/lisp/use-package/use-package /home/user/.emacs.d/elpa/use-package-20230203.2004/use-package-delight hid= es /home/user/code/emacs/lisp/use-package/use-package-delight /home/user/.emacs.d/elpa/bind-key-20230203.2004/bind-key hides /home/user/= code/emacs/lisp/use-package/bind-key /home/user/.emacs.d/elpa/use-package-20230203.2004/use-package-bind-key hi= des /home/user/code/emacs/lisp/use-package/use-package-bind-key /home/user/.emacs.d/elpa/use-package-20230203.2004/use-package-diminish hi= des /home/user/code/emacs/lisp/use-package/use-package-diminish Features: (pp shadow bbdb-message emacsbug mule-util shr-color color epa-file dired-aux nnagent sort gnus-cite smiley mm-archive mail-extr textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check gnus-async gnus-bcklg face-remap qp gnus-ml hl-line disp-table misearch multi-isearch nnml utf-7 url-http url-gw url-cache url-auth network-stream nsm cursor-sensor nndraft nnmh nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig nntp gnus-cache gnus-sum gnus-group gnus-undo bbdb-gnus bbdb-mua bbdb-com bbdb bbdb-site timezone auth-source-xoauth2 auth-source-pass smtpmail gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time iso8601 gnus-spec gnus-int gnus-range message sendmail yank-media rfc822 mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win crm shell pcomplete comint ansi-osc ansi-color image-mode exif time eww-history-ext derived eww-history-ext-dyn eww url-queue thingatpt shr pixel-fill kinsoku url-file svg dom puny mm-url gnus nnheader gnus-util text-property-search time-date mail-utils range mm-util mail-prsvr denote xdg dired dired-loaddefs xref project ring edmacro desktop-environment ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util exwm-systemtray xcb-systemtray xcb-xembed exwm exwm-input xcb-keysyms xcb-xkb exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types xcb-debug kmacro server cl-extra help-mode advice recentf tree-widget wid-edit use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core format-spec icomplete battery dbus xml cus-load cask-autoloads conda-autoloads gnus-mock-autoloads jeison-autoloads pcase org-mime-autoloads org-present-autoloads org-remark-autoloads pdf-tools-autoloads python-view-data-autoloads csv-mode-autoloads pythonic-autoloads realgud-ipdb-autoloads realgud-autoloads realgud-recursive-autoloads loc-changes-autoloads load-relative-autoloads reddigg-autoloads ht-autoloads promise-autoloads request-autoloads s-autoloads test-simple-autoloads info 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 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/x-win x-win term/common-win x-dnd 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 dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process emacs) Memory information: ((conses 16 418247 35510) (symbols 48 29038 3) (strings 32 114691 6643) (string-bytes 1 3351244) (vectors 16 81423) (vector-slots 8 1189181 62648) (floats 8 404 309) (intervals 56 1930 1024) (buffers 984 28)) From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 23 13:17:22 2023 Received: (at 65467) by debbugs.gnu.org; 23 Aug 2023 17:17:23 +0000 Received: from localhost ([127.0.0.1]:35066 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYrTu-0001y3-Eo for submit@debbugs.gnu.org; Wed, 23 Aug 2023 13:17:22 -0400 Received: from mail.ericabrahamsen.net ([52.70.2.18]:46736) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYrTr-0001xj-98 for 65467@debbugs.gnu.org; Wed, 23 Aug 2023 13:17:21 -0400 Received: from localhost (c-71-197-232-41.hsd1.wa.comcast.net [71.197.232.41]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 1BA9BFA07E; Wed, 23 Aug 2023 17:17:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net; s=mail; t=1692811030; bh=JNY2pSt/nnFYdjCmO6+KB+5j3hRhsvHFQMGn8LMCyv8=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=TADc4cZA+qngNrMLjeC1vv2ByF2AC/3h+BY/oWTedQ3ApC59vV7Y/1JB1fFbZdtfb q4QP8Jsz6P1xeUW8qZx0zUllFRtomlRknAbOGQ3gONoV2qDdqxS2ZPtaOIlzxFV0wZ TH97M5ztPYqljDzIglA+LhkWW2PxRLyeIfNQNfZo= From: Eric Abrahamsen To: James Thomas Subject: Re: bug#65467: 29.1.50; Gnus agent groups with spaces in their names cannot be activated while unplugged In-Reply-To: <87zg2i6xu1.fsf@gmx.net> (James Thomas's message of "Wed, 23 Aug 2023 12:37:34 +0530") References: <87zg2i6xu1.fsf@gmx.net> Date: Wed, 23 Aug 2023 10:17:08 -0700 Message-ID: <87cyzdhe5n.fsf@ericabrahamsen.net> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 65467 Cc: 65467@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) James Thomas writes: > To reproduce, attempt to access, while unplugged, any group of an > agentized (IMAP) server with a space in its name (such as Gmail's 'Sent > Mail' or 'All Mail'). > > Here's a patch that fixes it: > > diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el > index db205c5b657..5f2401c7c07 100644 > --- a/lisp/gnus/gnus-agent.el > +++ b/lisp/gnus/gnus-agent.el > @@ -1340,13 +1340,13 @@ gnus-agent-save-group-info > > (goto-char (point-min)) > (when (re-search-forward > - (concat "^" (regexp-quote group) " ") nil t) > + (concat "^\"?" (regexp-quote group) "\"? ") nil t) > (save-excursion > (setq oactive-max (read (current-buffer)) ;; max > oactive-min (read (current-buffer)))) ;; min > (gnus-delete-line))) > (when active > - (insert (format "%s %d %d y\n" group > + (insert (format "%S %d %d y\n" group > (max (or oactive-max (cdr active)) (cdr active)) > (min (or oactive-min (car active)) (car active)))) > (goto-char (point-max)) > @@ -1370,7 +1370,7 @@ gnus-agent-get-group-info > > (goto-char (point-min)) > (when (re-search-forward > - (concat "^" (regexp-quote group) " ") nil t) > + (concat "^\"?" (regexp-quote group) "\"? ") nil t) > (save-excursion > (setq oactive-max (read (current-buffer)) ;; max > oactive-min (read (current-buffer))) ;; min > diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el > index e8f157392d4..3a91139cb3f 100644 > --- a/lisp/gnus/nnmail.el > +++ b/lisp/gnus/nnmail.el > @@ -695,7 +697,7 @@ nnmail-generate-active > (erase-buffer) > (let (group) > (while (setq group (pop alist)) > - (insert (format "%s %d %d y\n" (car group) (cdadr group) > + (insert (format "%S %d %d y\n" (car group) (cdadr group) > (caadr group)))) > (goto-char (point-max)) > (while (search-backward "\\." nil t) > > Note: If you're already facing this problem with a group, after applying > the patch, you'll also have to do M-g over it in the Group buffer while > plugged, to update the agent's active file. New servers wouldn't need > this. > > This is similar in spirit to bug#42823. I'm thinking about ways in which this change might be able to break users' existing set ups. It looks to me like it will be a "silent upgrade" as the group names will be replaced with their quoted versions. But that means that users will not be able to downgrade their Gnus (versions of Gnus without this change won't be able to read active files written with this change in place), which I think is a contract we try to stick to. Do we? I can't remember. In general it's annoying that different parts of Gnus use different routines for reading/writing active files... From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 23 18:31:59 2023 Received: (at 65467) by debbugs.gnu.org; 23 Aug 2023 22:31:59 +0000 Received: from localhost ([127.0.0.1]:35304 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYwON-0003sm-HU for submit@debbugs.gnu.org; Wed, 23 Aug 2023 18:31:59 -0400 Received: from mout.gmx.net ([212.227.15.15]:34483) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYwOK-0003sW-N2 for 65467@debbugs.gnu.org; Wed, 23 Aug 2023 18:31:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=s31663417; t=1692829898; x=1693434698; i=jimjoe@gmx.net; bh=d1WgEZ6bn5udyCR8vODvmgy2+7SOhdADc/q5c4JmWQQ=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date; b=tHgybIycjYji0w+UcTU6x8g4R7wCBqtBmVwzjT0FLyXPLARS/ciPMpNuGrCR7VTH7ZrAyXq IoA3MSfHATxboHQ3ieHrOeVjD8O9nbJLTvBD66z8JobewmwbN4myqu51zziCGd699E45aXjMw rwPBARrFM63ZOtk0VLhswNenpN/e5BFIeBnMz2SfOcneLxgoOWvYSOsrjJSr22uyVxc7BxQq5 WkE81ERrHmWLNmTiih27y8qrrkMbRJJ0G3pxGsszeosB6A6Cke54KJsh2g2Y+KHVq/ayLj24s 7n6LOC4TYO29erLSNWl0E8UTqLu77gUMCa3CMNxjukS+WAYgfVcQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from user-Inspiron-15-5518 ([59.182.147.251]) by mail.gmx.net (mrgmx005 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MGhyS-1qU2qh1UW2-00DlVb; Thu, 24 Aug 2023 00:31:37 +0200 From: James Thomas To: Eric Abrahamsen Subject: Re: bug#65467: 29.1.50; Gnus agent groups with spaces in their names cannot be activated while unplugged In-Reply-To: <87cyzdhe5n.fsf@ericabrahamsen.net> (Eric Abrahamsen's message of "Wed, 23 Aug 2023 10:17:08 -0700") References: <87zg2i6xu1.fsf@gmx.net> <87cyzdhe5n.fsf@ericabrahamsen.net> Date: Thu, 24 Aug 2023 04:01:33 +0530 Message-ID: <871qftmlve.fsf@gmx.net> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:9/WROi2RGtN59XUY7YKjsAZIfz1oYLd27MbK6W9CgIiBx97RXQK qvDR21TcsB/IGVsiJhfhTUPpZVnNS5IbQLabhCPCktv5sWWitE9ybZ0uwxkHN0vgfYB6bdC mkfgsdsu2fa0FPDbCpKn0PlZfdKsPf5BOiP2XcsSTzcsyMtYxPK80D2NfqlBx8pih8itAh/ oUj4D+oleujQGwl86V2Tg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:Zl/fne+HfLc=;KqpimiQ2AKrtECkNaeI1IWTKWZW PBGn9uEKEm12+YdihVighxW1xaSG/sYfYpIA1NYAPQd5ezBjWTX7OWRORXgzO+zYb2ab5IHlF 1wOVFmgMIFQHv0kz6ahVyPhOW2Dv7OY4lNRZ84On5KasQsR6Ms7uXMSO9G9zQvkjDLCUuKZs9 93d88lsLPNcl9xeSIzmoP6aWLhMegK4rI/EGtm1GJ68V0iIxlLhpZYXvEjxc49XyJx7jGbn/X wiSDwbsPVwu4mNIAyvzIgBWQVli3jMjkKzshxeKWR22VZaT8m5FUlRYeruWQwUowSo4GNdC3n g440kJTfJVL3yvC8o9PIV+wn0zkt1iJB63tyGi7V0GuxHi4JVUFp+d533h3IOx1ut7cYQOscw UW+2Lex3f06ADH1/584a6eK/YhxW1rC0CBYl63un+9BI1YM6bEErgYRPmqnmooU2NqAMsOZhw uMv4HLTlw4M8q+0kaZMmj8aZnFsz7mxofL+a7OdARWCeZR8uComaNmNaux8tUFGzhwMxHoClm SVva3kyAz7/vR1doWG2onWTLUsU9pw9JQ4dV37tHfzjubvc5VHg0pPhvJOrv9HLlom8g4kDGr GP4FHuUS6ir6SQuu08z8tM3WAN818WVxvBZ163+6OaJK/g0cY5pQhGnE81DkMQSwtaqnDFe6B fBHM4LArwASQ6BMmClp4FpWFqtxaV09vc+YGQJOrwJVha/vbkjSHrdeL/DbfowxQGV2EqHyE1 p3CSZoAJ4Z5qZ3HT5TGbNLYiISnXDAh+KtVNmddOFv6RVs33w/Y/ayQ9gKuIYz3am/ykgVRRP Cbw8PtXdM2JgEqw3NTe9fehxzTAuyCiOEv5W11j8apU/3oZrH+yViH1yFuy48KMG7MOcBwgaq Fn+SgALBmUJ0DVcOk3WdfmU5rMM29SjDU8VENutbgpinPKHwlUmakwDDtoS5G5o9spdH8DVS0 UGoQSQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 65467 Cc: 65467@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eric Abrahamsen wrote: > James Thomas writes: > >> To reproduce, attempt to access, while unplugged, any group of an >> agentized (IMAP) server with a space in its name (such as Gmail's 'Sent >> Mail' or 'All Mail'). >> >> Here's a patch that fixes it: >> >> diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el >> index db205c5b657..5f2401c7c07 100644 >> --- a/lisp/gnus/gnus-agent.el >> +++ b/lisp/gnus/gnus-agent.el >> @@ -1340,13 +1340,13 @@ gnus-agent-save-group-info >> >> (goto-char (point-min)) >> (when (re-search-forward >> - (concat "^" (regexp-quote group) " ") nil t) >> + (concat "^\"?" (regexp-quote group) "\"? ") nil t) >> (save-excursion >> (setq oactive-max (read (current-buffer)) ;; max >> oactive-min (read (current-buffer)))) ;; min >> (gnus-delete-line))) >> (when active >> - (insert (format "%s %d %d y\n" group >> + (insert (format "%S %d %d y\n" group >> (max (or oactive-max (cdr active)) (cdr active)) >> (min (or oactive-min (car active)) (car active)))) >> (goto-char (point-max)) >> @@ -1370,7 +1370,7 @@ gnus-agent-get-group-info >> >> (goto-char (point-min)) >> (when (re-search-forward >> - (concat "^" (regexp-quote group) " ") nil t) >> + (concat "^\"?" (regexp-quote group) "\"? ") nil t) >> (save-excursion >> (setq oactive-max (read (current-buffer)) ;; max >> oactive-min (read (current-buffer))) ;; min >> diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el >> index e8f157392d4..3a91139cb3f 100644 >> --- a/lisp/gnus/nnmail.el >> +++ b/lisp/gnus/nnmail.el >> @@ -695,7 +697,7 @@ nnmail-generate-active >> (erase-buffer) >> (let (group) >> (while (setq group (pop alist)) >> - (insert (format "%s %d %d y\n" (car group) (cdadr group) >> + (insert (format "%S %d %d y\n" (car group) (cdadr group) >> (caadr group)))) >> (goto-char (point-max)) >> (while (search-backward "\\." nil t) >> >> Note: If you're already facing this problem with a group, after applying >> the patch, you'll also have to do M-g over it in the Group buffer while >> plugged, to update the agent's active file. New servers wouldn't need >> this. >> >> This is similar in spirit to bug#42823. > > I'm thinking about ways in which this change might be able to break > users' existing set ups. It looks to me like it will be a "silent > upgrade" as the group names will be replaced with their quoted versions. > > But that means that users will not be able to downgrade their Gnus > (versions of Gnus without this change won't be able to read active files > written with this change in place), which I think is a contract we try > to stick to. Do we? I can't remember. Hmmm... > In general it's annoying that different parts of Gnus use different > routines for reading/writing active files... At least for this point: I've checked that all results of a grep for '%s %d' or '(regexp-quote .*group.*)' in the gnus code are covered. These should be the ones not using 'read'. -- From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 23 20:10:58 2023 Received: (at 65467) by debbugs.gnu.org; 24 Aug 2023 00:10:58 +0000 Received: from localhost ([127.0.0.1]:35634 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYxwA-0003j3-5l for submit@debbugs.gnu.org; Wed, 23 Aug 2023 20:10:58 -0400 Received: from mout.gmx.net ([212.227.15.18]:60817) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qYxw4-0003im-IB for 65467@debbugs.gnu.org; Wed, 23 Aug 2023 20:10:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=s31663417; t=1692835833; x=1693440633; i=jimjoe@gmx.net; bh=7tx920+rRf6s0xEiPL91jEEDCZUYJOX7fD3WKDitJ7A=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date; b=SF9C4faRTKYwyeWNPs1gtcRq2GrNgYeTe0Oq7boY55nnd/u5GzJxBsCzYMaxCr05ZhS6XzH /JjAJjumhCH7+OYbGmIznyuPczp5Ea2sYjwaetx82OQJFPe23GGwfh1wB7QzK2X4YDkc81FDc 2c/ERdZQL9pa8lU/ljByN8syQaUjxZRBibfjrrdrxN9bY/QC+S/E6f0K0yIEFj+1snJhgGlsi wGw55XoAZGICBRvxp0yUrbkyOBOJeYMKnAAy6jpzwF3q/IlWaqct0Zp05qRP/Gu5/Te/FqaBy sYGCZrsbp9ZpEk1quO6A+eYWPLg5s/l29kjPAXnXdeFYH9gsTE9w== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from user-Inspiron-15-5518 ([59.182.147.251]) by mail.gmx.net (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1N33Il-1pahAC0W5t-013M18; Thu, 24 Aug 2023 02:10:33 +0200 From: James Thomas To: Eric Abrahamsen Subject: Re: bug#65467: 29.1.50; Gnus agent groups with spaces in their names cannot be activated while unplugged In-Reply-To: <871qftmlve.fsf@gmx.net> (James Thomas's message of "Thu, 24 Aug 2023 04:01:33 +0530") References: <87zg2i6xu1.fsf@gmx.net> <87cyzdhe5n.fsf@ericabrahamsen.net> <871qftmlve.fsf@gmx.net> Date: Thu, 24 Aug 2023 05:40:29 +0530 Message-ID: <87h6op47wq.fsf@gmx.net> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:g4IiAYei+QwqXl9rVrPnK8th8e6j0V1wFo4U7uZ6BFxkguqajgg scy459nKpT+5AVJzWMVGkiZOnaLCUE1I5oqmGX+aWrbcR88IabJpRCe6Omq1v8bUd6Uif7h r9fqRolHoDHYPGsxDXHnAJWKfyDI9uv/fMGhOILsiTaBAOe2iXXHzAdLU/95FZf0X0q463C ZU2iAp6Wz5QTDGfpsuTQQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:7UEnOjWsWUg=;IhUv7rjIdzGlhBUklxs5fXRFPn5 1SwPARjtWcbZ1qnw1uIL1zUCXT7mZ9J35sXsYlGVLSU9tfBoU3rBYwhH1q9c2qUWI6EWHhiYr 4/80yeMAcGUqxskt7c/0hwmruu3RrQSNSHT1U3IgrnByGpgQqsFvghR/2GXyr4ty2WbpLuocK N6RA/6/aFZfkWSqB6KnfgsmPyYPSDAYLbgh5BJgc47/F9DyjMZ+RyUD6/N1vUQrNdHYYt23o9 Yu7g5aCxdNWuKKhxrc30qL1EhS+5VcOvjCHcZTXQxEUWYMj10U6Lnq3uxPXXlSM5RAxxfrEZA EHYKkoF0cwGuWF6WT2jrUrN6c3hSAugM3Q3G6f9fHPKGdVV7YMy83EwA45wTC4B0DKjAwDu23 g9lNni8StOUOqfvfoGmyUl/aR1FsrPISd6ynIY2RWwm25kSnLutz7l8sIYAfzQH7U6RQjQ4r/ vY0w1Oyig3VSs9YrmDpCrzGt6p4HHK4ny2jFcGYvG/a8V2wzsdjfJUNNPg/P9TLRfbHs/IqGm zYh+aFDm5B7k3KP8HjbfuU/EQ+WOOImtiQjCfFEDeGBL2UNuKr0JcKvCbzQSqaKrLCv7VE4cM OhHiFog/32N+mr1TNQHjdsDw0V0kSDwRQZWQFH4Sy24UP70QVDm1OqoOKjYmNSQM6hwM0Cnkx s9CHy5efbxMwhjNZRFBbaLlni/h7f9I7csbYQbp7WouTYpWCZO7cLXh6PN8NLZNt4wpgA75GN zTSeR8DKtl8gXJGoQRy2nKlW/nysF3WMuESdjabY98tnXD0b66Yh2Os3Oa1zKy/kOujCP7fKU 2kVhB9smSxSnwnDv4W78kIRU0kKRKItco4sdq/RFfSC4TPLjc9z64ppXW8jSqO7HMBnbhncOO 5NobokRv7cNZCZtkYUtMNed6TPIHk7fytDz5qan96tlAFdXlpOeAqubDvhBeTfPQdd/5otue3 BD//IA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 65467 Cc: 65467@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) James Thomas wrote: > Eric Abrahamsen wrote: > >> James Thomas writes: >> >>> To reproduce, attempt to access, while unplugged, any group of an >>> agentized (IMAP) server with a space in its name (such as Gmail's 'Sent >>> Mail' or 'All Mail'). >>> >>> Here's a patch that fixes it: >>> >>> diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el >>> index db205c5b657..5f2401c7c07 100644 >>> --- a/lisp/gnus/gnus-agent.el >>> +++ b/lisp/gnus/gnus-agent.el >>> @@ -1340,13 +1340,13 @@ gnus-agent-save-group-info >>> >>> (goto-char (point-min)) >>> (when (re-search-forward >>> - (concat "^" (regexp-quote group) " ") nil t) >>> + (concat "^\"?" (regexp-quote group) "\"? ") nil t) >>> (save-excursion >>> (setq oactive-max (read (current-buffer)) ;; max >>> oactive-min (read (current-buffer)))) ;; min >>> (gnus-delete-line))) >>> (when active >>> - (insert (format "%s %d %d y\n" group >>> + (insert (format "%S %d %d y\n" group >>> (max (or oactive-max (cdr active)) (cdr active)) >>> (min (or oactive-min (car active)) (car active)))) >>> (goto-char (point-max)) >>> @@ -1370,7 +1370,7 @@ gnus-agent-get-group-info >>> >>> (goto-char (point-min)) >>> (when (re-search-forward >>> - (concat "^" (regexp-quote group) " ") nil t) >>> + (concat "^\"?" (regexp-quote group) "\"? ") nil t) >>> (save-excursion >>> (setq oactive-max (read (current-buffer)) ;; max >>> oactive-min (read (current-buffer))) ;; min >>> diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el >>> index e8f157392d4..3a91139cb3f 100644 >>> --- a/lisp/gnus/nnmail.el >>> +++ b/lisp/gnus/nnmail.el >>> @@ -695,7 +697,7 @@ nnmail-generate-active >>> (erase-buffer) >>> (let (group) >>> (while (setq group (pop alist)) >>> - (insert (format "%s %d %d y\n" (car group) (cdadr group) >>> + (insert (format "%S %d %d y\n" (car group) (cdadr group) >>> (caadr group)))) >>> (goto-char (point-max)) >>> (while (search-backward "\\." nil t) >>> >>> Note: If you're already facing this problem with a group, after applying >>> the patch, you'll also have to do M-g over it in the Group buffer while >>> plugged, to update the agent's active file. New servers wouldn't need >>> this. >>> >>> This is similar in spirit to bug#42823. >> >> I'm thinking about ways in which this change might be able to break >> users' existing set ups. It looks to me like it will be a "silent >> upgrade" as the group names will be replaced with their quoted versions. >> >> But that means that users will not be able to downgrade their Gnus >> (versions of Gnus without this change won't be able to read active files >> written with this change in place), which I think is a contract we try >> to stick to. Do we? I can't remember. > > Hmmm... > Perhaps we can commit only the 'reading' parts (1st change in the first 2 hunks) and hold off on the 'writing' parts for a later, minor release (which wouldn't have drastic changes) so that people know (for one release) that any breakage is not due to that. >> In general it's annoying that different parts of Gnus use different >> routines for reading/writing active files... > > At least for this point: I've checked that all results of a grep for '%s > %d' or '(regexp-quote .*group.*)' in the gnus code are covered. These > should be the ones not using 'read'. That should read '(regexp-quote[ \n\t]+.*group.*)' (in effect, through Dired's M-s a C-M-s). --