Subject: Re: bug#20670: [PATCH] nnimap: enable additional expunge options (v3)

From: Lars Ingebrigtsen <[email-masked]>
Date: Wed, 25 Jan 2017 01:18:08 +0100

(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