- (unless (string= shimbun-id message-id)
- (elmo-msgdb-overview-entity-set-extra-field
- entity "x-original-id" message-id)
- (elmo-shimbun-header-set-extra-field
- header "x-shimbun-id" shimbun-id)
- (elmo-set-hash-val message-id
- entity
- (elmo-shimbun-folder-entity-hash folder))
- (elmo-set-hash-val shimbun-id
- entity
- (elmo-shimbun-folder-entity-hash folder)))
- (elmo-msgdb-overview-entity-set-from
- entity
- (elmo-mime-string (shimbun-header-from header)))
- (elmo-msgdb-overview-entity-set-subject
- entity
- (elmo-mime-string (shimbun-header-subject header)))
- (elmo-msgdb-overview-entity-set-date
- entity (shimbun-header-date header))
- (when (setq references
- (or (elmo-msgdb-get-last-message-id
- (elmo-field-body "in-reply-to"))
- (elmo-msgdb-get-last-message-id
- (elmo-field-body "references"))))
- (elmo-msgdb-overview-entity-set-references
- entity
- (or (elmo-msgdb-overview-entity-get-id
- (elmo-get-hash-val
- references
- (elmo-shimbun-folder-entity-hash folder)))
- references)))))
+ (when (elmo-msgdb-update-entity
+ (elmo-folder-msgdb folder)
+ entity
+ (nconc
+ (unless (string= shimbun-id message-id)
+ (elmo-shimbun-header-set-extra-field
+ header "x-shimbun-id" shimbun-id)
+ (elmo-set-hash-val message-id
+ entity
+ (elmo-shimbun-folder-entity-hash folder))
+ (elmo-set-hash-val shimbun-id
+ entity
+ (elmo-shimbun-folder-entity-hash folder))
+ (list (cons 'x-original-id message-id)))
+ (list
+ (cons 'from (shimbun-header-from header 'no-encode))
+ (cons 'subject (shimbun-header-subject header 'no-encode))
+ (cons 'date (shimbun-header-date header))
+ (cons 'references
+ (elmo-msgdb-get-references-from-buffer)))))
+ (elmo-emit-signal 'update-overview folder
+ (elmo-message-entity-number entity)))))