(defun elmo-mime-message-display (folder number viewbuf rawbuf original-mode
&optional ignore-cache unread keymap)
- "Display MIME message.
+ "Display MIME message.
A message in the FOLDER with NUMBER is displayed on the VIEWBUF using RAWBUF.
VIEWBUF is a view buffer and RAWBUF is a raw buffer.
ORIGINAL is the major mode of RAWBUF.
(let (mime-display-header-hook ; Do nothing.
(elmo-message-displaying t)
entity strategy)
- (setq entity (elmo-msgdb-overview-get-entity number
- (elmo-folder-msgdb
- folder)))
- (setq strategy (elmo-find-fetch-strategy folder entity
- ignore-cache))
+ (unless (zerop (elmo-folder-length folder))
+ (setq entity (elmo-message-entity folder number)))
+ (setq strategy (if entity (elmo-find-fetch-strategy folder entity
+ ignore-cache)
+ (elmo-make-fetch-strategy 'entire)))
(mime-display-message
(mime-open-entity
(if (and strategy
(defun elmo-mime-display-as-is (folder number viewbuf rawbuf original-mode
&optional ignore-cache unread keymap)
- "Display MIME message.
+ "Display MIME message.
A message in the FOLDER with NUMBER is displayed on the VIEWBUF using RAWBUF.
VIEWBUF is a view buffer and RAWBUF is a raw buffer.
ORIGINAL is the major mode of RAWBUF.
If second optional argument UNREAD is specified, message is displayed but
keep it as unread.
Return non-nil if cache is used."
- (let ((entity (elmo-msgdb-overview-get-entity number
- (elmo-folder-msgdb folder)))
+ (let ((entity (elmo-msgdb-message-entity (elmo-folder-msgdb folder) number))
mime-display-header-hook ; Do nothing.
cache-file strategy use-cache)
- (setq cache-file (elmo-file-cache-get
- (elmo-msgdb-overview-entity-get-id entity)))
- (setq use-cache (and (elmo-message-use-cache-p folder number)
- (eq (elmo-file-cache-status cache-file) 'entire)))
+ (when entity
+ (setq cache-file (elmo-file-cache-get
+ (elmo-message-entity-field entity 'message-id)))
+ (setq use-cache (and (elmo-message-use-cache-p folder number)
+ (eq (elmo-file-cache-status cache-file) 'entire))))
(setq strategy (elmo-make-fetch-strategy
- 'entire use-cache (elmo-message-use-cache-p folder number)
- (elmo-file-cache-path
- cache-file)))
+ 'entire use-cache
+ (elmo-message-use-cache-p folder number)
+ (elmo-file-cache-path cache-file)))
(elmo-mime-display-as-is-internal
(mime-open-entity
'elmo-buffer
(elmo-make-mime-message-location
folder number strategy rawbuf unread))
viewbuf nil keymap original-mode)
- (elmo-fetch-strategy-use-cache strategy)))
+ (when strategy
+ (elmo-fetch-strategy-use-cache strategy))))
;; Replacement of mime-display-message.
(defun elmo-mime-display-as-is-internal (message