These are already documented in ChangeLog.
;; to make it more clear.
(mm-with-unibyte-buffer
(buffer-disable-undo)
+ ;; headers can be nil if article is write-only
(when headers (insert headers))
(let ((head (nnheader-parse-naked-head uid)))
(mail-header-set-number head uid)
(erase-buffer)
(let ((data (imap-fetch article part prop nil
nnimap-server-buffer)))
+ ;; data can be nil if article is write-only
(when data
(insert (nnimap-demule (if detail
(nth 2 (car data))
(when (eq (char-after) ?\()
(let (uid flags envelope internaldate rfc822 rfc822header rfc822text
rfc822size body bodydetail bodystructure flags-empty)
+ ;; Courier can insert spurious blank characters which will
+ ;; confuse `read', so skip past them.
(while (let ((moved (skip-chars-forward " \t")))
(prog1 (not (eq (char-after) ?\)))
(unless (= moved 0) (backward-char))))