Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil) insert(nil) (let ((***start vm-imap-read-point) end fetch-response list p) (goto-char ***start) (vm-set-imap-status-got statblob 0) (let* ((func #'(lambda (beg end len) (if vm-imap-read-point (progn ... ...)))) (after-change-functions (cons func after-change-functions)) (need-ok t) response) (setq response (vm-imap-read-response-and-verify process "message FETCH")) (cond ((vm-imap-response-matches response '* 'atom 'FETCH 'list) (setq fetch-response response)) (t (vm-imap-normal-error "cannot retrieve message from the server")))) (setq vm-imap-read-point (point-marker)) (setq list (cdr (nth 3 fetch-response))) (cond (bodypeek (cond ((vm-imap-response-matches list 'BODY '(vector) 'string) (setq p (nth 2 list) ***start (nth 1 p))) ((vm-imap-response-matches list 'UID 'atom 'BODY '(vector) 'string) (setq p (nth 4 list) ***start (nth 1 p))) (t (vm-imap-protocol-error "expected (BODY[] string) in FETCH response")))) (t (if (not (vm-imap-response-matches list 'RFC822 'string)) (vm-imap-protocol-error "expected (RFC822 string) in FETCH response")) (setq p (nth 1 list) ***start (nth 1 p)))) (goto-char (nth 2 p)) (setq end (point-marker)) (vm-set-imap-status-need statblob nil) (vm-imap-cleanup-region ***start end) (vm-munge-message-separators vm-folder-type ***start end) (goto-char ***start) (vm-set-imap-status-got statblob nil) (if (and (eq vm-folder-type 'babyl) (cond ((stringp target) (let ((attrs ...)) (or (null attrs) (equal 0 ...)))) ((bufferp target) (save-current-buffer (set-buffer target) (= 0 (buffer-size)))))) (let ((opoint (point))) (vm-convert-folder-header nil vm-folder-type) (setq ***start opoint) (goto-char ***start) (vm-skip-past-folder-header))) (insert (vm-leading-message-separator)) (save-restriction (narrow-to-region (point) end) (vm-convert-folder-type-headers 'baremessage vm-folder-type)) (goto-char end) (if (and (not (eq 10 (char-after (1- (point))))) (memq vm-folder-type '(From_-with-Content-Length BellFrom_ From_))) (insert-before-markers "\n")) (insert-before-markers (vm-trailing-message-separator)) (if (stringp target) (let ((buffer-file-type t) (selective-display nil)) (write-region ***start end target t 0)) (let ((b (current-buffer))) (save-current-buffer (set-buffer target) (vm-buffer-type:enter 'unknown) (let ((buffer-read-only nil)) (insert-buffer-substring b ***start end)) (vm-buffer-type:exit)))) (delete-region ***start end) t) vm-imap-retrieve-to-target(# # [[nil 25286 39507 441256 2 vm-imap-report-retrieval-status (#3) nil 152000 nil] t "gianuberto.lauri@eng.it:bbmxscphtwwpsgsr:inbox" 0 753 nil nil "gianuberto.lauri@eng.it:bbmxscphtwwpsgsr:inbox" 0 753 15352 87762] (IMAP4REV1 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+)) (while (> k 0) (vm-imap-retrieve-to-target process folder-buffer statblob use-body-peek) (save-current-buffer (set-buffer folder-buffer) (if (= (point) pos) (debug "IMAP internal error #2012: the point hasn't moved"))) (setq k (1- k))) (while r-list (setq pair (car r-list) range (car pair) headers-only (car (cdr pair))) (vm-set-imap-status-currmsg statblob n) (setq message-size (vm-imap-get-message-size process (car range))) (vm-set-imap-status-need statblob message-size) (vm-imap-session-type:assert 'valid) (vm-imap-fetch-messages process (car range) (cdr range) use-body-peek headers-only) (setq k (1+ (- (cdr range) (car range)))) (setq pos (save-current-buffer (set-buffer folder-buffer) (point))) (while (> k 0) (vm-imap-retrieve-to-target process folder-buffer statblob use-body-peek) (save-current-buffer (set-buffer folder-buffer) (if (= (point) pos) (debug "IMAP internal error #2012: the point hasn't moved"))) (setq k (1- k))) (vm-imap-read-ok-response process) (setq r-list (cdr r-list) n (+ n (1+ (- (cdr range) (car range)))))) (save-excursion (set-buffer (process-buffer process)) (vm-buffer-type:enter 'process) (setq statblob (vm-imap-start-status-timer)) (vm-set-imap-status-mailbox statblob folder) (vm-set-imap-status-maxmsg statblob (length retrieve-list)) (while r-list (setq pair (car r-list) range (car pair) headers-only (car (cdr pair))) (vm-set-imap-status-currmsg statblob n) (setq message-size (vm-imap-get-message-size process (car range))) (vm-set-imap-status-need statblob message-size) (vm-imap-session-type:assert 'valid) (vm-imap-fetch-messages process (car range) (cdr range) use-body-peek headers-only) (setq k (1+ (- (cdr range) (car range)))) (setq pos (save-current-buffer (set-buffer folder-buffer) (point))) (while (> k 0) (vm-imap-retrieve-to-target process folder-buffer statblob use-body-peek) (save-current-buffer (set-buffer folder-buffer) (if (= (point) pos) (debug "IMAP internal error #2012: the point hasn't moved"))) (setq k (1- k))) (vm-imap-read-ok-response process) (setq r-list (cdr r-list) n (+ n (1+ (- (cdr range) (car range))))))) (condition-case error-data (save-excursion (set-buffer (process-buffer process)) (vm-buffer-type:enter 'process) (setq statblob (vm-imap-start-status-timer)) (vm-set-imap-status-mailbox statblob folder) (vm-set-imap-status-maxmsg statblob (length retrieve-list)) (while r-list (setq pair (car r-list) range (car pair) headers-only (car (cdr pair))) (vm-set-imap-status-currmsg statblob n) (setq message-size (vm-imap-get-message-size process (car range))) (vm-set-imap-status-need statblob message-size) (vm-imap-session-type:assert 'valid) (vm-imap-fetch-messages process (car range) (cdr range) use-body-peek headers-only) (setq k (1+ (- (cdr range) (car range)))) (setq pos (save-current-buffer (set-buffer folder-buffer) (point))) (while (> k 0) (vm-imap-retrieve-to-target process folder-buffer statblob use-body-peek) (save-current-buffer (set-buffer folder-buffer) (if (= (point) pos) (debug "IMAP internal error #2012: the point hasn't moved"))) (setq k (1- k))) (vm-imap-read-ok-response process) (setq r-list (cdr r-list) n (+ n (1+ (- (cdr range) (car range))))))) (vm-imap-normal-error (vm-warn 0 2 "IMAP error: %s" (car (cdr error-data)))) (vm-imap-protocol-error (vm-warn 0 2 "Retrieval from %s signaled: %s" folder error-data)) (quit (delete-region old-eob (point-max)) (error (format "Quit received during retrieval from %s" folder)))) (unwind-protect (condition-case error-data (save-excursion (set-buffer (process-buffer process)) (vm-buffer-type:enter 'process) (setq statblob (vm-imap-start-status-timer)) (vm-set-imap-status-mailbox statblob folder) (vm-set-imap-status-maxmsg statblob (length retrieve-list)) (while r-list (setq pair (car r-list) range (car pair) headers-only (car (cdr pair))) (vm-set-imap-status-currmsg statblob n) (setq message-size (vm-imap-get-message-size process (car range))) (vm-set-imap-status-need statblob message-size) (vm-imap-session-type:assert 'valid) (vm-imap-fetch-messages process (car range) (cdr range) use-body-peek headers-only) (setq k (1+ (- (cdr range) (car range)))) (setq pos (save-current-buffer (set-buffer folder-buffer) (point))) (while (> k 0) (vm-imap-retrieve-to-target process folder-buffer statblob use-body-peek) (save-current-buffer (set-buffer folder-buffer) (if (= ... pos) (debug "IMAP internal error #2012: the point hasn't moved"))) (setq k (1- k))) (vm-imap-read-ok-response process) (setq r-list (cdr r-list) n (+ n (1+ (- ... ...)))))) (vm-imap-normal-error (vm-warn 0 2 "IMAP error: %s" (car (cdr error-data)))) (vm-imap-protocol-error (vm-warn 0 2 "Retrieval from %s signaled: %s" folder error-data)) (quit (delete-region old-eob (point-max)) (error (format "Quit received during retrieval from %s" folder)))) (if statblob (progn (vm-imap-stop-status-timer statblob))) (vm-buffer-type:exit)) (progn (widen) (setq old-eob (point-max)) (goto-char (point-max)) (if (null vm-imap-max-message-size) (progn (setq vm-imap-max-message-size most-positive-fixnum))) (setq retrieve-list (mapcar #'(lambda (pair) (if (> (read ...) vm-imap-max-message-size) (list (car pair) (cdr pair) headers-only) (list (car pair) (cdr pair) nil))) retrieve-list)) (setq r-list (vm-imap-bunch-retrieve-list (mapcar #'cdr retrieve-list))) (unwind-protect (condition-case error-data (save-excursion (set-buffer (process-buffer process)) (vm-buffer-type:enter 'process) (setq statblob (vm-imap-start-status-timer)) (vm-set-imap-status-mailbox statblob folder) (vm-set-imap-status-maxmsg statblob (length retrieve-list)) (while r-list (setq pair (car r-list) range (car pair) headers-only (car (cdr pair))) (vm-set-imap-status-currmsg statblob n) (setq message-size (vm-imap-get-message-size process (car range))) (vm-set-imap-status-need statblob message-size) (vm-imap-session-type:assert 'valid) (vm-imap-fetch-messages process (car range) (cdr range) use-body-peek headers-only) (setq k (1+ (- ... ...))) (setq pos (save-current-buffer (set-buffer folder-buffer) (point))) (while (> k 0) (vm-imap-retrieve-to-target process folder-buffer statblob use-body-peek) (save-current-buffer (set-buffer folder-buffer) (if ... ...)) (setq k (1- k))) (vm-imap-read-ok-response process) (setq r-list (cdr r-list) n (+ n (1+ ...))))) (vm-imap-normal-error (vm-warn 0 2 "IMAP error: %s" (car (cdr error-data)))) (vm-imap-protocol-error (vm-warn 0 2 "Retrieval from %s signaled: %s" folder error-data)) (quit (delete-region old-eob (point-max)) (error (format "Quit received during retrieval from %s" folder)))) (if statblob (progn (vm-imap-stop-status-timer statblob))) (vm-buffer-type:exit)) (setq vm-spooled-mail-waiting nil) (vm-set-folder-imap-retrieved-count (vm-folder-imap-mailbox-count)) (intern (buffer-name) vm-buffers-needing-display-update) (vm-inform 6 "Updating summary... ") (vm-update-summary-and-mode-line) (setq mp (vm-assimilate-new-messages :read-attributes nil)) (setq new-messages mp) (if new-messages (vm-increment vm-modification-counter)) (setq r-list retrieve-list) (while mp (setq r-entry (car r-list) uid (car r-entry) headers-only (nth 2 r-entry)) (if headers-only (progn (vm-set-body-to-be-retrieved-of (car mp) t) (vm-set-body-to-be-discarded-of (car mp) nil))) (vm-set-imap-uid-of (car mp) uid) (vm-set-imap-uid-validity-of (car mp) uid-validity) (vm-set-byte-count-of (car mp) (vm-folder-imap-uid-message-size uid)) (vm-imap-update-message-flags (car mp) (vm-folder-imap-uid-message-flags uid) t) (vm-mark-for-summary-update (car mp)) (vm-set-stuff-flag-of (car mp) t) (setq mp (cdr mp) r-list (cdr r-list))) (if vm-arrived-message-hook (progn (mapc #'(lambda (m) (vm-run-hook-on-message 'vm-arrived-message-hook m)) new-messages))) (run-hooks 'vm-arrived-messages-hook) new-messages) (unwind-protect (progn (widen) (setq old-eob (point-max)) (goto-char (point-max)) (if (null vm-imap-max-message-size) (progn (setq vm-imap-max-message-size most-positive-fixnum))) (setq retrieve-list (mapcar #'(lambda (pair) (if (> ... vm-imap-max-message-size) (list ... ... headers-only) (list ... ... nil))) retrieve-list)) (setq r-list (vm-imap-bunch-retrieve-list (mapcar #'cdr retrieve-list))) (unwind-protect (condition-case error-data (save-excursion (set-buffer (process-buffer process)) (vm-buffer-type:enter 'process) (setq statblob (vm-imap-start-status-timer)) (vm-set-imap-status-mailbox statblob folder) (vm-set-imap-status-maxmsg statblob (length retrieve-list)) (while r-list (setq pair (car r-list) range (car pair) headers-only (car ...)) (vm-set-imap-status-currmsg statblob n) (setq message-size (vm-imap-get-message-size process ...)) (vm-set-imap-status-need statblob message-size) (vm-imap-session-type:assert 'valid) (vm-imap-fetch-messages process (car range) (cdr range) use-body-peek headers-only) (setq k (1+ ...)) (setq pos (save-current-buffer ... ...)) (while (> k 0) (vm-imap-retrieve-to-target process folder-buffer statblob use-body-peek) (save-current-buffer ... ...) (setq k ...)) (vm-imap-read-ok-response process) (setq r-list (cdr r-list) n (+ n ...)))) (vm-imap-normal-error (vm-warn 0 2 "IMAP error: %s" (car (cdr error-data)))) (vm-imap-protocol-error (vm-warn 0 2 "Retrieval from %s signaled: %s" folder error-data)) (quit (delete-region old-eob (point-max)) (error (format "Quit received during retrieval from %s" folder)))) (if statblob (progn (vm-imap-stop-status-timer statblob))) (vm-buffer-type:exit)) (setq vm-spooled-mail-waiting nil) (vm-set-folder-imap-retrieved-count (vm-folder-imap-mailbox-count)) (intern (buffer-name) vm-buffers-needing-display-update) (vm-inform 6 "Updating summary... ") (vm-update-summary-and-mode-line) (setq mp (vm-assimilate-new-messages :read-attributes nil)) (setq new-messages mp) (if new-messages (vm-increment vm-modification-counter)) (setq r-list retrieve-list) (while mp (setq r-entry (car r-list) uid (car r-entry) headers-only (nth 2 r-entry)) (if headers-only (progn (vm-set-body-to-be-retrieved-of (car mp) t) (vm-set-body-to-be-discarded-of (car mp) nil))) (vm-set-imap-uid-of (car mp) uid) (vm-set-imap-uid-validity-of (car mp) uid-validity) (vm-set-byte-count-of (car mp) (vm-folder-imap-uid-message-size uid)) (vm-imap-update-message-flags (car mp) (vm-folder-imap-uid-message-flags uid) t) (vm-mark-for-summary-update (car mp)) (vm-set-stuff-flag-of (car mp) t) (setq mp (cdr mp) r-list (cdr r-list))) (if vm-arrived-message-hook (progn (mapc #'(lambda (m) (vm-run-hook-on-message ... m)) new-messages))) (run-hooks 'vm-arrived-messages-hook) new-messages) (widen) (and vm-sr-clip (progn (narrow-to-region vm-sr-min vm-sr-max) (set-marker vm-sr-min nil) (set-marker vm-sr-max nil)))) (let ((vm-sr-clip (> (buffer-size) (- (point-max) (point-min)))) vm-sr-min vm-sr-max) (and vm-sr-clip (setq vm-sr-min (set-marker (make-marker) (point-min))) (setq vm-sr-max (set-marker (make-marker) (point-max)))) (unwind-protect (progn (widen) (setq old-eob (point-max)) (goto-char (point-max)) (if (null vm-imap-max-message-size) (progn (setq vm-imap-max-message-size most-positive-fixnum))) (setq retrieve-list (mapcar #'(lambda (pair) (if ... ... ...)) retrieve-list)) (setq r-list (vm-imap-bunch-retrieve-list (mapcar #'cdr retrieve-list))) (unwind-protect (condition-case error-data (save-excursion (set-buffer (process-buffer process)) (vm-buffer-type:enter 'process) (setq statblob (vm-imap-start-status-timer)) (vm-set-imap-status-mailbox statblob folder) (vm-set-imap-status-maxmsg statblob (length retrieve-list)) (while r-list (setq pair ... range ... headers-only ...) (vm-set-imap-status-currmsg statblob n) (setq message-size ...) (vm-set-imap-status-need statblob message-size) (vm-imap-session-type:assert ...) (vm-imap-fetch-messages process ... ... use-body-peek headers-only) (setq k ...) (setq pos ...) (while ... ... ... ...) (vm-imap-read-ok-response process) (setq r-list ... n ...))) (vm-imap-normal-error (vm-warn 0 2 "IMAP error: %s" (car ...))) (vm-imap-protocol-error (vm-warn 0 2 "Retrieval from %s signaled: %s" folder error-data)) (quit (delete-region old-eob (point-max)) (error (format "Quit received during retrieval from %s" folder)))) (if statblob (progn (vm-imap-stop-status-timer statblob))) (vm-buffer-type:exit)) (setq vm-spooled-mail-waiting nil) (vm-set-folder-imap-retrieved-count (vm-folder-imap-mailbox-count)) (intern (buffer-name) vm-buffers-needing-display-update) (vm-inform 6 "Updating summary... ") (vm-update-summary-and-mode-line) (setq mp (vm-assimilate-new-messages :read-attributes nil)) (setq new-messages mp) (if new-messages (vm-increment vm-modification-counter)) (setq r-list retrieve-list) (while mp (setq r-entry (car r-list) uid (car r-entry) headers-only (nth 2 r-entry)) (if headers-only (progn (vm-set-body-to-be-retrieved-of (car mp) t) (vm-set-body-to-be-discarded-of (car mp) nil))) (vm-set-imap-uid-of (car mp) uid) (vm-set-imap-uid-validity-of (car mp) uid-validity) (vm-set-byte-count-of (car mp) (vm-folder-imap-uid-message-size uid)) (vm-imap-update-message-flags (car mp) (vm-folder-imap-uid-message-flags uid) t) (vm-mark-for-summary-update (car mp)) (vm-set-stuff-flag-of (car mp) t) (setq mp (cdr mp) r-list (cdr r-list))) (if vm-arrived-message-hook (progn (mapc #'(lambda ... ...) new-messages))) (run-hooks 'vm-arrived-messages-hook) new-messages) (widen) (and vm-sr-clip (progn (narrow-to-region vm-sr-min vm-sr-max) (set-marker vm-sr-min nil) (set-marker vm-sr-max nil))))) (vm-save-restriction (widen) (setq old-eob (point-max)) (goto-char (point-max)) (if (null vm-imap-max-message-size) (progn (setq vm-imap-max-message-size most-positive-fixnum))) (setq retrieve-list (mapcar #'(lambda (pair) (if (> (read ...) vm-imap-max-message-size) (list (car pair) (cdr pair) headers-only) (list (car pair) (cdr pair) nil))) retrieve-list)) (setq r-list (vm-imap-bunch-retrieve-list (mapcar #'cdr retrieve-list))) (unwind-protect (condition-case error-data (save-excursion (set-buffer (process-buffer process)) (vm-buffer-type:enter 'process) (setq statblob (vm-imap-start-status-timer)) (vm-set-imap-status-mailbox statblob folder) (vm-set-imap-status-maxmsg statblob (length retrieve-list)) (while r-list (setq pair (car r-list) range (car pair) headers-only (car (cdr pair))) (vm-set-imap-status-currmsg statblob n) (setq message-size (vm-imap-get-message-size process (car range))) (vm-set-imap-status-need statblob message-size) (vm-imap-session-type:assert 'valid) (vm-imap-fetch-messages process (car range) (cdr range) use-body-peek headers-only) (setq k (1+ (- ... ...))) (setq pos (save-current-buffer (set-buffer folder-buffer) (point))) (while (> k 0) (vm-imap-retrieve-to-target process folder-buffer statblob use-body-peek) (save-current-buffer (set-buffer folder-buffer) (if ... ...)) (setq k (1- k))) (vm-imap-read-ok-response process) (setq r-list (cdr r-list) n (+ n (1+ ...))))) (vm-imap-normal-error (vm-warn 0 2 "IMAP error: %s" (car (cdr error-data)))) (vm-imap-protocol-error (vm-warn 0 2 "Retrieval from %s signaled: %s" folder error-data)) (quit (delete-region old-eob (point-max)) (error (format "Quit received during retrieval from %s" folder)))) (if statblob (progn (vm-imap-stop-status-timer statblob))) (vm-buffer-type:exit)) (setq vm-spooled-mail-waiting nil) (vm-set-folder-imap-retrieved-count (vm-folder-imap-mailbox-count)) (intern (buffer-name) vm-buffers-needing-display-update) (vm-inform 6 "Updating summary... ") (vm-update-summary-and-mode-line) (setq mp (vm-assimilate-new-messages :read-attributes nil)) (setq new-messages mp) (if new-messages (vm-increment vm-modification-counter)) (setq r-list retrieve-list) (while mp (setq r-entry (car r-list) uid (car r-entry) headers-only (nth 2 r-entry)) (if headers-only (progn (vm-set-body-to-be-retrieved-of (car mp) t) (vm-set-body-to-be-discarded-of (car mp) nil))) (vm-set-imap-uid-of (car mp) uid) (vm-set-imap-uid-validity-of (car mp) uid-validity) (vm-set-byte-count-of (car mp) (vm-folder-imap-uid-message-size uid)) (vm-imap-update-message-flags (car mp) (vm-folder-imap-uid-message-flags uid) t) (vm-mark-for-summary-update (car mp)) (vm-set-stuff-flag-of (car mp) t) (setq mp (cdr mp) r-list (cdr r-list))) (if vm-arrived-message-hook (progn (mapc #'(lambda (m) (vm-run-hook-on-message 'vm-arrived-message-hook m)) new-messages))) (run-hooks 'vm-arrived-messages-hook) new-messages) (save-excursion (vm-inform 6 "Retrieving new messages... ") (vm-save-restriction (widen) (setq old-eob (point-max)) (goto-char (point-max)) (if (null vm-imap-max-message-size) (progn (setq vm-imap-max-message-size most-positive-fixnum))) (setq retrieve-list (mapcar #'(lambda (pair) (if (> ... vm-imap-max-message-size) (list ... ... headers-only) (list ... ... nil))) retrieve-list)) (setq r-list (vm-imap-bunch-retrieve-list (mapcar #'cdr retrieve-list))) (unwind-protect (condition-case error-data (save-excursion (set-buffer (process-buffer process)) (vm-buffer-type:enter 'process) (setq statblob (vm-imap-start-status-timer)) (vm-set-imap-status-mailbox statblob folder) (vm-set-imap-status-maxmsg statblob (length retrieve-list)) (while r-list (setq pair (car r-list) range (car pair) headers-only (car ...)) (vm-set-imap-status-currmsg statblob n) (setq message-size (vm-imap-get-message-size process ...)) (vm-set-imap-status-need statblob message-size) (vm-imap-session-type:assert 'valid) (vm-imap-fetch-messages process (car range) (cdr range) use-body-peek headers-only) (setq k (1+ ...)) (setq pos (save-current-buffer ... ...)) (while (> k 0) (vm-imap-retrieve-to-target process folder-buffer statblob use-body-peek) (save-current-buffer ... ...) (setq k ...)) (vm-imap-read-ok-response process) (setq r-list (cdr r-list) n (+ n ...)))) (vm-imap-normal-error (vm-warn 0 2 "IMAP error: %s" (car (cdr error-data)))) (vm-imap-protocol-error (vm-warn 0 2 "Retrieval from %s signaled: %s" folder error-data)) (quit (delete-region old-eob (point-max)) (error (format "Quit received during retrieval from %s" folder)))) (if statblob (progn (vm-imap-stop-status-timer statblob))) (vm-buffer-type:exit)) (setq vm-spooled-mail-waiting nil) (vm-set-folder-imap-retrieved-count (vm-folder-imap-mailbox-count)) (intern (buffer-name) vm-buffers-needing-display-update) (vm-inform 6 "Updating summary... ") (vm-update-summary-and-mode-line) (setq mp (vm-assimilate-new-messages :read-attributes nil)) (setq new-messages mp) (if new-messages (vm-increment vm-modification-counter)) (setq r-list retrieve-list) (while mp (setq r-entry (car r-list) uid (car r-entry) headers-only (nth 2 r-entry)) (if headers-only (progn (vm-set-body-to-be-retrieved-of (car mp) t) (vm-set-body-to-be-discarded-of (car mp) nil))) (vm-set-imap-uid-of (car mp) uid) (vm-set-imap-uid-validity-of (car mp) uid-validity) (vm-set-byte-count-of (car mp) (vm-folder-imap-uid-message-size uid)) (vm-imap-update-message-flags (car mp) (vm-folder-imap-uid-message-flags uid) t) (vm-mark-for-summary-update (car mp)) (vm-set-stuff-flag-of (car mp) t) (setq mp (cdr mp) r-list (cdr r-list))) (if vm-arrived-message-hook (progn (mapc #'(lambda (m) (vm-run-hook-on-message ... m)) new-messages))) (run-hooks 'vm-arrived-messages-hook) new-messages)) (let* ((folder-buffer (current-buffer)) (process (vm-folder-imap-process)) (imapdrop (vm-folder-imap-maildrop-spec)) (folder (or (vm-imap-folder-for-spec imapdrop) (vm-safe-imapdrop-string imapdrop))) (use-body-peek (vm-folder-imap-body-peek)) (uid-validity (vm-folder-imap-uid-validity)) uid r-list r-entry range new-messages message-size statblob old-eob pos k mp pair (headers-only (or (eq vm-enable-external-messages t) (memq 'imap vm-enable-external-messages))) (n 0)) (save-excursion (vm-inform 6 "Retrieving new messages... ") (vm-save-restriction (widen) (setq old-eob (point-max)) (goto-char (point-max)) (if (null vm-imap-max-message-size) (progn (setq vm-imap-max-message-size most-positive-fixnum))) (setq retrieve-list (mapcar #'(lambda (pair) (if ... ... ...)) retrieve-list)) (setq r-list (vm-imap-bunch-retrieve-list (mapcar #'cdr retrieve-list))) (unwind-protect (condition-case error-data (save-excursion (set-buffer (process-buffer process)) (vm-buffer-type:enter 'process) (setq statblob (vm-imap-start-status-timer)) (vm-set-imap-status-mailbox statblob folder) (vm-set-imap-status-maxmsg statblob (length retrieve-list)) (while r-list (setq pair ... range ... headers-only ...) (vm-set-imap-status-currmsg statblob n) (setq message-size ...) (vm-set-imap-status-need statblob message-size) (vm-imap-session-type:assert ...) (vm-imap-fetch-messages process ... ... use-body-peek headers-only) (setq k ...) (setq pos ...) (while ... ... ... ...) (vm-imap-read-ok-response process) (setq r-list ... n ...))) (vm-imap-normal-error (vm-warn 0 2 "IMAP error: %s" (car ...))) (vm-imap-protocol-error (vm-warn 0 2 "Retrieval from %s signaled: %s" folder error-data)) (quit (delete-region old-eob (point-max)) (error (format "Quit received during retrieval from %s" folder)))) (if statblob (progn (vm-imap-stop-status-timer statblob))) (vm-buffer-type:exit)) (setq vm-spooled-mail-waiting nil) (vm-set-folder-imap-retrieved-count (vm-folder-imap-mailbox-count)) (intern (buffer-name) vm-buffers-needing-display-update) (vm-inform 6 "Updating summary... ") (vm-update-summary-and-mode-line) (setq mp (vm-assimilate-new-messages :read-attributes nil)) (setq new-messages mp) (if new-messages (vm-increment vm-modification-counter)) (setq r-list retrieve-list) (while mp (setq r-entry (car r-list) uid (car r-entry) headers-only (nth 2 r-entry)) (if headers-only (progn (vm-set-body-to-be-retrieved-of (car mp) t) (vm-set-body-to-be-discarded-of (car mp) nil))) (vm-set-imap-uid-of (car mp) uid) (vm-set-imap-uid-validity-of (car mp) uid-validity) (vm-set-byte-count-of (car mp) (vm-folder-imap-uid-message-size uid)) (vm-imap-update-message-flags (car mp) (vm-folder-imap-uid-message-flags uid) t) (vm-mark-for-summary-update (car mp)) (vm-set-stuff-flag-of (car mp) t) (setq mp (cdr mp) r-list (cdr r-list))) (if vm-arrived-message-hook (progn (mapc #'(lambda ... ...) new-messages))) (run-hooks 'vm-arrived-messages-hook) new-messages))) vm-imap-retrieve-messages((("420764" . 2) ("420793" . 3) ("420795" . 4) ("420797" . 5) ("420799" . 6) ("420803" . 7) ("420805" . 8) ("420807" . 9) ("420811" . 10) ("420813" . 11) ("420815" . 12) ("420817" . 13) ("420819" . 14) ("420831" . 15) ("420833" . 16) ("420835" . 17) ("420851" . 18) ("420859" . 19) ("420861" . 20) ("420863" . 21) ("420865" . 22) ("420873" . 23) ("420878" . 24) ("420880" . 25) ("420887" . 26) ("420917" . 27) ("420928" . 28) ("420968" . 29) ("420992" . 30) ("421010" . 31) ("421012" . 32) ("421019" . 33) ("421047" . 34) ("421053" . 35) ("421057" . 36) ("421066" . 37) ("421068" . 38) ("421092" . 39) ("421096" . 40) ("421190" . 41) ("421194" . 42) ("421202" . 43) ("421252" . 44) ("421428" . 45) ("421454" . 46) ("421458" . 47) ("421460" . 48) ("421462" . 49) ("421464" . 50) ("421472" . 51) ...)) (setq new-messages (vm-imap-retrieve-messages retrieve-list)) (progn (setq new-messages (vm-imap-retrieve-messages retrieve-list))) (if (and do-retrieves retrieve-list) (progn (setq new-messages (vm-imap-retrieve-messages retrieve-list)))) (let* ((folder-buffer (current-buffer)) (process (vm-folder-imap-process)) (imap-buffer (process-buffer process)) (uid-validity (vm-folder-imap-uid-validity)) (imapdrop (vm-folder-imap-maildrop-spec)) (folder (or (vm-imap-folder-for-spec imapdrop) (vm-safe-imapdrop-string imapdrop))) new-messages (sync-data (vm-imap-get-synchronization-data do-retrieves)) (retrieve-list (nth 0 sync-data)) (remote-expunge-list (nth 1 sync-data)) (local-expunge-list (nth 2 sync-data)) (stale-list (nth 3 sync-data))) (if save-attributes (progn (let ((mp vm-message-list) (errors 0)) (vm-inform 6 "Updating attributes on the IMAP server... ") (while mp (if (or (eq save-attributes ...) (vm-attribute-modflag-of ...)) (condition-case nil (vm-imap-save-message-flags process ...) (vm-imap-protocol-error ... ...))) (setq mp (cdr mp))) (if (> errors 0) (vm-inform 3 "Updating attributes on the IMAP server... %d error..." errors) (vm-inform 6 "Updating attributes on the IMAP server... done"))))) (if retrieve-attributes (progn (let ((mp vm-message-list) (len (length vm-message-list)) (n 0) uid m mflags) (vm-inform 6 "Retrieving message attributes and labels... ") (while mp (setq m (car mp)) (setq uid (vm-imap-uid-of m)) (if (and (equal ... uid-validity) (vm-folder-imap-uid-msn uid)) (progn (setq mflags ...) (vm-imap-update-message-flags m mflags t))) (setq mp (cdr mp) n (1+ n))) (vm-inform 6 "Retrieving message atrributes and labels... done")))) (if (and do-retrieves retrieve-list) (progn (setq new-messages (vm-imap-retrieve-messages retrieve-list)))) (if do-local-expunges (progn (vm-inform 6 "Expunging messages in cache... ") (vm-expunge-folder :quiet t :just-these-messages local-expunge-list) (if (and interactive stale-list) (if (y-or-n-p (format "Found %s messages with invalid UIDs. Expunge them..." (length stale-list))) (vm-expunge-folder :quiet t :just-these-messages stale-list) (vm-inform 1 "They will be labelled 'stale'") (mapc #'(lambda ... ...) stale-list))) (vm-inform 6 "Expunging messages in cache... done"))) (if (and do-remote-expunges (if (eq do-remote-expunges 'all) (setq vm-imap-messages-to-expunge remote-expunge-list) vm-imap-messages-to-expunge)) (progn (vm-imap-expunge-remote-messages))) (setq vm-imap-connection-mode 'online) new-messages) (if (or vm-global-block-new-mail (eq vm-imap-connection-mode 'offline) (null (vm-establish-new-folder-imap-session interactive "general operation" nil))) (vm-imap-server-error "Could not connect to the IMAP server") (if do-retrieves (vm-assimilate-new-messages)) (vm-inform 6 "Logging into the IMAP server...") (let* ((folder-buffer (current-buffer)) (process (vm-folder-imap-process)) (imap-buffer (process-buffer process)) (uid-validity (vm-folder-imap-uid-validity)) (imapdrop (vm-folder-imap-maildrop-spec)) (folder (or (vm-imap-folder-for-spec imapdrop) (vm-safe-imapdrop-string imapdrop))) new-messages (sync-data (vm-imap-get-synchronization-data do-retrieves)) (retrieve-list (nth 0 sync-data)) (remote-expunge-list (nth 1 sync-data)) (local-expunge-list (nth 2 sync-data)) (stale-list (nth 3 sync-data))) (if save-attributes (progn (let ((mp vm-message-list) (errors 0)) (vm-inform 6 "Updating attributes on the IMAP server... ") (while mp (if (or ... ...) (condition-case nil ... ...)) (setq mp (cdr mp))) (if (> errors 0) (vm-inform 3 "Updating attributes on the IMAP server... %d error..." errors) (vm-inform 6 "Updating attributes on the IMAP server... done"))))) (if retrieve-attributes (progn (let ((mp vm-message-list) (len (length vm-message-list)) (n 0) uid m mflags) (vm-inform 6 "Retrieving message attributes and labels... ") (while mp (setq m (car mp)) (setq uid (vm-imap-uid-of m)) (if (and ... ...) (progn ... ...)) (setq mp (cdr mp) n (1+ n))) (vm-inform 6 "Retrieving message atrributes and labels... done")))) (if (and do-retrieves retrieve-list) (progn (setq new-messages (vm-imap-retrieve-messages retrieve-list)))) (if do-local-expunges (progn (vm-inform 6 "Expunging messages in cache... ") (vm-expunge-folder :quiet t :just-these-messages local-expunge-list) (if (and interactive stale-list) (if (y-or-n-p (format "Found %s messages with invalid UIDs. Expunge them..." ...)) (vm-expunge-folder :quiet t :just-these-messages stale-list) (vm-inform 1 "They will be labelled 'stale'") (mapc #'... stale-list))) (vm-inform 6 "Expunging messages in cache... done"))) (if (and do-remote-expunges (if (eq do-remote-expunges 'all) (setq vm-imap-messages-to-expunge remote-expunge-list) vm-imap-messages-to-expunge)) (progn (vm-imap-expunge-remote-messages))) (setq vm-imap-connection-mode 'online) new-messages)) (progn (if vm-buffer-type-debug (setq vm-buffer-type-trail (cons 'synchronize vm-buffer-type-trail))) (vm-buffer-type:set 'folder) (vm-imap-init-log) (vm-imap-log-tokens (list 'synchronize (current-buffer) (vm-folder-imap-process))) (setq vm-buffer-type-trail nil) (if (and do-retrieves vm-block-new-mail) (error "Can't get new mail until you save this folder")) (if (or vm-global-block-new-mail (eq vm-imap-connection-mode 'offline) (null (vm-establish-new-folder-imap-session interactive "general operation" nil))) (vm-imap-server-error "Could not connect to the IMAP server") (if do-retrieves (vm-assimilate-new-messages)) (vm-inform 6 "Logging into the IMAP server...") (let* ((folder-buffer (current-buffer)) (process (vm-folder-imap-process)) (imap-buffer (process-buffer process)) (uid-validity (vm-folder-imap-uid-validity)) (imapdrop (vm-folder-imap-maildrop-spec)) (folder (or (vm-imap-folder-for-spec imapdrop) (vm-safe-imapdrop-string imapdrop))) new-messages (sync-data (vm-imap-get-synchronization-data do-retrieves)) (retrieve-list (nth 0 sync-data)) (remote-expunge-list (nth 1 sync-data)) (local-expunge-list (nth 2 sync-data)) (stale-list (nth 3 sync-data))) (if save-attributes (progn (let ((mp vm-message-list) (errors 0)) (vm-inform 6 "Updating attributes on the IMAP server... ") (while mp (if ... ...) (setq mp ...)) (if (> errors 0) (vm-inform 3 "Updating attributes on the IMAP server... %d error..." errors) (vm-inform 6 "Updating attributes on the IMAP server... done"))))) (if retrieve-attributes (progn (let ((mp vm-message-list) (len ...) (n 0) uid m mflags) (vm-inform 6 "Retrieving message attributes and labels... ") (while mp (setq m ...) (setq uid ...) (if ... ...) (setq mp ... n ...)) (vm-inform 6 "Retrieving message atrributes and labels... done")))) (if (and do-retrieves retrieve-list) (progn (setq new-messages (vm-imap-retrieve-messages retrieve-list)))) (if do-local-expunges (progn (vm-inform 6 "Expunging messages in cache... ") (vm-expunge-folder :quiet t :just-these-messages local-expunge-list) (if (and interactive stale-list) (if (y-or-n-p ...) (vm-expunge-folder :quiet t :just-these-messages stale-list) (vm-inform 1 "They will be labelled 'stale'") (mapc ... stale-list))) (vm-inform 6 "Expunging messages in cache... done"))) (if (and do-remote-expunges (if (eq do-remote-expunges 'all) (setq vm-imap-messages-to-expunge remote-expunge-list) vm-imap-messages-to-expunge)) (progn (vm-imap-expunge-remote-messages))) (setq vm-imap-connection-mode 'online) new-messages))) (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) '(:interactive :do-remote-expunges :do-local-expunges :do-retrieves :save-attributes :retrieve-attributes :allow-other-keys)) (setq --cl-keys-- (cdr (cdr --cl-keys--)))) ((car (cdr (memq ... --cl-rest--))) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:interactive :do-r..." (car --cl-keys--)))))) (progn (if vm-buffer-type-debug (setq vm-buffer-type-trail (cons 'synchronize vm-buffer-type-trail))) (vm-buffer-type:set 'folder) (vm-imap-init-log) (vm-imap-log-tokens (list 'synchronize (current-buffer) (vm-folder-imap-process))) (setq vm-buffer-type-trail nil) (if (and do-retrieves vm-block-new-mail) (error "Can't get new mail until you save this folder")) (if (or vm-global-block-new-mail (eq vm-imap-connection-mode 'offline) (null (vm-establish-new-folder-imap-session interactive "general operation" nil))) (vm-imap-server-error "Could not connect to the IMAP server") (if do-retrieves (vm-assimilate-new-messages)) (vm-inform 6 "Logging into the IMAP server...") (let* ((folder-buffer (current-buffer)) (process (vm-folder-imap-process)) (imap-buffer (process-buffer process)) (uid-validity (vm-folder-imap-uid-validity)) (imapdrop (vm-folder-imap-maildrop-spec)) (folder (or (vm-imap-folder-for-spec imapdrop) (vm-safe-imapdrop-string imapdrop))) new-messages (sync-data (vm-imap-get-synchronization-data do-retrieves)) (retrieve-list (nth 0 sync-data)) (remote-expunge-list (nth 1 sync-data)) (local-expunge-list (nth 2 sync-data)) (stale-list (nth 3 sync-data))) (if save-attributes (progn (let (... ...) (vm-inform 6 "Updating attributes on the IMAP server... ") (while mp ... ...) (if ... ... ...)))) (if retrieve-attributes (progn (let (... ... ... uid m mflags) (vm-inform 6 "Retrieving message attributes and labels... ") (while mp ... ... ... ...) (vm-inform 6 "Retrieving message atrributes and labels... done")))) (if (and do-retrieves retrieve-list) (progn (setq new-messages (vm-imap-retrieve-messages retrieve-list)))) (if do-local-expunges (progn (vm-inform 6 "Expunging messages in cache... ") (vm-expunge-folder :quiet t :just-these-messages local-expunge-list) (if (and interactive stale-list) (if ... ... ... ...)) (vm-inform 6 "Expunging messages in cache... done"))) (if (and do-remote-expunges (if (eq do-remote-expunges ...) (setq vm-imap-messages-to-expunge remote-expunge-list) vm-imap-messages-to-expunge)) (progn (vm-imap-expunge-remote-messages))) (setq vm-imap-connection-mode 'online) new-messages)))) (let* ((interactive (car (cdr (plist-member --cl-rest-- ':interactive)))) (do-remote-expunges (car (cdr (plist-member --cl-rest-- ':do-remote-expunges)))) (do-local-expunges (car (cdr (plist-member --cl-rest-- ':do-local-expunges)))) (do-retrieves (car (cdr (plist-member --cl-rest-- ':do-retrieves)))) (save-attributes (car (cdr (plist-member --cl-rest-- ':save-attributes)))) (retrieve-attributes (car (cdr (plist-member --cl-rest-- ':retrieve-attributes))))) (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) '...) (setq --cl-keys-- (cdr ...))) ((car (cdr ...)) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:interactive :do-r..." (car --cl-keys--)))))) (progn (if vm-buffer-type-debug (setq vm-buffer-type-trail (cons 'synchronize vm-buffer-type-trail))) (vm-buffer-type:set 'folder) (vm-imap-init-log) (vm-imap-log-tokens (list 'synchronize (current-buffer) (vm-folder-imap-process))) (setq vm-buffer-type-trail nil) (if (and do-retrieves vm-block-new-mail) (error "Can't get new mail until you save this folder")) (if (or vm-global-block-new-mail (eq vm-imap-connection-mode 'offline) (null (vm-establish-new-folder-imap-session interactive "general operation" nil))) (vm-imap-server-error "Could not connect to the IMAP server") (if do-retrieves (vm-assimilate-new-messages)) (vm-inform 6 "Logging into the IMAP server...") (let* ((folder-buffer (current-buffer)) (process (vm-folder-imap-process)) (imap-buffer (process-buffer process)) (uid-validity (vm-folder-imap-uid-validity)) (imapdrop (vm-folder-imap-maildrop-spec)) (folder (or ... ...)) new-messages (sync-data (vm-imap-get-synchronization-data do-retrieves)) (retrieve-list (nth 0 sync-data)) (remote-expunge-list (nth 1 sync-data)) (local-expunge-list (nth 2 sync-data)) (stale-list (nth 3 sync-data))) (if save-attributes (progn (let ... ... ... ...))) (if retrieve-attributes (progn (let ... ... ... ...))) (if (and do-retrieves retrieve-list) (progn (setq new-messages ...))) (if do-local-expunges (progn (vm-inform 6 "Expunging messages in cache... ") (vm-expunge-folder :quiet t :just-these-messages local-expunge-list) (if ... ...) (vm-inform 6 "Expunging messages in cache... done"))) (if (and do-remote-expunges (if ... ... vm-imap-messages-to-expunge)) (progn (vm-imap-expunge-remote-messages))) (setq vm-imap-connection-mode 'online) new-messages))))) vm-imap-synchronize-folder(:interactive t :do-local-expunges t :do-retrieves t :save-attributes t :retrieve-attributes t) (progn (vm-imap-synchronize-folder :interactive interactive :do-local-expunges t :do-retrieves t :save-attributes t :retrieve-attributes t)) (if vm-imap-sync-on-get (progn (vm-imap-synchronize-folder :interactive interactive :do-local-expunges t :do-retrieves t :save-attributes t :retrieve-attributes t)) (vm-imap-synchronize-folder :interactive interactive :do-retrieves t)) (cond ((eq vm-folder-access-method 'pop) (vm-pop-synchronize-folder :interactive interactive :do-retrieves t)) ((eq vm-folder-access-method 'imap) (if vm-imap-sync-on-get (progn (vm-imap-synchronize-folder :interactive interactive :do-local-expunges t :do-retrieves t :save-attributes t :retrieve-attributes t)) (vm-imap-synchronize-folder :interactive interactive :do-retrieves t))) (t (vm-get-spooled-mail-normal interactive))) vm-get-spooled-mail(t) (if (vm-get-spooled-mail t) (progn (setq totals-blurb (vm-emit-totals-blurb)) (vm-display nil nil '(vm-get-new-mail) '(vm-get-new-mail)) (if (vm-thoughtfully-select-message) (vm-present-current-message) (vm-update-summary-and-mode-line)) (vm-inform 5 totals-blurb)) (vm-inform 5 "No new %s" description) (and (vm-interactive-p) (vm-sit-for 4) (vm-inform 5 ""))) (cond ((eq major-mode 'vm-virtual-mode) (vm-virtual-get-new-mail)) ((not (eq major-mode 'vm-mode)) (error "Can't get mail for a non-VM folder buffer")) ((null arg) (vm-inform 5 "Checking for %s..." description) (if (vm-get-spooled-mail t) (progn (setq totals-blurb (vm-emit-totals-blurb)) (vm-display nil nil '(vm-get-new-mail) '(vm-get-new-mail)) (if (vm-thoughtfully-select-message) (vm-present-current-message) (vm-update-summary-and-mode-line)) (vm-inform 5 totals-blurb)) (vm-inform 5 "No new %s" description) (and (vm-interactive-p) (vm-sit-for 4) (vm-inform 5 "")))) (t (let ((buffer-read-only nil) folder mcount) (setq folder (read-file-name "Gather mail from folder: " vm-folder-directory nil t)) (if (and vm-check-folder-types (not (vm-compatible-folder-p folder))) (error "Folder %s is not the same format as this folder." folder)) (save-excursion (vm-save-restriction (widen) (goto-char (point-max)) (let ((coding-system-for-read ...)) (insert-file-contents folder)))) (setq mcount (length vm-message-list)) (if (vm-assimilate-new-messages) (progn (setq totals-blurb (vm-emit-totals-blurb)) (vm-display nil nil '(vm-get-new-mail) '(vm-get-new-mail)) (if (vm-thoughtfully-select-message) (vm-present-current-message) (vm-update-summary-and-mode-line)) (vm-inform 5 totals-blurb) (setq vm-messages-not-on-disk (+ vm-messages-not-on-disk (- ... mcount)))) (vm-inform 5 "No messages gathered."))))) (let* ((folder (buffer-name)) (description (if (consp (car (vm-spool-files))) (format "new mail for %s" (buffer-name)) (format "new mail"))) totals-blurb) (cond ((eq major-mode 'vm-virtual-mode) (vm-virtual-get-new-mail)) ((not (eq major-mode 'vm-mode)) (error "Can't get mail for a non-VM folder buffer")) ((null arg) (vm-inform 5 "Checking for %s..." description) (if (vm-get-spooled-mail t) (progn (setq totals-blurb (vm-emit-totals-blurb)) (vm-display nil nil '(vm-get-new-mail) '(vm-get-new-mail)) (if (vm-thoughtfully-select-message) (vm-present-current-message) (vm-update-summary-and-mode-line)) (vm-inform 5 totals-blurb)) (vm-inform 5 "No new %s" description) (and (vm-interactive-p) (vm-sit-for 4) (vm-inform 5 "")))) (t (let ((buffer-read-only nil) folder mcount) (setq folder (read-file-name "Gather mail from folder: " vm-folder-directory nil t)) (if (and vm-check-folder-types (not (vm-compatible-folder-p folder))) (error "Folder %s is not the same format as this folder." folder)) (save-excursion (vm-save-restriction (widen) (goto-char (point-max)) (let (...) (insert-file-contents folder)))) (setq mcount (length vm-message-list)) (if (vm-assimilate-new-messages) (progn (setq totals-blurb (vm-emit-totals-blurb)) (vm-display nil nil '... '...) (if (vm-thoughtfully-select-message) (vm-present-current-message) (vm-update-summary-and-mode-line)) (vm-inform 5 totals-blurb) (setq vm-messages-not-on-disk (+ vm-messages-not-on-disk ...))) (vm-inform 5 "No messages gathered.")))))) vm-get-new-mail(nil) funcall-interactively(vm-get-new-mail nil) command-execute(vm-get-new-mail)