* bug#20670: Status: [PATCH] nnimap: enable additional expunge options [not found] ` <87inp4p7ri.fsf@gnus.org> @ 2017-01-24 19:50 ` Lars Ingebrigtsen 2017-01-24 19:55 ` Lars Ingebrigtsen 2017-01-24 23:09 ` Nikolaus Rath 1 sibling, 1 reply; 20+ messages in thread From: Lars Ingebrigtsen @ 2017-01-24 19:50 UTC (permalink / raw) To: bug#20670 Lars Ingebrigtsen <larsi@gnus.org> writes: > reassign 20670 emacs,gnus > thanks > > bug#20670 <20670@debbugs.gnu.org> writes: > >> retitle 20670 [PATCH] nnimap: enable additional expunge options >> reassign 20670 gnus > > And part of the reason I hadn't seen the patch before is this. I wasn't > aware that there were Gnus-only bugs? All the ones I'm seeing are marked > > reassing <foo> emacs,gnus > > *gulp* Perhaps there's a gazillion Gnus-only bug reports? Indeed. There were about 100 Gnus-only bug reports, so I've never seen them before. *sigh* -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#20670: Status: [PATCH] nnimap: enable additional expunge options 2017-01-24 19:50 ` bug#20670: Status: [PATCH] nnimap: enable additional expunge options Lars Ingebrigtsen @ 2017-01-24 19:55 ` Lars Ingebrigtsen 2017-01-24 23:10 ` Nikolaus Rath 2017-01-24 23:21 ` Glenn Morris 0 siblings, 2 replies; 20+ messages in thread From: Lars Ingebrigtsen @ 2017-01-24 19:55 UTC (permalink / raw) To: bug#20670 Lars Ingebrigtsen <larsi@gnus.org> writes: > Indeed. There were about 100 Gnus-only bug reports, so I've never seen > them before. *sigh* Would anybody mind if I reassigned them all back to emacs,gnus? So they don't get "lost" again? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#20670: Status: [PATCH] nnimap: enable additional expunge options 2017-01-24 19:55 ` Lars Ingebrigtsen @ 2017-01-24 23:10 ` Nikolaus Rath 2017-01-24 23:26 ` Glenn Morris 2017-01-24 23:21 ` Glenn Morris 1 sibling, 1 reply; 20+ messages in thread From: Nikolaus Rath @ 2017-01-24 23:10 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: bug#20670 On Jan 24 2017, Lars Ingebrigtsen <larsi@gnus.org> wrote: > Lars Ingebrigtsen <larsi@gnus.org> writes: > >> Indeed. There were about 100 Gnus-only bug reports, so I've never seen >> them before. *sigh* > > Would anybody mind if I reassigned them all back to emacs,gnus? So they > don't get "lost" again? I certainly don't mind. But I think there's some other issues with the bug tracker. I only see your last three messages by accident when using the web interface. They were not send to me by email, despite my being the submitter. 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.« ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#20670: Status: [PATCH] nnimap: enable additional expunge options 2017-01-24 23:10 ` Nikolaus Rath @ 2017-01-24 23:26 ` Glenn Morris 2017-01-24 23:38 ` Nikolaus Rath 0 siblings, 1 reply; 20+ messages in thread From: Glenn Morris @ 2017-01-24 23:26 UTC (permalink / raw) To: Nikolaus Rath; +Cc: Lars Ingebrigtsen, bug#20670 Nikolaus Rath wrote: > bug tracker. I only see your last three messages by accident when using > the web interface. They were not send to me by email, despite my being > the submitter. The system is working as designed. People should use reply-to-all on GNU mailing lists, but sometimes they only reply-to-list. ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#20670: Status: [PATCH] nnimap: enable additional expunge options 2017-01-24 23:26 ` Glenn Morris @ 2017-01-24 23:38 ` Nikolaus Rath 0 siblings, 0 replies; 20+ messages in thread From: Nikolaus Rath @ 2017-01-24 23:38 UTC (permalink / raw) To: Glenn Morris; +Cc: Lars Ingebrigtsen, bug#20670 On Jan 24 2017, Glenn Morris <rgm@gnu.org> wrote: > Nikolaus Rath wrote: > >> bug tracker. I only see your last three messages by accident when using >> the web interface. They were not send to me by email, despite my being >> the submitter. > > The system is working as designed. Well, in that case I think its badly designed, because... > People should use reply-to-all on GNU mailing lists, but sometimes they > only reply-to-list. ..this then leads to messages being lost without anyone noticing. 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.« ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#20670: Status: [PATCH] nnimap: enable additional expunge options 2017-01-24 19:55 ` Lars Ingebrigtsen 2017-01-24 23:10 ` Nikolaus Rath @ 2017-01-24 23:21 ` Glenn Morris 2017-01-24 23:26 ` Lars Ingebrigtsen 1 sibling, 1 reply; 20+ messages in thread From: Glenn Morris @ 2017-01-24 23:21 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: bug#20670 Lars Ingebrigtsen wrote: > Lars Ingebrigtsen <larsi@gnus.org> writes: > >> Indeed. There were about 100 Gnus-only bug reports, so I've never seen >> them before. *sigh* > > Would anybody mind if I reassigned them all back to emacs,gnus? So they > don't get "lost" again? Personally I don't care what you do with them. :) I like to discourage the use of packages as glorified tags, so perhaps get rid of the "gnus" package altogether, and instead use a usertag or just add "gnus" to the subject. But it sounds like maybe the history here has been forgotten: Gnus always had its own dedicated bug list, and some time ago [1] we set things up so that would redirect to a "gnus" package at debbugs.gnu.org. "emacs,gnus" was not appropriate, since eg these reports might be about gnus with XEmacs or other issues irrelevant to gnus-as-shipped with Emacs. See gnus-bug-package in gnus.el. Anyway, that was the reasoning at the time. [1] https://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00598.html ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#20670: Status: [PATCH] nnimap: enable additional expunge options 2017-01-24 23:21 ` Glenn Morris @ 2017-01-24 23:26 ` Lars Ingebrigtsen 2017-01-24 23:48 ` Lars Ingebrigtsen 0 siblings, 1 reply; 20+ messages in thread From: Lars Ingebrigtsen @ 2017-01-24 23:26 UTC (permalink / raw) To: Glenn Morris; +Cc: bug#20670 Glenn Morris <rgm@gnu.org> writes: > I like to discourage the use of packages as glorified tags, so perhaps > get rid of the "gnus" package altogether, and instead use a usertag or > just add "gnus" to the subject. Sure, sounds good to me. > But it sounds like maybe the history here has been forgotten: > > Gnus always had its own dedicated bug list, and some time ago [1] > we set things up so that would redirect to a "gnus" package at > debbugs.gnu.org. "emacs,gnus" was not appropriate, since eg these > reports might be about gnus with XEmacs or other issues irrelevant to > gnus-as-shipped with Emacs. See gnus-bug-package in gnus.el. > > Anyway, that was the reasoning at the time. I'm sure it made sense at the time, but these days there is no Gnus outside of Emacs, so I think it would be nice to roll them back into the Emacs bug tracker. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#20670: Status: [PATCH] nnimap: enable additional expunge options 2017-01-24 23:26 ` Lars Ingebrigtsen @ 2017-01-24 23:48 ` Lars Ingebrigtsen 0 siblings, 0 replies; 20+ messages in thread From: Lars Ingebrigtsen @ 2017-01-24 23:48 UTC (permalink / raw) To: Glenn Morris; +Cc: 20670 Lars Ingebrigtsen <larsi@gnus.org> writes: > Glenn Morris <rgm@gnu.org> writes: > >> I like to discourage the use of packages as glorified tags, so perhaps >> get rid of the "gnus" package altogether, and instead use a usertag or >> just add "gnus" to the subject. > > Sure, sounds good to me. Do you have some magic you could do on your side? :-) Otherwise I can script something that sends "reassign" messages to the about 100 bug reports in question... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#20670: Status: [PATCH] nnimap: enable additional expunge options [not found] ` <87inp4p7ri.fsf@gnus.org> 2017-01-24 19:50 ` bug#20670: Status: [PATCH] nnimap: enable additional expunge options Lars Ingebrigtsen @ 2017-01-24 23:09 ` Nikolaus Rath 2017-01-24 23:27 ` Lars Ingebrigtsen 1 sibling, 1 reply; 20+ messages in thread From: Nikolaus Rath @ 2017-01-24 23:09 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: bug#20670 On Jan 24 2017, Lars Ingebrigtsen <larsi@gnus.org> wrote: > reassign 20670 emacs,gnus > thanks > > bug#20670 <20670@debbugs.gnu.org> writes: > >> retitle 20670 [PATCH] nnimap: enable additional expunge options >> reassign 20670 gnus > > And part of the reason I hadn't seen the patch before is this. I wasn't > aware that there were Gnus-only bugs? I think that is what M-x gnus-bug produces by default (or at least used to produce). 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.« ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#20670: Status: [PATCH] nnimap: enable additional expunge options 2017-01-24 23:09 ` Nikolaus Rath @ 2017-01-24 23:27 ` Lars Ingebrigtsen 0 siblings, 0 replies; 20+ messages in thread From: Lars Ingebrigtsen @ 2017-01-24 23:27 UTC (permalink / raw) To: Nikolaus Rath; +Cc: bug#20670 Nikolaus Rath <Nikolaus@rath.org> writes: > I think that is what M-x gnus-bug produces by default (or at least used > to produce). Ah, so it does: X-Debbugs-Version: 5.13 X-Debbugs-Package: gnus I'll fix that... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <87oajs38kf.fsf@vostro.rath.org>]
[parent not found: <87pojcp7y7.fsf@gnus.org>]
* bug#20670: [PATCH] nnimap: enable additional expunge options (v3) [not found] ` <87pojcp7y7.fsf@gnus.org> @ 2017-01-24 23:37 ` Nikolaus Rath 2017-01-24 23:46 ` Lars Ingebrigtsen ` (4 more replies) 0 siblings, 5 replies; 20+ messages in thread From: Nikolaus Rath @ 2017-01-24 23:37 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: 20670, ding [-- Attachment #1: Type: text/plain, Size: 1655 bytes --] On Jan 24 2017, Lars Ingebrigtsen <larsi@gnus.org> wrote: > Nikolaus Rath <Nikolaus@rath.org> writes: > >> If the IMAP server supports the UID EXPUNGE command, the nnimap backend >> currently always expunges deleted articles. >> >> If the IMAP server does not support this command, articles are either >> not expunged at all (nnimap-expunge is nil), or ALL articles that are >> currently flagged as deleted will be expunged when any one article is >> deleted in Gnus. >> >> This patch introduces three new settings for nnimap-expunge: > > Looks good. Two minor comments: > > + (nnheader-message 3 (concat "nnimap-expunge set to 'immediately, but " > + "server doesn't support UIDPLUS")))) > + > > You've probably done this to make the lines short enough, but the first > one is still more than 80 chars wide. > > + (nnheader-message 7 "Article marked for deletion, but not expunged."))))) > > And so is this. It's probably better to just reflow by breaking the > line after `nnheader-message'. > > This change should also be documented in the "Customizing the IMAP > Connection" node in the Gnus manual, and get an entry in the NEWS > file. Thanks! Attached is an updated patch. Btw, is there any way to generate the list of affected functions in the commit message automatically? Doing this by hand is rather cumbersome... 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.« [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-nnimap.el-support-additional-expunge-options.patch --] [-- Type: text/x-diff, Size: 7909 bytes --] From 3421d2b8c8d3eb20052432d1ba331be886d812a6 Mon Sep 17 00:00:00 2001 From: Nikolaus Rath <Nikolaus@rath.org> Date: Tue, 24 Jan 2017 15:31:46 -0800 Subject: [PATCH] nnimap.el: support additional expunge options * lisp/gnus/nnimap.el (nnimap-close-group, nnimap-request-expire-articles, nnimap-delete-article, nnimap-request-scan): add new 'never, 'immediate, and 'on-exit settings for nnimap-expunge. --- doc/misc/gnus.texi | 16 ++++++++-- etc/NEWS | 10 +++++++ lisp/gnus/nnimap.el | 85 ++++++++++++++++++++++++++++++----------------------- 3 files changed, 72 insertions(+), 39 deletions(-) diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index 05159..e8524 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi @@ -14273,9 +14273,19 @@ Customizing the IMAP Connection @code{plain} or @code{cram-md5}. @item nnimap-expunge -If non-@code{nil}, expunge articles after deleting them. This is always done -if the server supports UID EXPUNGE, but it's not done by default on -servers that doesn't support that command. +When to expunge deleted messages. If @code{never}, deleted articles +are marked with the IMAP @code{\\Delete} flag but not automatically +expunged. If @code{immediately}, deleted articles are immediately expunged +(this requires the server to support the UID EXPUNGE command). If +@code{on-exit}, deleted articles are flagged, and all flagged articles are +expunged when the group is closed. + +For backwards compatibility, this variable may also be set to t +or nil. If the server supports UID EXPUNGE, both t and nil are +equivalent to @code{immediately}. If the server does not support UID +EXPUNGE nil is equivalent to @code{never}, while t will immediately +expunge ALL articles that are currently flagged as deleted +(i.e., potentially not only the article that was just deleted). @item nnimap-streaming Virtually all @acronym{IMAP} server support fast streaming of data. diff --git a/etc/NEWS b/etc/NEWS index ca66d..e5ee4 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -81,6 +81,16 @@ for '--daemon'. * Changes in Emacs 26.1 +++ +** The Gnus user variable 'nnimap-expunge' supports three new values: +'never' for never expunging messages, 'immediately' for immediately +expunging deleted messages, and 'on-exit' to expunge deleted articles +when exiting the group's summary buffer. Setting 'nnimap-expunge' to +'nil' or 't' is still supported but not recommended, since it may +result in Gnus expunging all messages that have been flagged as +deleted by any IMAP client (rather than just those that have been +deleted by Gnus). + ++++ ** The new function 'mapbacktrace' applies a function to all frames of the current stack trace. diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index 700e86..e7e64 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -92,10 +92,21 @@ nnimap-authenticator Possible choices are nil (use default methods), `anonymous', `login', `plain' and `cram-md5'.") -(defvoo nnimap-expunge t - "If non-nil, expunge articles after deleting them. -This is always done if the server supports UID EXPUNGE, but it's -not done by default on servers that doesn't support that command.") +(defvoo nnimap-expunge 'on-exit + "When to expunge deleted messages. +If 'never, deleted articles are marked with the IMAP \\Delete +flag but not automatically expunged. If 'immediately, deleted +articles are immediately expunged (this requires the server to +support the UID EXPUNGE command). If 'on-exit, deleted articles +are flagged, and all flagged articles are expunged when the +group is closed. + +For backwards compatibility, this variable may also be set to t +or nil. If the server supports UID EXPUNGE, both t and nil are +equivalent to 'immediately. If the server does not support UID +EXPUNGE nil is equivalent to 'never, while t will immediately +expunge ALL articles that are currently flagged as deleted +(i.e., potentially not only the article that was just deleted).") (defvoo nnimap-streaming t "If non-nil, try to use streaming commands with IMAP servers. @@ -911,7 +922,11 @@ nnimap-get-flags (nreverse articles))) (deffoo nnimap-close-group (_group &optional _server) - t) + (when (eq nnimap-expunge 'on-exit) + (nnoo-change-server 'nnimap server nil) + (with-current-buffer (nnimap-buffer) + (nnimap-wait-for-response + (nnimap-send-command "EXPUNGE"))))) (deffoo nnimap-request-move-article (article group server accept-form &optional _last @@ -960,8 +975,7 @@ nnimap-request-expire-articles articles) ((and force (eq nnmail-expiry-target 'delete)) - (unless (nnimap-delete-article (gnus-compress-sequence articles)) - (nnheader-message 7 "Article marked for deletion, but not expunged.")) + (nnimap-delete-article (gnus-compress-sequence articles)) nil) (t (let ((deletable-articles @@ -1084,21 +1098,38 @@ nnimap-find-article-by-message-id (when (and limit number-of-article) (nnimap-find-article-by-message-id group server message-id)))))))) -(defun nnimap-delete-article (articles) +(defun nnimap-delete-article (articles &optional sync) + "Delete ARTICLES. + +If sync is non-nil, wait for server response." (with-current-buffer (nnimap-buffer) (nnimap-command "UID STORE %s +FLAGS.SILENT (\\Deleted)" (nnimap-article-ranges articles)) + (let ((sequence (cond - ((nnimap-capability "UIDPLUS") + ((eq nnimap-expunge 'immediately) + (if (nnimap-capability "UIDPLUS") (nnimap-command "UID EXPUNGE %s" (nnimap-article-ranges articles)) - t) + (nnheader-message + 3 (concat "nnimap-expunge set to 'immediately, but " + "server doesn't support UIDPLUS")))) + + ((memq nnimap-expunge '(on-exit never)) nil) + + ((nnimap-capability "UIDPLUS") + (nnimap-command "UID EXPUNGE %s" + (nnimap-article-ranges articles))) + (nnimap-expunge - (nnimap-command "EXPUNGE") - t) - (t (gnus-message 7 (concat "nnimap: nnimap-expunge is not set and the " - "server doesn't support UIDPLUS, so we won't " - "delete this article now")))))) + (nnimap-command "EXPUNGE")) + + (t + (nnheader-message + 7 "Article marked for deletion, but not expunged."))))) + + (if (and sync sequence) + (nnimap-wait-for-response sequence))))) (deffoo nnimap-request-scan (&optional group server) (when group @@ -2118,27 +2149,9 @@ nnimap-split-incoming-mail (nnimap-wait-for-response (caar sequences)) ;; And then mark the successful copy actions as deleted, ;; and possibly expunge them. - (nnimap-mark-and-expunge-incoming - (nnimap-parse-copied-articles sequences))) - (nnimap-mark-and-expunge-incoming junk-articles))))))) - -(defun nnimap-mark-and-expunge-incoming (range) - (when range - (setq range (nnimap-article-ranges range)) - (erase-buffer) - (let ((sequence - (nnimap-send-command - "UID STORE %s +FLAGS.SILENT (\\Deleted)" range))) - (cond - ;; If the server supports it, we now delete the message we have - ;; just copied over. - ((nnimap-capability "UIDPLUS") - (setq sequence (nnimap-send-command "UID EXPUNGE %s" range))) - ;; If it doesn't support UID EXPUNGE, then we only expunge if the - ;; user has configured it. - (nnimap-expunge - (setq sequence (nnimap-send-command "EXPUNGE")))) - (nnimap-wait-for-response sequence)))) + (nnimap-delete-article + (nnimap-parse-copied-articles sequences) t)) + (nnimap-delete-article junk-articles t))))))) (defun nnimap-parse-copied-articles (sequences) (let (sequence copied range) -- 2.1.4 ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#20670: [PATCH] nnimap: enable additional expunge options (v3) 2017-01-24 23:37 ` bug#20670: [PATCH] nnimap: enable additional expunge options (v3) Nikolaus Rath @ 2017-01-24 23:46 ` Lars Ingebrigtsen 2017-01-25 0:18 ` Lars Ingebrigtsen ` (3 subsequent siblings) 4 siblings, 0 replies; 20+ messages in thread From: Lars Ingebrigtsen @ 2017-01-24 23:46 UTC (permalink / raw) To: 20670; +Cc: ding Nikolaus Rath <Nikolaus@rath.org> writes: > Thanks! Attached is an updated patch. Thanks; applied. > Btw, is there any way to generate the list of affected functions in the > commit message automatically? Doing this by hand is rather cumbersome... I don't know of any such functionality... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#20670: [PATCH] nnimap: enable additional expunge options (v3) 2017-01-24 23:37 ` bug#20670: [PATCH] nnimap: enable additional expunge options (v3) Nikolaus Rath 2017-01-24 23:46 ` Lars Ingebrigtsen @ 2017-01-25 0:18 ` Lars Ingebrigtsen 2017-01-25 0:24 ` npostavs ` (2 subsequent siblings) 4 siblings, 0 replies; 20+ messages in thread From: Lars Ingebrigtsen @ 2017-01-25 0:18 UTC (permalink / raw) To: 20670; +Cc: Nikolaus Rath, ding (The reason you call out of the mail headers is because you have a Mail-Copies-To: never in the mails you send out. So you're never Cc'd.) There was a bug in the patch, so I've reverted it for now. Here's the backtrace: Debugger entered--Lisp error: (error "Format specifier doesn’t match argument type") format("%d .*\n" (t ("OK" ("HIGHESTMODSEQ" "914696") "Expunge" "completed.") ("VANISHED" "1825937") ("0" "RECENT"))) (looking-at (format "%d .*\n" sequence)) (not (looking-at (format "%d .*\n" sequence))) (progn (while (and (not (bobp)) (progn (forward-line -1) (looking-at "\\*\\|[0-9]+ OK NOOP")))) (not (looking-at (format "%d .*\n" sequence)))) (and (setq openp (memq (process-status process) (quote (open run)))) (progn (while (and (not (bobp)) (progn (forward-line -1) (looking-at "\\*\\|[0-9]+ OK NOOP")))) (not (looking-at (format "%d .*\n" sequence))))) (while (and (setq openp (memq (process-status process) (quote (open run)))) (progn (while (and (not (bobp)) (progn (forward-line -1) (looking-at "\\*\\|[0-9]+ OK NOOP")))) (not (looking-at (format "%d .*\n" sequence))))) (if messagep (progn (nnheader-message-maybe 7 "nnimap read %dk from %s%s" (/ (buffer-size) 1000) nnimap-address (if (not (= 0 (progn "Access slot \"initial-resync\" of `nnimap' struct CL-X." nil ... ...))) (format " (initial sync of %d group%s; please wait)" (progn "Access slot \"initial-resync\" of `nnimap' struct CL-X." nil (or ... ...) (aref nnimap-object 12)) (if (= ... 1) "" "s")) "")))) (nnheader-accept-process-output process) (goto-char (point-max))) (progn (goto-char (point-max)) (while (and (setq openp (memq (process-status process) (quote (open run)))) (progn (while (and (not (bobp)) (progn (forward-line -1) (looking-at "\\*\\|[0-9]+ OK NOOP")))) (not (looking-at (format "%d .*\n" sequence))))) (if messagep (progn (nnheader-message-maybe 7 "nnimap read %dk from %s%s" (/ (buffer-size) 1000) nnimap-address (if (not (= 0 ...)) (format " (initial sync of %d group%s; please wait)" (progn "Access slot \"initial-resync\" of `nnimap' struct CL-X." nil ... ...) (if ... "" "s")) "")))) (nnheader-accept-process-output process) (goto-char (point-max))) (progn "Access slot \"initial-resync\" of `nnimap' struct CL-X." nil (or (and (memq (aref nnimap-object 0) cl-struct-nnimap-tags)) (signal (quote wrong-type-argument) (list (quote nnimap) nnimap-object))) (let* ((v nnimap-object)) (aset v 12 0))) openp) (condition-case nil (progn (goto-char (point-max)) (while (and (setq openp (memq (process-status process) (quote (open run)))) (progn (while (and (not ...) (progn ... ...))) (not (looking-at (format "%d .*\n" sequence))))) (if messagep (progn (nnheader-message-maybe 7 "nnimap read %dk from %s%s" (/ (buffer-size) 1000) nnimap-address (if (not ...) (format " (initial sync of %d group%s; please wait)" ... ...) "")))) (nnheader-accept-process-output process) (goto-char (point-max))) (progn "Access slot \"initial-resync\" of `nnimap' struct CL-X." nil (or (and (memq (aref nnimap-object 0) cl-struct-nnimap-tags)) (signal (quote wrong-type-argument) (list (quote nnimap) nnimap-object))) (let* ((v nnimap-object)) (aset v 12 0))) openp) (quit (if debug-on-quit (progn (debug "Quit"))) (delete-process process) nil)) (let ((process (get-buffer-process (current-buffer))) openp) (condition-case nil (progn (goto-char (point-max)) (while (and (setq openp (memq (process-status process) (quote ...))) (progn (while (and ... ...)) (not (looking-at ...)))) (if messagep (progn (nnheader-message-maybe 7 "nnimap read %dk from %s%s" (/ ... 1000) nnimap-address (if ... ... "")))) (nnheader-accept-process-output process) (goto-char (point-max))) (progn "Access slot \"initial-resync\" of `nnimap' struct CL-X." nil (or (and (memq (aref nnimap-object 0) cl-struct-nnimap-tags)) (signal (quote wrong-type-argument) (list (quote nnimap) nnimap-object))) (let* ((v nnimap-object)) (aset v 12 0))) openp) (quit (if debug-on-quit (progn (debug "Quit"))) (delete-process process) nil))) nnimap-wait-for-response((t ("OK" ("HIGHESTMODSEQ" "914696") "Expunge" "completed.") ("VANISHED" "1825937") ("0" "RECENT"))) (if (and sync sequence) (nnimap-wait-for-response sequence)) (let ((sequence (cond ((eq nnimap-expunge (quote immediately)) (if (nnimap-capability "UIDPLUS") (nnimap-command "UID EXPUNGE %s" (nnimap-article-ranges articles)) (nnheader-message 3 (concat "nnimap-expunge set to 'immediately, but " "server doesn't support UIDPLUS")))) ((memq nnimap-expunge (quote (on-exit never))) nil) ((nnimap-capability "UIDPLUS") (nnimap-command "UID EXPUNGE %s" (nnimap-article-ranges articles))) (nnimap-expunge (nnimap-command "EXPUNGE")) (t (nnheader-message 7 "Article marked for deletion, but not expunged."))))) (if (and sync sequence) (nnimap-wait-for-response sequence))) (save-current-buffer (set-buffer (nnimap-buffer)) (nnimap-command "UID STORE %s +FLAGS.SILENT (\\Deleted)" (nnimap-article-ranges articles)) (let ((sequence (cond ((eq nnimap-expunge (quote immediately)) (if (nnimap-capability "UIDPLUS") (nnimap-command "UID EXPUNGE %s" ...) (nnheader-message 3 ...))) ((memq nnimap-expunge (quote ...)) nil) ((nnimap-capability "UIDPLUS") (nnimap-command "UID EXPUNGE %s" (nnimap-article-ranges articles))) (nnimap-expunge (nnimap-command "EXPUNGE")) (t (nnheader-message 7 "Article marked for deletion, but not expunged."))))) (if (and sync sequence) (nnimap-wait-for-response sequence)))) nnimap-delete-article((1825937) t) -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#20670: [PATCH] nnimap: enable additional expunge options (v3) 2017-01-24 23:37 ` bug#20670: [PATCH] nnimap: enable additional expunge options (v3) Nikolaus Rath 2017-01-24 23:46 ` Lars Ingebrigtsen 2017-01-25 0:18 ` Lars Ingebrigtsen @ 2017-01-25 0:24 ` npostavs [not found] ` <87lgu0t2ae.fsf@users.sourceforge.net> [not found] ` <87wpdk9em7.fsf@gnus.org> 4 siblings, 0 replies; 20+ messages in thread From: npostavs @ 2017-01-25 0:24 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Nikolaus, 20670, ding Nikolaus Rath <Nikolaus@rath.org> writes: > > Btw, is there any way to generate the list of affected functions in the > commit message automatically? Doing this by hand is rather cumbersome... See "Generating ChangeLog entries" in CONTRIBUTE. If you think it's not good enough, see also https://github.com/magit/magit/issues/2931 and https://debbugs.gnu.org/cgi/bugreport.cgi?bug=16301. ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <87lgu0t2ae.fsf@users.sourceforge.net>]
* bug#20670: [PATCH] nnimap: enable additional expunge options (v3) [not found] ` <87lgu0t2ae.fsf@users.sourceforge.net> @ 2017-01-25 0:25 ` Lars Ingebrigtsen 0 siblings, 0 replies; 20+ messages in thread From: Lars Ingebrigtsen @ 2017-01-25 0:25 UTC (permalink / raw) To: npostavs; +Cc: Nikolaus, 20670, ding npostavs@users.sourceforge.net writes: > Nikolaus Rath <Nikolaus@rath.org> writes: > >> >> Btw, is there any way to generate the list of affected functions in the >> commit message automatically? Doing this by hand is rather cumbersome... > > See "Generating ChangeLog entries" in CONTRIBUTE. Didn't see anything there to put all changed functions into a ChangeLog automatically? > If you think it's not > good enough, see also https://github.com/magit/magit/issues/2931 and > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=16301. So ... the answer is no? :-) -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <87wpdk9em7.fsf@gnus.org>]
* bug#20670: [PATCH] nnimap: enable additional expunge options (v3) [not found] ` <87wpdk9em7.fsf@gnus.org> @ 2017-01-25 0:22 ` Nikolaus Rath [not found] ` <87efzsyonp.fsf@vostro.rath.org> 2019-09-26 23:41 ` Lars Ingebrigtsen 2 siblings, 0 replies; 20+ messages in thread From: Nikolaus Rath @ 2017-01-25 0:22 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: 20670, ding On Jan 25 2017, Lars Ingebrigtsen <larsi@gnus.org> wrote: > (The reason you call out of the mail headers is because you have a > > Mail-Copies-To: never > > in the mails you send out. So you're never Cc'd.) Oh. That's intended to avoid Cc's when people are repyling to mailing list messages. Is debbugs considering itself a mailing list? That would explain it.. > There was a bug in the patch, so I've reverted it for now. > > Here's the backtrace: > > Debugger entered--Lisp error: (error "Format specifier doesn’t match argument type") > format("%d .*\n" (t ("OK" ("HIGHESTMODSEQ" "914696") "Expunge" > "completed.") ("VANISHED" "1825937") ("0" "RECENT"))) > (looking-at (format "%d .*\n" sequence)) > (not (looking-at (format "%d .*\n" sequence))) > (progn (while (and (not (bobp)) (progn (forward-line -1) (looking-at [...] Can you tell me how to reproduce it? As I've said, it's been working fine here for over a year. 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.« ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <87efzsyonp.fsf@vostro.rath.org>]
* bug#20670: [PATCH] nnimap: enable additional expunge options (v3) [not found] ` <87efzsyonp.fsf@vostro.rath.org> @ 2017-01-25 0:23 ` Lars Ingebrigtsen [not found] ` <87r33s9edg.fsf@gnus.org> 1 sibling, 0 replies; 20+ messages in thread From: Lars Ingebrigtsen @ 2017-01-25 0:23 UTC (permalink / raw) To: 20670; +Cc: Nikolaus Rath, ding Nikolaus Rath <Nikolaus@rath.org> writes: > On Jan 25 2017, Lars Ingebrigtsen <larsi@gnus.org> wrote: >> (The reason you call out of the mail headers is because you have a >> >> Mail-Copies-To: never >> >> in the mails you send out. So you're never Cc'd.) > > Oh. That's intended to avoid Cc's when people are repyling to mailing > list messages. Is debbugs considering itself a mailing list? That would > explain it.. > >> There was a bug in the patch, so I've reverted it for now. >> >> Here's the backtrace: >> >> Debugger entered--Lisp error: (error "Format specifier doesn’t match >> argument type") >> format("%d .*\n" (t ("OK" ("HIGHESTMODSEQ" "914696") "Expunge" >> "completed.") ("VANISHED" "1825937") ("0" "RECENT"))) >> (looking-at (format "%d .*\n" sequence)) >> (not (looking-at (format "%d .*\n" sequence))) >> (progn (while (and (not (bobp)) (progn (forward-line -1) (looking-at > [...] > > Can you tell me how to reproduce it? As I've said, it's been working > fine here for over a year. I just hit `g'. Whenever there's a new email that's split, it fails. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <87r33s9edg.fsf@gnus.org>]
* bug#20670: [PATCH] nnimap: enable additional expunge options (v3) [not found] ` <87r33s9edg.fsf@gnus.org> @ 2017-01-25 0:32 ` Nikolaus Rath [not found] ` <0C68B28B-69C6-4086-AA99-14A7829695FE@rath.org> 1 sibling, 0 replies; 20+ messages in thread From: Nikolaus Rath @ 2017-01-25 0:32 UTC (permalink / raw) To: Lars Ingebrigtsen, 20670; +Cc: ding On January 24, 2017 4:23:23 PM PST, Lars Ingebrigtsen <larsi@gnus.org> wrote: >>> There was a bug in the patch, so I've reverted it for now. >>> >>> Here's the backtrace: >>> >>> Debugger entered--Lisp error: (error "Format specifier doesn’t match >>> argument type") >>> format("%d .*\n" (t ("OK" ("HIGHESTMODSEQ" "914696") "Expunge" >>> "completed.") ("VANISHED" "1825937") ("0" "RECENT"))) >>> (looking-at (format "%d .*\n" sequence)) >>> (not (looking-at (format "%d .*\n" sequence))) >>> (progn (while (and (not (bobp)) (progn (forward-line -1) >(looking-at >> [...] >> >> Can you tell me how to reproduce it? As I've said, it's been working >> fine here for over a year. > >I just hit `g'. Whenever there's a new email that's split, it fails. Uh, OK. That's gonna take me a while to understand and fix. If you or anyone else feels like fixing this up, I will not be offended. I hate the way Gnus represents a "parsed" server response. Best, Nikolaus -- Sent from my Android device with K-9 Mail. Please excuse my brevity. ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <0C68B28B-69C6-4086-AA99-14A7829695FE@rath.org>]
* bug#20670: [PATCH] nnimap: enable additional expunge options (v3) [not found] ` <0C68B28B-69C6-4086-AA99-14A7829695FE@rath.org> @ 2017-01-25 16:45 ` Lars Ingebrigtsen 0 siblings, 0 replies; 20+ messages in thread From: Lars Ingebrigtsen @ 2017-01-25 16:45 UTC (permalink / raw) To: Nikolaus Rath; +Cc: 20670, ding Nikolaus Rath <Nikolaus@rath.org> writes: > On January 24, 2017 4:23:23 PM PST, Lars Ingebrigtsen <larsi@gnus.org> wrote: >>>> There was a bug in the patch, so I've reverted it for now. >>>> >>>> Here's the backtrace: >>>> >>>> Debugger entered--Lisp error: (error "Format specifier doesn\x19t match >>>> argument type") >>>> format("%d .*\n" (t ("OK" ("HIGHESTMODSEQ" "914696") "Expunge" >>>> "completed.") ("VANISHED" "1825937") ("0" "RECENT"))) >>>> (looking-at (format "%d .*\n" sequence)) >>>> (not (looking-at (format "%d .*\n" sequence))) >>>> (progn (while (and (not (bobp)) (progn (forward-line -1) >>(looking-at >>> [...] >>> >>> Can you tell me how to reproduce it? As I've said, it's been working >>> fine here for over a year. >> >>I just hit `g'. Whenever there's a new email that's split, it fails. > > Uh, OK. That's gonna take me a while to understand and fix. If you or > anyone else feels like fixing this up, I will not be offended. I hate > the way Gnus represents a "parsed" server response. Well, I would guess that your change doesn't pass in the right numerical parameter to the waiting function because my IMAP server (Dovecot) outputs a different response than you're used to. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#20670: [PATCH] nnimap: enable additional expunge options (v3) [not found] ` <87wpdk9em7.fsf@gnus.org> 2017-01-25 0:22 ` Nikolaus Rath [not found] ` <87efzsyonp.fsf@vostro.rath.org> @ 2019-09-26 23:41 ` Lars Ingebrigtsen 2 siblings, 0 replies; 20+ messages in thread From: Lars Ingebrigtsen @ 2019-09-26 23:41 UTC (permalink / raw) To: 20670; +Cc: Nikolaus Rath, ding Lars Ingebrigtsen <larsi@gnus.org> writes: > Here's the backtrace: > > Debugger entered--Lisp error: (error "Format specifier doesn’t match > argument type") > format("%d .*\n" (t ("OK" ("HIGHESTMODSEQ" "914696") "Expunge" > "completed.") ("VANISHED" "1825937") ("0" "RECENT"))) > (looking-at (format "%d .*\n" sequence)) I've now re-applied the patch and debugged a bit. It was basically nnimap-delete-article having some code paths that can't have been exercised. The function had an optional SYNC parameter, but nnimap-command was called (which is not asynchronous and does not return any sequence numbers), and then these non-sequences were being waited for. I've now pushed the patch to the trunk, I've used it and send and received some messages, and things seem to work fine. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2019-09-26 23:41 UTC | newest] Thread overview: 20+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <556538A5.3050302@rath.org> [not found] ` <87inp4p7ri.fsf@gnus.org> 2017-01-24 19:50 ` bug#20670: Status: [PATCH] nnimap: enable additional expunge options Lars Ingebrigtsen 2017-01-24 19:55 ` Lars Ingebrigtsen 2017-01-24 23:10 ` Nikolaus Rath 2017-01-24 23:26 ` Glenn Morris 2017-01-24 23:38 ` Nikolaus Rath 2017-01-24 23:21 ` Glenn Morris 2017-01-24 23:26 ` Lars Ingebrigtsen 2017-01-24 23:48 ` Lars Ingebrigtsen 2017-01-24 23:09 ` Nikolaus Rath 2017-01-24 23:27 ` Lars Ingebrigtsen [not found] ` <87oajs38kf.fsf@vostro.rath.org> [not found] ` <87pojcp7y7.fsf@gnus.org> 2017-01-24 23:37 ` bug#20670: [PATCH] nnimap: enable additional expunge options (v3) Nikolaus Rath 2017-01-24 23:46 ` Lars Ingebrigtsen 2017-01-25 0:18 ` Lars Ingebrigtsen 2017-01-25 0:24 ` npostavs [not found] ` <87lgu0t2ae.fsf@users.sourceforge.net> 2017-01-25 0:25 ` Lars Ingebrigtsen [not found] ` <87wpdk9em7.fsf@gnus.org> 2017-01-25 0:22 ` Nikolaus Rath [not found] ` <87efzsyonp.fsf@vostro.rath.org> 2017-01-25 0:23 ` Lars Ingebrigtsen [not found] ` <87r33s9edg.fsf@gnus.org> 2017-01-25 0:32 ` Nikolaus Rath [not found] ` <0C68B28B-69C6-4086-AA99-14A7829695FE@rath.org> 2017-01-25 16:45 ` Lars Ingebrigtsen 2019-09-26 23:41 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).