SEMI NEWS --- history of major-changes.
-Copyright (C) 1998 Free Software Foundation, Inc.
+Copyright (C) 1998,1999 Free Software Foundation, Inc.
+
+* Changes in SEMI 1.13
+
+** PGP 5.0i and GnuPG are now supported for PGP/MIME
+
+ You can select the various PGP or GnuPG commands by the user option
+`pgg-default-scheme' or `pgg-scheme'. The former is for encrypting and
+signing, the latter could be bound for controlling which command is
+used to process the incoming PGP armors. Note that Mailcrypt is not
+needed anymore. A user interface for editing or viewing has never
+changed. Note also that `pgp-function' and `pgp-functions-alist' are
+abolished in this version.
+
+
+** Requires FLIM 1.13 API
+
+
+** Don't expect raw-buffer
+
+In FLIM 1.13 API, existence of a raw-buffer corresponding to each
+entity is not guaranteed.
+
+*** Now acting-method must not expect to run in raw-buffer
+
+Function `mime-play-entity' was changed to permit to run in any buffer
+(may be called in preview-buffer). So each acting-method is called in
+any buffer.
+
+*** Don't refer variable `mime-raw-buffer'
+
+Preview-buffer's local variable `mime-raw-buffer' is deleted. So
+don't refer it.
+
+*** Don't refer variable `mime-preview-buffer'
+
+There are no guarantee about existence of a raw-buffer corresponding
+to each entity, so don't refer buffer local variables of the
+raw-buffer, e.g. `mime-preview-buffer'.
+
+
+** Function `mime-play-entity'
+
+Function `mime-play-entity' was renamed from `mime-raw-play-entity'
+and changed interface.
+
+Current interface is:
+
+ mime-play-entity (entity &optional situation ignored-method)
+
+Please use `situation' if you would like to specify `mode' and
+`ignore-examples'.
+
+
+** Text property `mime-view-entity-{header|body}'
+
+Now mime-view put text property `mime-view-entity-header' and
+`mime-view-entity-body' in header and body of each entity.
+
+
+** Behavior change about `mime-display-header-hook'
+
+Function `mime-display-entity' runs `mime-display-header-hook' before
+it inserts "\n".
+
+In addition, now it is cleared that current point means beginning of
+header when `mime-display-entity' runs `mime-display-header-hook'.
+Therefore header-presentation-method must not change current point.
+
+
+** New variable `mime-preview-move-scroll'
+
+This variables decides how to scroll in the MIME-View-mode
+when mime-preview-move-upper, mime-preview-move-previous,
+mime-preview-move-next is called. Those are bound to `u', `p', `n',
+respectively.
+
+\f
+* Changes in SEMI 1.12
+
+There are no user-visible changes.
+
+** New function `eliminate-top-spaces'
+
+Now mime-edit has it.
+
+\f
+* Changes in SEMI 1.11
+
+** New function `mime-edit-decode-message-in-buffer'
+
+Add new function `mime-edit-decode-message-in-buffer'. Function
+`mime-edit-decode-buffer' was abolished.
+
+
+** Requires FLIM 1.12 API
+
+\f
+* Changes in SEMI 1.10
+
+** Abolish variable `mime-temp-directory'
+
+ FLIM 1.11 and SEMI 1.10 use variable `temporary-file-directory'
+instead of `mime-temp-directory'. So environment variable
+"MIME_TMP_DIR" and "TM_TMP_DIR" are not effective to specify temporary
+directory of FLIM and SEMI.
+
+
+** Abolish function `mime-text-insert-decoded-body'
+
+ SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
+instead of `mime-text-insert-decoded-body'.
+
+ Now `mime-view-caesar' does not run `mime-text-decode-hook'.
+
+\f
+* Changes in SEMI 1.9
+
+** User option `mime-encoding-list'
+
+ SEMI 1.9 requires FLIM 1.10 API. In FLIM 1.10 API, variable
+`mime-file-encoding-method-alist' was abolished. If you want to use
+non-standard Content-Transfer-Encoding to insert a file into sending
+message, please edit new user option `mime-encoding-list' instead of
+`mime-file-encoding-method-alist'.
+
+
+** Constant `mime-user-interface-product'
+
+ Constant `mime-user-interface-version' was renamed to
+`mime-user-interface-product'. Notice that data format is changed
+too.
+
+ FLIM 1.10 API provides following macros to access a slot of the new
+data format:
+
+ mime-product-name (product)
+
+ mime-product-version (product)
+
+ mime-product-code-name (product)
+
+Please use them to get elements of the constant
+`mime-user-interface-product'.
+
+\f
+* Changes in SEMI 1.8
+
+** Don't use "file" command to detect content of entity
+
+ Acting-method to detect content of entity was modified not to use
+"file" command.
+
+ Variable `mime-file-content-type-alist' was abolished. Instead of
+it, new variable `mime-magic-type-alist' is available to customize.
+It is an alist of regexp about magic-number vs. corresponding
+media-types. Each element looks like (REGEXP TYPE SUBTYPE). REGEXP
+is a regular expression to match against the beginning of the content
+of entity. TYPE is symbol to indicate primary type of media-type.
+SUBTYPE is symbol to indicate subtype of media-type.
+
+
+** Abolish external X-Face viewer
+
+
+** Abolish obsolete utility for *-field-list and *-field-regexp
+
+ Abolish function `tm:set-fields', `tm:add-fields' and
+`tm:delete-fields'.
+
+
+** Change MUA interface of automatic message/partial combining
+
+ Abolish variable `mime-view-partial-message-method-alist'.
+
+ Instead of it, `request-partial-message-method' in acting-situation
+is available to specify MUA depended implementation.
+
+ Each element of `mime-view-partial-message-method-alist' were
+required to display message at current summary line, and its return
+value were ignored. On the other hand,
+`request-partial-message-method' is required to return structure of
+message at current summary line. Format of it is mime-entity.
+
+
+** User-Agent field
+
+ MIME-Edit inserts User-Agent field instaed of X-Emacs field if
+`mime-edit-insert-user-agent-field' is not nil. Contents of
+User-Agent is specified by mime-edit-user-agent-value'.
+
+ X-Emacs field related features were abolished.
+
+\f
+* Changes in SEMI 1.7
+
+** Header-presentation-method
+
+ Now MIME-View uses header-presentation-method instead of
+header-filter.
+
+ - abolish variable `mime-view-content-header-filter-alist'
+
+ - abolish function `mime-view-cut-header'
+
+ - Rename `mime-view-content-header-filter-hook' to
+ `mime-display-header-hook'
+
+
+** Abolish `mime-view-ignored-field-regexp'
+
+ Now mime-view uses `mime-view-ignored-field-list' directly in
+default header-presentation-method.
+
+
+** Abolish body filter support
+
+ Please use body-presentation-method.
+
+
+** Methods for MUAs
+
+ - Rename `mime-view-following-method-alist' to
+ `mime-preview-following-method-alist'
+
+ - Rename `mime-method-to-combine-message/partial-pieces' to
+ `mime-combine-message/partial-pieces-automatically'
+
+\f
+* Changes in SEMI 1.6
+
+** Abolish tm-compatible external method support
+
+ Abolish tm-compatible external method support. Please use mailcap
+method instead of it.
+
+
+** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
+
+ C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
+
+ C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
+encryption.
+
+
+** New method to detect content of entity
+
+ Now MIME-View can detect content of entity for
+application/octet-stream in default setting.
+
+ It uses "file" command to detect. User can customize
+`mime-file-content-type-alist' to specify media-type for output of
+"file" command. It is an alist of "file" output patterns
+vs. corresponding media-types. Each element looks like (REGEXP TYPE
+SUBTYPE). REGEXP is pattern for "file" command output. TYPE is
+symbol to indicate primary type of media-type. SUBTYPE is symbol to
+indicate subtype of media-type.
+
+
+** New interface to display message
+
+- Function `mime-view-buffer'
+- Function `mime-view-display-message'
+
+
+** Change interface of internal playback method
+
+ Interface of internal playback method was changed to
+
+ (entity situation)
+
+It is as same as interface of body-presentation-method.
+
+
+** Change interface of `mime-view-entity-button-visible-p'
+
+** Change interface of `mime-view-insert-entity-button'
+
+
+** `mime-preview-original-major-mode'
+
+ Abolish variable `mime-preview-original-major-mode'.
+
+ Please use function `mime-preview-original-major-mode' instead of
+it.
+
+
+** mime-preview-over-to-{previous|next}-method-alist
+
+ `mime-preview-over-to-{previous|next}-method-alist' were renamed
+from `mime-view-over-to-{previous|next}-method-alist'.
+
+\f
+* Changes in SEMI 1.5
+
+** mime-w3
+
+ Add inline text/html preview feature using w3. If
+`mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
+
+
+** `pgp-elkins' -> `pgp-mime'
+
+ Rename `pgp-elkins' -> `pgp-mime'. Variable
+`mime-edit-signing-type' and `mime-edit-encrypting-type' does not
+allow `pgp-elkins'.
+
+
+** type-subtype-score
+
+ Now MIME-View chooses one entity to display body in
+multipart/alternative. In this mechanism,
+`mime-view-type-subtype-score-alist' is used to specify priority of
+each entity.
+
+ Variable `mime-view-type-subtype-score-alist' is alist of
+TYPE-SUBTYPE vs. SCORE. TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
+symbol TYPE or t. TYPE and SUBTYPE are symbol. `t' means default.
+SCORE is integer. Larger number is larger priority.
+
+
+** text presentation
+
+ Change text presentation mechanism. In anything older than SEMI
+1.4, text presentation mechanism is based on filter model. However it
+has design problem about conversion between byte representation and
+text presentation. So SEMI was changed to use
+body-presentation-method to display text entity. In this purpose, old
+text decoding features were abolished and introduces news features
+(cf. next section).
+
+
+** mime-raw-representation-type and mime-raw-representation-type-alist
+
+ Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
+text presentation mechanism change (cf. previous section). Instead of
+it, SEMI introduces variable about representation-type of
+mime-raw-buffer. If it is `binary', mime-raw-buffer is as same as
+network representation. If it is `cooked', mime-raw-buffer is
+code-converted.
+
+ `mime-raw-representation-type-alist' is an alist of major-mode
+vs. representation-type. Each element looks like
+
+ (SYMBOL . REPRESENTATION-TYPE).
+
+SYMBOL is major-mode or t. t means default.
+
+ `mime-raw-representation-type' is a buffer local variable of
+mime-raw-buffer. If it is non-nil, it overrides
+`mime-raw-representation-type-alist'.
+
+ In addition, `mime-raw-buffer-coding-system-alist' was abolished.
+Because representation-type has enough information.
+
+\f
+* Changes in SEMI 1.4
+
+** mailcap
+
+ mailcap was supported to set up 'mime-acting-condition.
+
+ tm-external-method scripts written by born shell were abolished.
+
+
+** mime-add-condition
+
+ New function to set up 'mime-preview-condition and/or
+'mime-acting-condition.
+
+
+** signature setting in semi-setup.el
+
+ Abolish MUA depended signature setting.
+
+ Setting for mail-mode were moved to mail-mime-setup.el.
+
+\f
+* Changes in SEMI 1.3
+
+** mime-acting-condition
+
+ Format of variable 'mime-acting-condition was changed from `atype'
+to `condition tree'. Its format is as same as
+'mime-preview-condition.
+
+ If there are two or more conditions are found when matching, menu
+pops up to select method to run. Selected situation will be added to
+example database. (cf. mime-acting-situation-examples-file)
+
+** New variables
+
+*** mime-view-find-every-acting-situation
+
+ Find every available acting-situation if non-nil.
+
+*** mime-acting-situation-examples-file
+
+ File name of example about acting-situation demonstrated by
+ user.
+
+\f
+* Changes in SEMI 1.2
+
+** User setting
+
+*** hooks
+
+ 'mime-view-plain-text-preview-hook was renamed to
+'mime-preview-text/plain-hook.
+
+*** Variable
+
+ Variable 'mime-view-childrens-header-showing-Content-Type-list was
+abolished. Please use 'mime-preview-condition instead.
+
+*** API about visible-predicates were abolished
+
+ Following functions were abolished:
+
+ mime-view-header-visible-p (entity message-info)
+
+ mime-view-body-visible-p (entity message-info)
+
+ mime-view-entity-separator-visible-p (entity message-info)
+
+Please use 'mime-preview-condition instead.
+
+ Function 'mime-view-entity-button-visible-p is not abolished, but it
+is obsoleted.
+
+*** mime-preview-condition
+
+ Following are added as pre-defined keys:
+
+ 'childrens-situation default preview-situation for children
+ 'message-button to specify to display message-button
+ nil: default (invisible)
+ 'visible: visible
+ 'invisible: invisible
+ 'entity-button to specify to display entity-button
+ nil: default (visible)
+ 'visible: visible
+ 'invisible: invisible
+ 'header to specify to display header
+ nil: default (invisible)
+ 'visible: visible
+ 'invisible: invisible
+
+** API
+
+*** Interface for body-filter
+
+ 'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
+
+
+*** mime-text-decode-body
+
+ Function 'mime-decode-text-body was renamed to
+'mime-text-decode-body and changed interface. New interface is
+following:
+
+ mime-text-decode-body (SITUATION)
+
+SITUATION is preview-situation. Content-Transfer-Encoding and
+MIME-charset are specified in field of it.
+
\f
* Changes in SEMI 1.1
*** Setting variable about visible body
- `mime-view-visible-media-type-list' and
-`mime-view-content-filter-alist' were abolished. Please use
-`mime-preview-condition' instead.
+ 'mime-view-visible-media-type-list and
+'mime-view-content-filter-alist were abolished. Please use
+'mime-preview-condition instead.
- Notice that `mime-preview-condition' is not list of
+ Notice that 'mime-preview-condition is not list of
media-type/subtype string nor association-list. It uses new
data-structure `ctree' (condition-tree; it is introduced to replace
-`atype'). Function `ctree-set-calist-strictly' and
-`ctree-set-calist-with-default' may be useful to modify it (`calist'
+`atype'). Function 'ctree-set-calist-strictly and
+'ctree-set-calist-with-default may be useful to modify it (`calist'
(condition-alist) is as same as `atype').
*** entity representation
- Structure `mime-entity-info' was renamed to `mime-entity'. So
-various functions were renamed too.
+ Structure 'mime-entity-info was renamed to 'mime-entity. So various
+functions were renamed too.
-*** Interface for generators or filters for entity elements
+*** Interface for entity-button generators
- Interface of generators or filters for entity elements were changed.
-New interfaces are following:
+ Interface of entity-button generators was changed. New interfaces
+is following:
+
+ mime-view-insert-entity-button (entity message-info subject)
+
+
+*** mime-preview-condition and preview-situation
+
+ Conditions about preview generation are unified to
+'mime-preview-condition. Namely other variables, such as
+'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
+'mime-view-image-converter-alist were abolished.
+
+ Preview-situation is generated from entity information, running
+environment and 'mime-preview-condition. These elements are checked
+to match with each other. (it is similar to acting-situation)
+
+ Format of preview-situation is association-list. Following key is
+pre-defined:
+
+ 'type media-type
+ 'subtype media-subtype
+ 'encoding content-transfer-encoding
+ 'major-mode major-mode of MUA
+ <STRING> attribute of Content-Type field.
+ 'body-presentation-method body-presentation-method
+
+If 'body-presentation-method is 'with-filter, 'body-filter is used to
+specify body-filter function. If 'body-presentation-method is
+function, it is called to generate presentation of entity body.
+
+Body-filter function 'mime-view-filter-for-image refers 'image-format.
+
+Setting for message/partial button is specified by
+'mime-preview-condition instead of hard-coding.
+
+
+*** Interface for body-filter
+
+ Interface of body-filter was changed. New interfaces is following:
+
+ <body-filter> (situation)
+
+Current pre-defined filters are following:
+
+ mime-view-filter-for-text/plain (situation)
+ mime-view-filter-for-text/richtext (situation)
+ mime-view-filter-for-text/enriched (situation)
+ mime-view-filter-for-image (situation) ; if available
- mime-view-insert-entity-button (entity message-info subj)
+'mime-view-filter-for-application/postscript was abolished.
*** Format of mime-acting-condition (acting-situation)