From unknown Wed Jun 18 23:14:31 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#20671 <20671@debbugs.gnu.org> To: bug#20671 <20671@debbugs.gnu.org> Subject: Status: [PATCH] Use IMAP MOVE extension if available Reply-To: bug#20671 <20671@debbugs.gnu.org> Date: Thu, 19 Jun 2025 06:14:31 +0000 retitle 20671 [PATCH] Use IMAP MOVE extension if available reassign 20671 gnus submitter 20671 Nikolaus Rath severity 20671 normal tag 20671 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Tue May 26 23:24:24 2015 Received: (at submit) by debbugs.gnu.org; 27 May 2015 03:24:24 +0000 Received: from localhost ([127.0.0.1]:57729 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YxRx6-0006xb-7X for submit@debbugs.gnu.org; Tue, 26 May 2015 23:24:24 -0400 Received: from ebox.rath.org ([23.92.25.96]:44585) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YxRx0-0006xQ-AR for submit@debbugs.gnu.org; Tue, 26 May 2015 23:24:18 -0400 Received: from ip174-67-224-13.oc.oc.cox.net ([174.67.224.13] helo=[192.168.17.47]) by ebox.rath.org with esmtpsa (TLSv1.2:DHE-RSA-AES128-SHA:128) (Exim 4.80) (envelope-from ) id 1YxRwz-0001en-Sj for submit@debbugs.gnu.org; Wed, 27 May 2015 03:24:13 +0000 Message-ID: <556538D8.4000801@rath.org> Date: Tue, 26 May 2015 20:24:08 -0700 From: Nikolaus Rath User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0 MIME-Version: 1.0 To: submit@debbugs.gnu.org Subject: [PATCH] Use IMAP MOVE extension if available Content-Type: multipart/mixed; boundary="------------060403090902090304030007" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) This is a multi-part message in MIME format. --------------060403090902090304030007 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit [ Apologies for the duplicate messages, I've confused bugs@gnus.org with submit@debbugs.gnu.org ] Hello, Currently Gnus uses a combination of COPY, STORE + EXPUNGE to move messages from one imap group into another. The attached patch enables the use of the MOVE command instead if the server supports it. Thanks for considering. Best, -Nikolaus -- GPG encrypted emails preferred. Key id: 0xD113FCAC3C4E599F Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F »Time flies like an arrow, fruit flies like a Banana.« --------------060403090902090304030007 Content-Type: text/x-patch; name="use_imap_move.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="use_imap_move.diff" --- nnimap.el.bak 2015-05-25 11:04:15.671769838 -0700 +++ nnimap.el 2015-05-25 12:58:27.051313588 -0700 @@ -881,17 +882,19 @@ ;; way. (let ((message-id (message-field-value "message-id"))) (if internal-move-group - (let ((result - (with-current-buffer (nnimap-buffer) - (nnimap-command "UID COPY %d %S" - article - (utf7-encode internal-move-group t))))) - (when (car result) - (nnimap-delete-article article) - (cons internal-move-group - (or (nnimap-find-uid-response "COPYUID" (cadr result)) - (nnimap-find-article-by-message-id - internal-move-group server message-id + (with-current-buffer (nnimap-buffer) + (let* ((can-move (nnimap-capability "MOVE")) + (command (if can-move + "UID MOVE %d %S" + "UID COPY %d %S")) + (result (nnimap-command command article + (utf7-encode internal-move-group t)))) + (when (and (car result) (not can-move)) + (nnimap-delete-article article)) + (cons internal-move-group + (or (nnimap-find-uid-response "COPYUID" (cadr result)) + (nnimap-find-article-by-message-id + internal-move-group server message-id nnimap-request-articles-find-limit))))) ;; Move the article to a different method. (let ((result (eval accept-form))) --------------060403090902090304030007-- From debbugs-submit-bounces@debbugs.gnu.org Tue May 26 23:48:56 2015 Received: (at 20671) by debbugs.gnu.org; 27 May 2015 03:48:56 +0000 Received: from localhost ([127.0.0.1]:57740 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YxSKq-0000cW-CM for submit@debbugs.gnu.org; Tue, 26 May 2015 23:48:56 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:45588 ident=Debian-exim) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YxSKk-0000cK-RE for 20671@debbugs.gnu.org; Tue, 26 May 2015 23:48:50 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1YxSKj-0006sS-HZ; Tue, 26 May 2015 23:48:45 -0400 From: Glenn Morris To: Nikolaus Rath Subject: Re: bug#20671: [PATCH] Use IMAP MOVE extension if available References: <556538D8.4000801@rath.org> X-Spook: SAFE Albright anarchy Majic argus M-14 genetic military X-Ran: @SDvCwy06(2rhUc$L;4bnaM"2K9P"%Di_a7J~m}/xTy4-`ABOsGkJrJX]U3S#p^E6sV%;I X-Hue: magenta X-Attribution: GM Date: Tue, 26 May 2015 23:48:45 -0400 In-Reply-To: <556538D8.4000801@rath.org> (Nikolaus Rath's message of "Tue, 26 May 2015 20:24:08 -0700") Message-ID: <44r3q2d6jm.fsf@fencepost.gnu.org> User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 20671 Cc: 20671@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -5.0 (-----) Nikolaus Rath wrote: > [ Apologies for the duplicate messages, I've confused bugs@gnus.org with > submit@debbugs.gnu.org ] If you want to mail submit@debbugs.gnu.org, you must put: Package: gnus in the first line of the message body, else your bug reports will go to the help-debbugs mailing list rather than the bugs@gnus.org list. I've reassigned both reports to the gnus package. From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 08 22:13:13 2015 Received: (at 20671) by debbugs.gnu.org; 9 Jul 2015 02:13:13 +0000 Received: from localhost ([127.0.0.1]:44593 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZD1Kq-0000Fp-8M for submit@debbugs.gnu.org; Wed, 08 Jul 2015 22:13:12 -0400 Received: from ebox.rath.org ([23.92.25.96]:43138) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZD1Kn-0000Fd-B6 for 20671@debbugs.gnu.org; Wed, 08 Jul 2015 22:13:10 -0400 Received: from vostro ([192.168.12.4] helo=vostro.rath.org) by ebox.rath.org with esmtps (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) (Exim 4.80) (envelope-from ) id 1ZD1Ki-0007tD-I7; Thu, 09 Jul 2015 02:13:04 +0000 Received: by vostro.rath.org (Postfix, from userid 1000) id 06F28EC53AA; Wed, 8 Jul 2015 19:13:03 -0700 (PDT) From: Nikolaus Rath To: ding@gnus.org, 20671@debbugs.gnu.org Subject: Re: [PATCH] Use IMAP MOVE extension if available References: <87twv0junf.fsf@vostro.rath.org> <87vbdwoeer.fsf@ericabrahamsen.net> Mail-Copies-To: never Mail-Followup-To: ding@gnus.org, 20671@debbugs.gnu.org Date: Wed, 08 Jul 2015 19:13:03 -0700 In-Reply-To: <87vbdwoeer.fsf@ericabrahamsen.net> (Eric Abrahamsen's message of "Tue, 07 Jul 2015 11:05:48 +0800") Message-ID: <87io9udqog.fsf@vostro.rath.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 20671 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Jul 06 2015, Eric Abrahamsen wrote: > Nikolaus Rath writes: > >> Hello, >> >> Currently Gnus uses a combination of COPY, STORE + EXPUNGE to move >> messages from one imap group into another. >> >> The attached patch enables the use of the MOVE command instead if the >> server supports it. >> >> Thanks for considering. >> >> (Is this the right place to post patches, or should it go to >> bug-gnu-emacs@gnu.org?) >> >> Best, >> -Nikolaus > > and `nnimap-process-expiry-target', sorry... Updated patch is attached. Note that the changes to nnimap-split-incoming-mail are untested (I don't use that function). Best, -Nikolaus --=20 GPG encrypted emails preferred. Key id: 0xD113FCAC3C4E599F Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F =C2=BBTime flies like an arrow, fruit flies like a Banana.=C2= =AB --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Use-IMAP-MOVE-extension-if-available.patch >From 2cd9616461e3551e3e2e556879fb3e83846754b7 Mon Sep 17 00:00:00 2001 From: Nikolaus Rath Date: Wed, 8 Jul 2015 19:10:46 -0700 Subject: [PATCH] Use IMAP MOVE extension if available Currently Gnus uses a combination of COPY, STORE + EXPUNGE to move messages from one IMAP group into another. This patch enables the use of the MOVE command instead if the server supports it. --- lisp/nnimap.el | 59 ++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/lisp/nnimap.el b/lisp/nnimap.el index cc1691b..db1a91a 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -960,17 +960,19 @@ If non-nil, articles flagged as deleted (using the IMAP ;; way. (let ((message-id (message-field-value "message-id"))) (if internal-move-group - (let ((result - (with-current-buffer (nnimap-buffer) - (nnimap-command "UID COPY %d %S" - article - (utf7-encode internal-move-group t))))) - (when (car result) - (nnimap-delete-article article) - (cons internal-move-group - (or (nnimap-find-uid-response "COPYUID" (cadr result)) - (nnimap-find-article-by-message-id - internal-move-group server message-id + (with-current-buffer (nnimap-buffer) + (let* ((can-move (nnimap-capability "MOVE")) + (command (if can-move + "UID MOVE %d %S" + "UID COPY %d %S")) + (result (nnimap-command command article + (utf7-encode internal-move-group t)))) + (when (and (car result) (not can-move)) + (nnimap-delete-article article)) + (cons internal-move-group + (or (nnimap-find-uid-response "COPYUID" (cadr result)) + (nnimap-find-article-by-message-id + internal-move-group server message-id nnimap-request-articles-find-limit))))) ;; Move the article to a different method. (let ((result (eval accept-form))) @@ -1009,11 +1011,12 @@ If non-nil, articles flagged as deleted (using the IMAP (gnus-sorted-complement articles deletable-articles)))))) (defun nnimap-process-expiry-targets (articles group server) - (let ((deleted-articles nil)) + (let ((deleted-articles nil) + (articles-to-delete nil)) (cond ;; shortcut further processing if we're going to delete the articles ((eq nnmail-expiry-target 'delete) - (setq deleted-articles articles) + (setq articles-to-delete articles) t) ;; or just move them to another folder on the same IMAP server ((and (not (functionp nnmail-expiry-target)) @@ -1023,11 +1026,14 @@ If non-nil, articles flagged as deleted (using the IMAP (and (nnimap-change-group group server) (with-current-buffer (nnimap-buffer) (nnheader-message 7 "Expiring articles from %s: %s" group articles) - (nnimap-command - "UID COPY %s %S" - (nnimap-article-ranges (gnus-compress-sequence articles)) - (utf7-encode (gnus-group-real-name nnmail-expiry-target) t)) - (setq deleted-articles articles))) + (let ((can-move (nnimap-capability "MOVE"))) + (nnimap-command + (if can-move + "UID MOVE %s %S" + "UID COPY %s %S") + (nnimap-article-ranges (gnus-compress-sequence articles)) + (utf7-encode (gnus-group-real-name nnmail-expiry-target) t)) + (set (if can-move 'deleted-articles 'articles-to-delete) articles)))) t) (t (dolist (article articles) @@ -1048,11 +1054,13 @@ If non-nil, articles flagged as deleted (using the IMAP (setq target nil)) (nnheader-message 7 "Expiring article %s:%d" group article)) (when target - (push article deleted-articles)))))) - (setq deleted-articles (nreverse deleted-articles)))) + (push article articles-to-delete)))))) + (setq articles-to-delete (nreverse articles-to-delete)))) ;; Change back to the current group again. (nnimap-change-group group server) - (nnimap-delete-article (gnus-compress-sequence deleted-articles)) + (when articles-to-delete + (nnimap-delete-article (gnus-compress-sequence articles-to-delete)) + (setq deleted-articles articles-to-delete)) deleted-articles)) (defun nnimap-find-expired-articles (group) @@ -2103,6 +2111,7 @@ Return the server's response to the SELECT or EXAMINE command." nnmail-split-fancy)) (nnmail-inhibit-default-split-group t) (groups (nnimap-get-groups)) + (can-move (nnimap-capability "MOVE")) new-articles) (erase-buffer) (nnimap-command "SELECT %S" nnimap-inbox) @@ -2137,14 +2146,16 @@ Return the server's response to the SELECT or EXAMINE command." ;; Don't copy if the message is already in its ;; target group. (unless (string= group nnimap-inbox) - (push (list (nnimap-send-command - "UID COPY %s %S" + (push (list (nnimap-send-command + (if can-move + "UID MOVE %d %S" + "UID COPY %s %S") (nnimap-article-ranges ranges) (utf7-encode group t)) ranges) sequences))))) ;; Wait for the last COPY response... - (when sequences + (when (and (not can-move) sequences) (nnimap-wait-for-response (caar sequences)) ;; And then mark the successful copy actions as deleted, ;; and possibly expunge them. -- 2.1.4 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 15 20:29:53 2015 Received: (at 20671) by debbugs.gnu.org; 16 Jul 2015 00:29:53 +0000 Received: from localhost ([127.0.0.1]:50473 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZFX3g-0003RU-Ri for submit@debbugs.gnu.org; Wed, 15 Jul 2015 20:29:53 -0400 Received: from ebox.rath.org ([23.92.25.96]:49809) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZFX3e-0003RK-8h for 20671@debbugs.gnu.org; Wed, 15 Jul 2015 20:29:51 -0400 Received: from vostro ([192.168.12.4] helo=vostro.rath.org) by ebox.rath.org with esmtps (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) (Exim 4.80) (envelope-from ) id 1ZFX3b-0004xm-Gs; Thu, 16 Jul 2015 00:29:47 +0000 Received: by vostro.rath.org (Postfix, from userid 1000) id 20890EC65B2; Wed, 15 Jul 2015 17:29:47 -0700 (PDT) From: Nikolaus Rath To: 20671@debbugs.gnu.org Subject: Re: [PATCH] Use IMAP MOVE extension if available Mail-Copies-To: never Mail-Followup-To: 20671@debbugs.gnu.org, ding , emacs-devel , Eric Abrahamsen Date: Wed, 15 Jul 2015 17:29:47 -0700 Message-ID: <87io9l2bd0.fsf@vostro.rath.org> User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/24.4 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.8 (/) X-Debbugs-Envelope-To: 20671 Cc: Eric Abrahamsen , ding , emacs-devel X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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.8 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello, The attached revision fixes a small error when parsing the response to the UID MOVE command. Previously, it would fail to find the COPYUID response and fall back to using the message id to determine the UID of the copied message. Best, -Nikolaus --=20 GPG encrypted emails preferred. Key id: 0xD113FCAC3C4E599F Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F =C2=BBTime flies like an arrow, fruit flies like a Banana.=C2= =AB --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-nnimap.el-use-IMAP-MOVE-extension-if-available.patch >From f7cff6a6068079ecfb31d31986902b5b17cee0b5 Mon Sep 17 00:00:00 2001 From: Nikolaus Rath Date: Thu, 9 Jul 2015 20:01:12 -0700 Subject: [PATCH] nnimap.el: use IMAP MOVE extension if available * lisp/nnimap.el (nnimap-request-move-article) (nnimap-process-expiry-targets, nnimap-split-incoming-mail): use MOVE extension if available. --- lisp/ChangeLog | 6 ++++++ lisp/nnimap.el | 59 ++++++++++++++++++++++++++++++++++------------------------ 2 files changed, 41 insertions(+), 24 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d4af26a..58d00ed 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,11 @@ 2015-07-11 Nikolaus Rath + * nnimap.el (nnimap-request-move-article) + (nnimap-process-expiry-targets, nnimap-split-incoming-mail): use MOVE + extension if available. + +2015-07-09 Nikolaus Rath + * nnimap.el (nnimap-hide-deleted): introduced as new server variable. (nnimap-header-parameters): also request flags. (nnimap-transform-headers): parse flags and conditionally skip over diff --git a/lisp/nnimap.el b/lisp/nnimap.el index 2f4a818..f56fb83 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -960,17 +960,19 @@ If non-nil, articles flagged as deleted (using the IMAP ;; way. (let ((message-id (message-field-value "message-id"))) (if internal-move-group - (let ((result - (with-current-buffer (nnimap-buffer) - (nnimap-command "UID COPY %d %S" - article - (utf7-encode internal-move-group t))))) - (when (car result) - (nnimap-delete-article article) - (cons internal-move-group - (or (nnimap-find-uid-response "COPYUID" (cadr result)) - (nnimap-find-article-by-message-id - internal-move-group server message-id + (with-current-buffer (nnimap-buffer) + (let* ((can-move (nnimap-capability "MOVE")) + (command (if can-move + "UID MOVE %d %S" + "UID COPY %d %S")) + (result (nnimap-command command article + (utf7-encode internal-move-group t)))) + (when (and (car result) (not can-move)) + (nnimap-delete-article article)) + (cons internal-move-group + (or (nnimap-find-uid-response "COPYUID" (caddr result)) + (nnimap-find-article-by-message-id + internal-move-group server message-id nnimap-request-articles-find-limit))))) ;; Move the article to a different method. (let ((result (eval accept-form))) @@ -1009,11 +1011,12 @@ If non-nil, articles flagged as deleted (using the IMAP (gnus-sorted-complement articles deletable-articles)))))) (defun nnimap-process-expiry-targets (articles group server) - (let ((deleted-articles nil)) + (let ((deleted-articles nil) + (articles-to-delete nil)) (cond ;; shortcut further processing if we're going to delete the articles ((eq nnmail-expiry-target 'delete) - (setq deleted-articles articles) + (setq articles-to-delete articles) t) ;; or just move them to another folder on the same IMAP server ((and (not (functionp nnmail-expiry-target)) @@ -1023,11 +1026,14 @@ If non-nil, articles flagged as deleted (using the IMAP (and (nnimap-change-group group server) (with-current-buffer (nnimap-buffer) (nnheader-message 7 "Expiring articles from %s: %s" group articles) - (nnimap-command - "UID COPY %s %S" - (nnimap-article-ranges (gnus-compress-sequence articles)) - (utf7-encode (gnus-group-real-name nnmail-expiry-target) t)) - (setq deleted-articles articles))) + (let ((can-move (nnimap-capability "MOVE"))) + (nnimap-command + (if can-move + "UID MOVE %s %S" + "UID COPY %s %S") + (nnimap-article-ranges (gnus-compress-sequence articles)) + (utf7-encode (gnus-group-real-name nnmail-expiry-target) t)) + (set (if can-move 'deleted-articles 'articles-to-delete) articles)))) t) (t (dolist (article articles) @@ -1048,11 +1054,13 @@ If non-nil, articles flagged as deleted (using the IMAP (setq target nil)) (nnheader-message 7 "Expiring article %s:%d" group article)) (when target - (push article deleted-articles)))))) - (setq deleted-articles (nreverse deleted-articles)))) + (push article articles-to-delete)))))) + (setq articles-to-delete (nreverse articles-to-delete)))) ;; Change back to the current group again. (nnimap-change-group group server) - (nnimap-delete-article (gnus-compress-sequence deleted-articles)) + (when articles-to-delete + (nnimap-delete-article (gnus-compress-sequence articles-to-delete)) + (setq deleted-articles articles-to-delete)) deleted-articles)) (defun nnimap-find-expired-articles (group) @@ -2103,6 +2111,7 @@ Return the server's response to the SELECT or EXAMINE command." nnmail-split-fancy)) (nnmail-inhibit-default-split-group t) (groups (nnimap-get-groups)) + (can-move (nnimap-capability "MOVE")) new-articles) (erase-buffer) (nnimap-command "SELECT %S" nnimap-inbox) @@ -2137,14 +2146,16 @@ Return the server's response to the SELECT or EXAMINE command." ;; Don't copy if the message is already in its ;; target group. (unless (string= group nnimap-inbox) - (push (list (nnimap-send-command - "UID COPY %s %S" + (push (list (nnimap-send-command + (if can-move + "UID MOVE %d %S" + "UID COPY %s %S") (nnimap-article-ranges ranges) (utf7-encode group t)) ranges) sequences))))) ;; Wait for the last COPY response... - (when sequences + (when (and (not can-move) sequences) (nnimap-wait-for-response (caar sequences)) ;; And then mark the successful copy actions as deleted, ;; and possibly expunge them. -- 2.1.4 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 01 14:12:07 2017 Received: (at 20671-done) by debbugs.gnu.org; 1 Jan 2017 19:12:08 +0000 Received: from localhost ([127.0.0.1]:38815 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cNlY7-0006Wd-Pk for submit@debbugs.gnu.org; Sun, 01 Jan 2017 14:12:07 -0500 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:45697) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cNlY6-0006WW-Gx for 20671-done@debbugs.gnu.org; Sun, 01 Jan 2017 14:12:07 -0500 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 5B5BB20877 for <20671-done@debbugs.gnu.org>; Sun, 1 Jan 2017 14:12:06 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute1.internal (MEProxy); Sun, 01 Jan 2017 14:12:06 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=smtpout; bh=6nzyZeiqdJ+pOu dyojC3bW2lfQY=; b=qBfKUQb+NL1ExtVDwGbO9faD4vo2bB9v9VI0UN5NADKHxF EIqphrYhvnLtKAQyEKqGuLlb9hLleB/UbFXbVerkUqSWPbKecc7MjnkNBB3Q7h0d V62DEAlHcTtk41qIL8kf2YCTbcqcpjKCOtjrWbaKHS1lne+GHm0IGQj+eMnXM= X-ME-Sender: X-Sasl-enc: lv6P/uvzZ6HKc+V/q6MzF06QAEjcseaXeMi0PkckT8ej 1483297926 Received: from ebox.rath.org (ebox.rath.org [45.79.69.51]) by mail.messagingengine.com (Postfix) with ESMTPA id 02DD224B9B for <20671-done@debbugs.gnu.org>; Sun, 1 Jan 2017 14:12:06 -0500 (EST) Received: from vostro.rath.org (vostro [192.168.12.4]) by ebox.rath.org (Postfix) with ESMTPS id 7B0DF3EE for <20671-done@debbugs.gnu.org>; Sun, 1 Jan 2017 19:12:03 +0000 (UTC) Received: by vostro.rath.org (Postfix, from userid 1000) id 41B01102471; Sun, 1 Jan 2017 11:12:03 -0800 (PST) From: Nikolaus Rath To: 20671-done@debbugs.gnu.org Subject: Fixed Date: Sun, 01 Jan 2017 11:12:03 -0800 Message-ID: <87bmvqegsc.fsf@vostro.rath.org> User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20671-done 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.7 (/) Fixed in commit fc9206b73a254a400245578b94542cfe82c68e9c --=20 GPG encrypted emails preferred. Key id: 0xD113FCAC3C4E599F Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F =C2=BBTime flies like an arrow, fruit flies like a Banana.=C2= =AB From unknown Wed Jun 18 23:14:31 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 30 Jan 2017 12:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator