- (or (cond
- ((eq wl-message-buffer-prefetch-folder-type-list t)
- t)
- ((and number wl-message-buffer-prefetch-folder-type-list)
- (memq (elmo-folder-type-internal
- (elmo-message-folder folder number))
- wl-message-buffer-prefetch-folder-type-list))
- (wl-message-buffer-prefetch-folder-type-list
- (let ((list wl-message-buffer-prefetch-folder-type-list)
- type)
- (catch 'done
- (while (setq type (pop list))
- (if (elmo-folder-contains-type folder type)
- (throw 'done t)))))))
- (cond
- ((consp wl-message-buffer-prefetch-folder-list)
- (wl-string-match-member (elmo-folder-name-internal folder)
- wl-message-buffer-prefetch-folder-list))
- (t wl-message-buffer-prefetch-folder-list))))
+ (and (or (not number)
+ (elmo-message-file-p folder number)
+ (let ((size (elmo-message-field folder number 'size)))
+ (not (and (integerp size)
+ wl-message-buffer-prefetch-threshold
+ (>= size wl-message-buffer-prefetch-threshold)))))
+ (or (not number)
+ (elmo-folder-plugged-p folder)
+ (elmo-file-cache-exists-p
+ (elmo-message-field folder number 'message-id)))
+ (or (cond
+ ((eq wl-message-buffer-prefetch-folder-type-list t)
+ t)
+ ((and number wl-message-buffer-prefetch-folder-type-list)
+ (memq (elmo-folder-type-internal
+ (elmo-message-folder folder number))
+ wl-message-buffer-prefetch-folder-type-list))
+ (wl-message-buffer-prefetch-folder-type-list
+ (let ((list wl-message-buffer-prefetch-folder-type-list)
+ type)
+ (catch 'done
+ (while (setq type (pop list))
+ (if (elmo-folder-contains-type folder type)
+ (throw 'done t)))))))
+ (cond
+ ((consp wl-message-buffer-prefetch-folder-list)
+ (wl-string-match-member (elmo-folder-name-internal folder)
+ wl-message-buffer-prefetch-folder-list))
+ (t wl-message-buffer-prefetch-folder-list)))))