- (setq i 0)
- (message "Creating msgdb...")
- (while (not (eobp))
- (setq beg (save-excursion (forward-line 1) (point)))
- (elmo-pop3-next-result-arrived-p)
- (save-excursion
- (forward-line -1)
- (save-restriction
- (narrow-to-region beg (point))
- (setq entity
- (elmo-msgdb-create-overview-from-buffer
- (car numlist)))
- (setq numlist (cdr numlist))
- (when entity
- (setq overview
- (elmo-msgdb-append-element
- overview entity))
- (with-current-buffer (process-buffer process)
- (elmo-msgdb-overview-entity-set-size
- entity
- (string-to-number
- (elmo-pop3-number-to-size
- (elmo-msgdb-overview-entity-get-number entity))))
- (if (setq number
- (car
- (rassoc
- (elmo-pop3-number-to-uidl
- (elmo-msgdb-overview-entity-get-number entity))
- loc-alist)))
- (elmo-msgdb-overview-entity-set-number entity number)))
- (setq number-alist
- (elmo-msgdb-number-add
- number-alist
- (elmo-msgdb-overview-entity-get-number entity)
- (car entity)))
- (setq message-id (car entity))
- (setq seen (member message-id seen-list))
- (if (setq gmark (or (elmo-msgdb-global-mark-get message-id)
- (if (elmo-file-cache-status
- (elmo-file-cache-get message-id))
- (if seen
- nil
- already-mark)
- (if seen
- (if elmo-pop3-use-cache
- seen-mark)
- new-mark))))
- (setq mark-alist
- (elmo-msgdb-mark-append
- mark-alist
- (elmo-msgdb-overview-entity-get-number entity)
- gmark))))))
- (when (> num elmo-display-progress-threshold)
- (setq i (1+ i))
- (if (or (zerop (% i 5)) (= i num))
- (elmo-display-progress
- 'elmo-pop3-msgdb-create-message "Creating msgdb..."
- (/ (* i 100) num)))))
- (list overview number-alist mark-alist))))
+ (elmo-with-progress-display (elmo-folder-msgdb-create num)
+ "Creating msgdb"
+ (while (not (eobp))
+ (setq beg (save-excursion (forward-line 1) (point)))
+ (elmo-pop3-next-result-arrived-p)
+ (save-excursion
+ (forward-line -1)
+ (save-restriction
+ (narrow-to-region beg (point))
+ (setq entity
+ (elmo-msgdb-create-message-entity-from-buffer
+ (elmo-msgdb-message-entity-handler new-msgdb)
+ (car numlist)))
+ (setq numlist (cdr numlist))
+ (when entity
+ (with-current-buffer (process-buffer process)
+ (elmo-message-entity-set-field
+ entity
+ 'size
+ (elmo-pop3-number-to-size
+ (elmo-message-entity-number entity)))
+ (when (setq number
+ (elmo-map-message-number
+ folder
+ (elmo-pop3-number-to-uidl
+ (elmo-message-entity-number entity))))
+ (elmo-message-entity-set-number entity number)))
+ (setq message-id (elmo-message-entity-field entity 'message-id)
+ flags (elmo-flag-table-get flag-table message-id))
+ (elmo-global-flags-set flags folder number message-id)
+ (elmo-msgdb-append-entity new-msgdb entity flags))))
+ (elmo-progress-notify 'elmo-folder-msgdb-create)))
+ new-msgdb)))