(luna-define-method mime-imap-location-bodystructure
((location mime-elmo-imap-location))
- (elmo-imap4-fetch-bodystructure
+ (elmo-message-fetch-bodystructure
(mime-elmo-imap-location-folder-internal location)
(mime-elmo-imap-location-number-internal location)
(mime-elmo-imap-location-strategy-internal location)))
(car (nth 1 entry))))
response)))
-(defun elmo-imap4-fetch-bodystructure (folder number strategy)
- "Fetch BODYSTRUCTURE for the message in the FOLDER with NUMBER using STRATEGY."
+(luna-define-method elmo-message-fetch-bodystructure ((folder
+ elmo-imap4-folder)
+ number strategy)
(if (elmo-fetch-strategy-use-cache strategy)
(elmo-object-load
(elmo-file-cache-expand-path
(with-temp-buffer
(insert (or (elmo-imap4-response-bodydetail-text element)
""))
- ;; Delete CR.
- (goto-char (point-min))
- (while (search-forward "\r\n" nil t)
- (replace-match "\n"))
+ ;; Replace all CRLF with LF.
+ (elmo-delete-cr-buffer)
(elmo-msgdb-create-message-entity-from-buffer
handler
(elmo-imap4-response-value element 'uid)
(elmo-imap4-send-command-wait
session
(list "list " (elmo-imap4-mailbox root) " *"))))
+ ;; The response of Courier-imap doesn't contain a specified folder itself.
+ (unless (member root result)
+ (setq result
+ (append result
+ (elmo-imap4-response-get-selectable-mailbox-list
+ (elmo-imap4-send-command-wait
+ session
+ (list "list \"\" " (elmo-imap4-mailbox root)))))))
(when (or (not (string= (elmo-net-folder-user-internal folder)
elmo-imap4-default-user))
(not (eq (elmo-net-folder-auth-internal folder)
numbers flag)
(let ((spec (cdr (assq flag elmo-imap4-flag-specs))))
(elmo-imap4-set-flag folder numbers (or (car spec)
- (capitalize (symbol-name flag))
- (nth 1 spec)))))
+ (capitalize (symbol-name flag)))
+ (nth 1 spec))))
(luna-define-method elmo-folder-unset-flag-plugged ((folder elmo-imap4-folder)
numbers flag)
(and (memq 'answered flags)
'("\\Answered")))
" ")
+ ;; XX KEYWORD flags
") ")
" () ")
(elmo-imap4-buffer-literal send-buffer))))
(kill-buffer send-buffer))
+ (when result
+ (elmo-folder-preserve-flags
+ folder (elmo-msgdb-get-message-id-from-buffer) flags))
result)
;; Unplugged
(if elmo-enable-disconnected-operation
(with-current-buffer outbuf
(erase-buffer)
(insert response)
+ (elmo-delete-cr-buffer)
t))))
(luna-define-method elmo-message-fetch-plugged ((folder elmo-imap4-folder)