X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-shimbun.el;h=889280ae20291b7a6a1489e8d42bce2fb2ea573f;hb=bd7b094aadfdb27f7fd1ada42d817678eb391a3a;hp=49b1381a455324e6e31cb4b872ba4599dffaac54;hpb=8b8f105e52cd4f1d2fc89dc09b462491721a878e;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-shimbun.el b/elmo/elmo-shimbun.el index 49b1381..889280a 100644 --- a/elmo/elmo-shimbun.el +++ b/elmo/elmo-shimbun.el @@ -230,14 +230,14 @@ If it is the symbol `all', update overview for all shimbun folders." (elmo-shimbun-folder-shimbun-internal folder) (elmo-shimbun-folder-group-internal folder)) (let ((inhibit-quit t)) - (unless (elmo-map-folder-location-alist-internal folder) - (elmo-map-folder-location-setup + (unless (elmo-location-map-alist folder) + (elmo-location-map-setup folder (elmo-msgdb-location-load (elmo-folder-msgdb-path folder)))) (when (and (elmo-folder-plugged-p folder) (elmo-shimbun-headers-check-p folder)) (elmo-shimbun-get-headers folder) - (elmo-map-folder-update-locations + (elmo-location-map-update folder (elmo-map-folder-list-message-locations folder)))))) @@ -336,35 +336,24 @@ If it is the symbol `all', update overview for all shimbun folders." (luna-define-method elmo-folder-msgdb-create ((folder elmo-shimbun-folder) numlist flag-table) (let ((new-msgdb (elmo-make-msgdb)) - entity i percent length msgid flags) - (setq length (length numlist)) - (setq i 0) - (message "Creating msgdb...") - (while numlist - (setq entity - (elmo-shimbun-msgdb-create-entity - folder (car numlist))) - (when entity - (setq msgid (elmo-message-entity-field entity 'message-id) - flags (elmo-flag-table-get flag-table msgid)) - (elmo-global-flags-set flags folder (car numlist) msgid) - (elmo-msgdb-append-entity new-msgdb entity flags)) - (when (> length elmo-display-progress-threshold) - (setq i (1+ i)) - (setq percent (/ (* i 100) length)) - (elmo-display-progress - 'elmo-folder-msgdb-create "Creating msgdb..." - percent)) - (setq numlist (cdr numlist))) - (message "Creating msgdb...done") + entity msgid flags) + (elmo-with-progress-display (elmo-folder-msgdb-create (length numlist)) + "Creating msgdb" + (dolist (number numlist) + (setq entity (elmo-shimbun-msgdb-create-entity folder number)) + (when entity + (setq msgid (elmo-message-entity-field entity 'message-id) + flags (elmo-flag-table-get flag-table msgid)) + (elmo-global-flags-set flags folder number msgid) + (elmo-msgdb-append-entity new-msgdb entity flags)) + (elmo-progress-notify 'elmo-folder-msgdb-create))) new-msgdb)) (luna-define-method elmo-folder-message-file-p ((folder elmo-shimbun-folder)) nil) -(defsubst elmo-shimbun-update-overview (folder shimbun-id header) - (let ((entity (elmo-message-entity folder shimbun-id)) - (message-id (shimbun-header-id header)) +(defsubst elmo-shimbun-update-overview (folder entity shimbun-id header) + (let ((message-id (shimbun-header-id header)) references) (when (elmo-msgdb-update-entity (elmo-folder-msgdb folder) @@ -403,7 +392,9 @@ If it is the symbol `all', update overview for all shimbun folders." (elmo-string-match-member (elmo-folder-name-internal folder) elmo-shimbun-update-overview-folder-list)) - (elmo-shimbun-update-overview folder location header)) + (let ((entity (elmo-message-entity folder location))) + (when entity + (elmo-shimbun-update-overview folder entity location header)))) (when (setq shimbun-id (elmo-shimbun-header-extra-field header "x-shimbun-id")) (goto-char (point-min))