* modb-entity.el (elmo-msgdb-message-entity-set-number): Return
[elisp/wanderlust.git] / elmo / ChangeLog
index 05ba06b..b250dbb 100644 (file)
@@ -1,3 +1,377 @@
+2005-03-23  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * modb-entity.el (elmo-msgdb-message-entity-set-number): Return
+       `number'.
+
+       * elmo-multi.el (elmo-message-entity): Don't use return value of
+       `elmo-message-entity-set-number'.
+
+2005-03-22  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * modb.el (modb-generic): Added slot `mime-charset'.
+
+       * modb-standard.el (modb-standard): Added slot `overview-handler'.
+       (modb-standard-save-entity-1): Use `modb-entity-handler-equal-p'
+       and `modb-entity-handler-dump-parameters'.
+       (modb-standard-default-entity-handler): Abolish.
+       (elmo-msgdb-message-entity-handler): Save created handler by
+       instance slot.
+
+       * modb-entity.el (modb-entity-handler): Added slot `mime-charset'.
+       (modb-entity-handler-list-parameters): New method.
+       (modb-entity-handler-equal-p): New function.
+       (modb-entity-handler-dump-parameters): Ditto.
+       (modb-entity-parse-address-string): Encode return value.
+       (modb-entity-make-address-string): Decode argument value.
+       (modb-entity-decode-string-recursive): New function.
+       (modb-entity-encode-string-recursive): Ditto.
+       (modb-standard-entity-normalizer): Set to encode field value.
+       (modb-standard-entity-specializer): Follow the above change.
+       (modb-standard-entity-set-field): Bind `elmo-mime-charset' by
+       mime-charset of handler.
+       (elmo-msgdb-message-entity-field): Ditto.
+       (elmo-msgdb-copy-message-entity): Fixed reference to internal
+       structure.
+       (modb-entity-make-mailing-list-info-string): Decode `ml-name'.
+
+       * elmo.el (elmo-folder): Added slot `mime-charset'.
+       (elmo-make-folder): Added argument `mime-charset'.
+       (elmo-folder-msgdb-load): Call `elmo-load-msgdb' with
+       `mime-charest'.
+
+       * elmo-msgdb.el (elmo-load-msgdb): Added argument `mime-charset'.
+       (elmo-make-msgdb): Likewise.
+
+       * elmo-internal.el (elmo-internal-folder-initialize): Call
+       `luna-make-entity' with :mime-charset parameter.
+
+2005-03-21  Yuuichi Teranishi  <teranisi@gohome.org>
+
+       * elmo-nntp.el (elmo-nntp-create-msgdb-from-overview-string): Decode
+       encoded words in `from' and `subject' field.
+
+2005-03-20  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * modb.el (elmo-msgdb-message-field): Add argument `type'.
+       (elmo-msgdb-match-condition): Get handler from entity instead of
+       msgdb.
+
+       * modb-standard.el (modb-standard-economize-entity-size): Abolish.
+       (modb-standard-load-entity): Treat new file format.
+       (modb-standard-save-entity-1): Save as new file format.
+       (modb-standard-save-entity): Split messages into section here.
+       (elmo-msgdb-message-field): Follow the API change.
+       (modb-standard-default-entity-handler): New internal variable.
+       (elmo-msgdb-message-entity-handler): Define.
+
+       * modb-entity.el (elmo-msgdb-prefer-in-reply-to-for-parent): Moved
+       to `elmo-vars.el'.
+       (modb-entity-field-extractor-alist): New user option.
+       (elmo-msgdb-message-entity-field): Removed argument `decode' and
+       added argument `type'.
+       (elmo-msgdb-copy-message-entity): Add optional argument
+       `make-handler'.
+       (modb-set-field-converter): New function.
+       (modb-convert-field-value): Ditto.
+       (modb-entity-string-decoder): Ditto.
+       (modb-entity-string-encoder): Ditto.
+       (modb-entity-parse-date-string): Ditto.
+       (modb-entity-make-date-string): Ditto.
+       (modb-entity-mime-decoder): Ditto.
+       (modb-entity-mime-encoder): Ditto.
+       (modb-entity-address-list-decoder): Ditto.
+       (modb-entity-address-list-encoder): Ditto.
+       (modb-entity-parse-address-string): Ditto.
+       (modb-entity-make-address-string): Ditto.
+       (modb-entity-create-field-indices): Ditto.
+       (modb-legacy-entity-field-slots): New constant.
+       (modb-legacy-entity-field-indices): Ditto.
+       (modb-legacy-entity-normalizer): New variable.
+       (modb-legacy-entity-specializer): Ditto.
+       (modb-legacy-entity-field-index): New macro.
+       (modb-legacy-entity-set-field): New function.
+       (modb-legacy-make-message-entity): Rewrite.
+       (elmo-msgdb-create-message-entity-from-buffer): Use
+       `elmo-msgdb-get-references-from-buffer'. Use
+       `elmo-decoded-field-body' instead of `elmo-unfold-field-body'.
+       Use `modb-legacy-entity-set-field' instead of
+       `elmo-msgdb-message-entity-set-field'.
+       (elmo-msgdb-message-entity-field): Rewrite.
+       (elmo-msgdb-message-entity-set-field): Ditto.
+       (elmo-msgdb-copy-message-entity): Make new entity by
+       `make-handler' if it specified.
+       (elmo-msgdb-message-match-condition): Define a method of
+       `modb-entity-handler' and follow the API change.
+       (modb-standard-entity-handler): New class.
+       (modb-entity-extract-ml-info-from-x-sequence): New function.
+       (modb-entity-extract-ml-info-from-subject): Ditto.
+       (modb-entity-extract-ml-info-from-return-path): Ditto.
+       (modb-entity-extract-ml-info-from-delivered-to): Ditto.
+       (modb-entity-extract-ml-info-from-mailing-list): Ditto.
+       (modb-entity-extract-mailing-list-info): Ditto.
+       (modb-entity-extract-mailing-list-info-functions): New variable.
+
+       * elmo.el (elmo-message-field): Add optional argument `type'.
+
+       * elmo-vars.el (elmo-msgdb-prefer-in-reply-to-for-parent): Moved
+       from `modb-entity.el'.
+
+       * elmo-util.el (elmo-object-load): Decode by coding-system from
+       `set-auto-coding-function'.
+       (elmo-object-save): Use `detect-mime-charset-region' and add
+       coding cookie if encode.
+       (elmo-msgdb-get-references-from-buffer): New function.
+       (elmo-parse-addresses): Ditto (renamed from `wl-parse-addresses').
+
+       * elmo-spam.el (elmo-spam-message-spam-p): Follow the API change.
+
+       * elmo-shimbun.el (elmo-shimbun-parse-time-string): Removed.
+       (elmo-shimbun-entity-to-header): Use `shimbun-create-header'
+       instead of `shimbun-make-header' and follow the API change.
+       (elmo-shimbun-update-overview): Follow the API change.
+       (elmo-map-folder-list-message-locations): Ditto.
+
+       * elmo-pipe.el (elmo-message-field): Ditto.
+
+       * elmo-nntp.el (elmo-nntp-create-msgdb-from-overview-string):
+       Ditto.
+
+       * elmo-nmz.el (elmo-nmz-msgdb-create-entity): Ditto.
+
+       * elmo-multi.el (elmo-message-field): Ditto.
+
+       * elmo-msgdb.el (elmo-message-entity-field): Ditto.
+       (elmo-msgdb-sort-by-date): Ditto.
+       (elmo-msgdb-flag-table): Use `elmo-msgdb-message-field' instead of
+       `elmo-message-entity-field'.
+       (elmo-msgdb-overview-entity-get-from-no-decode): Follow the API
+       change.
+       (elmo-msgdb-overview-entity-get-from): Ditto.
+       (elmo-msgdb-overview-entity-get-subject): Ditto.
+       (elmo-msgdb-overview-entity-get-subject-no-decode): Ditto.
+       (elmo-msgdb-overview-entity-get-date): Ditto.
+       (elmo-msgdb-overview-entity-get-to): Ditto.
+       (elmo-msgdb-overview-entity-get-cc): Ditto.
+
+       * elmo-mime.el (elmo-message-mime-entity): Ditto.
+       (elmo-mime-collect-message/partial-pieces): Ditto.
+
+       * elmo-filter.el (elmo-message-field): Ditto.
+
+       * elmo-date.el (elmo-datevec-to-time): New function.
+       (elmo-time-parse-date-string): Ditto.
+       (elmo-time-make-date-string): Ditto.
+       (elmo-time<): Ditto.
+
+       * elmo-version.el (elmo-version): Up to 2.15.1.
+
+2005-03-14  Yoichi NAKAYAMA  <yoichi@geiin.org>
+
+       * elmo-flag.el (elmo-global-flags-initialize): Don't include
+       member of elmo-local-flags.
+
+2005-03-13  Yuuichi Teranishi  <teranisi@gohome.org>
+
+       * elmo-version.el (elmo-version): Up to 2.15.0.
+
+2005-03-13  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * elmo.el (elmo-folder-synchronize): Ignore `mask' when
+       `ignore-msgdb' is non-nil.
+
+2005-03-12  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * elmo-util.el (elmo-condition-in-msgdb-p-internal): Removed.
+       (elmo-condition-in-msgdb-p): Ditto.
+       (elmo-file-field-primitive-condition-match): Ditto.
+       (elmo-file-field-condition-match): Ditto.
+
+       * elmo-localdir.el (elmo-localdir-field-condition-match): Ditto.
+
+2005-03-11  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * elmo-flag.el (elmo-folder-list-subfolders): Don't list from
+       subdirectories here.
+       (elmo-global-flags-initialize): New function.
+
+       * elmo.el (toplevel): Added autoload setting for
+       `elmo-global-flags-initialize'.
+
+2005-03-07  Yoichi NAKAYAMA  <yoichi@geiin.org>
+
+       * elmo.el (message-number-changed): Define new signal.
+       * elmo-dop.el (elmo-folder-append-buffer-dop-delayed): Emit
+       message-number-changed signal.
+       * elmo-localdir.el (elmo-folder-pack-numbers): Ditto.
+       * elmo-map.el (elmo-folder-pack-numbers): Ditto.
+       Respect `elmo-pack-number-check-strict'.
+
+2005-03-06  Yoichi NAKAYAMA  <yoichi@geiin.org>
+
+       * elmo-signal.el (elmo-connect-signal): Document.
+       (elmo-emit-signal): Ditto.
+       (elmo-emit-signal): It should pass source argument to filter and
+       handler, not slot-source.
+
+2005-03-05  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * modb.el (elmo-msgdb-update-entity): New API and define generic
+       implement.
+
+       * modb-standard.el (elmo-msgdb-update-entity): Define.
+
+       * modb-entity.el (elmo-msgdb-message-entity-update-fields): New
+       API and define generic implement.
+
+       * elmo.el (update-overview): New singnal.
+
+       * elmo-shimbun.el (elmo-shimbun-update-overview): Rewrite use
+       `elmo-msgdb-update-entity' and emit signal `update-overview'.
+       (elmo-message-entity-parent): Define.
+
+       * elmo-pipe.el (elmo-pipe-connect-signals): Connect to signal
+       `update-overview'.
+
+       * elmo-multi.el (elmo-multi-connect-signals): Ditto.
+
+       * elmo-filter.el (elmo-filter-connect-signals): Ditto.
+
+2005-02-27  Yuuichi Teranishi  <teranisi@gohome.org>
+
+       * elmo.el (elmo-folder-synchronize): Sort the return value of
+       `elmo-list-diff'.
+
+       * elmo-util.el (elmo-list-diff): Don't care the order of the returned
+       list.
+
+2005-02-27  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * elmo-util.el (elmo-with-enable-multibyte): Don't bind
+       `default-enable-multibyte-characters'.
+       (elmo-object-load): Use `with-temp-buffer' instead of
+       `elmo-set-work-buf'.
+       (elmo-object-save): Ditto.
+       (elmo-mime-string): Use `elmo-with-enable-multibyte' instead of
+       `elmo-set-work-buf'.
+       (elmo-decoded-field-body): Ditto.
+
+       * elmo-shimbun.el (elmo-shimbun-entity-to-header): Ditto.
+
+       * elmo-sendlog.el (elmo-sendlog-folder-list-message-locations):
+       Use `with-temp-buffer' instead of `elmo-set-work-buf'.
+
+       * elmo-version.el (elmo-version): Up to 2.13.3.
+
+2005-02-27  Tetsurou Okazaki  <okazaki@be.to>
+
+       * elmo-util.el (elmo-list-diff): Fix the last change.
+       Reverse order of result lists.
+
+2005-02-26  Yuuichi Teranishi  <teranisi@gohome.org>
+
+       * modb-standard.el (elmo-msgdb-set-flag): Use
+       `elmo-list-diff-nonsortable' instead of `elmo-list-diff'.
+       (elmo-msgdb-unset-flag): Ditto.
+
+       * elmo.el (elmo-strict-folder-diff): Don't use third argument of
+       `elmo-list-diff'.
+
+       * elmo-util.el (elmo-list-diff): Rewrite.
+       (elmo-list-diff-nonsortable): New function.
+
+2005-02-26  Tetsurou Okazaki  <okazaki@be.to>
+
+       * elmo-util.el (elmo-multibyte-buffer-name): Renamed from
+       `elmo-multibypte-buffer-name'.  All referers are updated.
+
+2005-02-25  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * elmo-mime.el (elmo-mime-entity-reassembled-p): New method.
+       (elmo-mime-entity-fragment-p): New function.
+       (mime-elmo-buffer-entity): Added slot `reassembled'.
+       (elmo-message-mime-entity): Added 4th argument `reassemble'.
+       (elmo-message-mime-entity-internal): New function (renamed from
+       `elmo-message-mime-entity').
+       (elmo-mime-inherit-field-list-from-enclosed): New constant.
+       (elmo-mime-make-reassembled-mime-entity): New function.
+       (elmo-message-reassembled-mime-entity): Ditto.
+       (elmo-mime-collect-message/partial-pieces): Ditto.
+
+2005-02-24  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * elmo.el (elmo-message-fetch-string): Disable multibyte.
+
+       * elmo-util.el (elmo-multibypte-buffer-name): New constant.
+       (elmo-with-enable-multibyte): New macro.
+
+       * modb-entity.el (elmo-msgdb-get-decoded-cache): Use it.
+
+2005-02-23  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * elmo-filter.el (elmo-filter-add-flag-count): Removed unused
+       argument `number'.
+       (elmo-filter-connect-signals): Follow the above change.
+
+2005-02-19  Yuuichi Teranishi  <teranisi@gohome.org>
+
+       * modb-standard.el (elmo-msgdb-unset-flag): Bind inhibit-quit.
+
+       * elmo-maildir.el (elmo-folder-append-messages): Fix the problem
+       that only the first flag is used.
+
+2005-02-17  ARISAWA Akihiro  <ari@mbf.sphere.ne.jp>
+
+       * elmo-shimbun.el (elmo-folder-exists-p): Use `shimbun-group-p' 
+       if available.
+
+2005-02-18  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * elmo-signal.el: New file.
+
+       * elmo.el (toplevel): Require elmo-signal.
+       (flag-changing, flag-changed, cache-changed): New signal.
+       (elmo-folder): Remove slog `handlers'.
+       (elmo-message-set-cached): Use `elmo-emit-signal' instead of
+       `elmo-folder-notify-event'.
+       (elmo-folder-set-flag): Likewise. Emit signal `flag-changing'.
+       (elmo-folder-unset-flag): Ditto.
+       (elmo-event-handler): Abolish.
+       (elmo-event-handler-flag-changed): Ditto.
+       (elmo-event-handler-cache-changed): Ditto.
+       (elmo-folder-add-handler): Ditto.
+       (elmo-folder-remove-handler): Ditto.
+       (elmo-folder-notify-event): Ditto.
+
+       * elmo-pipe.el (toplevel): Require elmo-signal.
+       (elmo-folder-initialize): Call `elmo-pipe-connect-signals'.
+       (elmo-pipe-connect-signals): New function.
+       (elmo-message-fetch): Does not call `elmo-folder-notify-event'.
+       (elmo-folder-set-flag): Ditto.
+       (elmo-folder-unset-flag): Ditto.
+       (elmo-message-set-cached): Ditto.
+
+       * elmo-multi.el (toplevel): Require elmo-signal.
+       (elmo-folder-initialize): Call `elmo-multi-connect-signals'.
+       (elmo-multi-connect-signals): New function.
+       (elmo-multi-map-numbers): Ditto.
+       (elmo-message-set-cached): Does not call `elmo-folder-notify-event'.
+       (elmo-message-fetch): Ditto.
+       (elmo-folder-set-flag): Ditto.
+       (elmo-folder-unset-flag): Ditto.
+
+       * elmo-filter.el (toplevel): Require elmo-signal.
+       (elmo-folder-initialize): Call `elmo-filter-connect-signals'.
+       (elmo-filter-connect-signals): New function.
+       (elmo-filter-add-flag-count): Ditto.
+       (elmo-message-fetch): Does not call
+       `elmo-filter-folder-countup-message-flags' and
+       `elmo-folder-notify-event'.
+       (elmo-message-set-cached): Ditto.
+       (elmo-folder-set-flag): Ditto.
+       (elmo-folder-unset-flag): Ditto.
+
+       * elmo-version.el (elmo-version): Up to 2.13.2.
+
 2005-02-17  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
 
        * elmo-imap4.el (elmo-imap4-flags-to-imap): Preserve argument