Update copyright header.
[elisp/semi.git] / NEWS
diff --git a/NEWS b/NEWS
index b8afad2..eaebaeb 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,471 @@
 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
 
@@ -7,15 +473,16 @@ Copyright (C) 1998 Free Software Foundation, Inc.
 
 *** Setting variable about visible body
 
-  `mime-view-visible-media-type-list' was abolished.  Please use
-`mime-view-body-visible-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-view-body-visible-condition' is not list of
-media-type/subtype string.  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' (condition-alist) is as same as
-`atype').
+  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'
+(condition-alist) is as same as `atype').
 
 
 *** API about visible-predicates
@@ -36,16 +503,63 @@ New interfaces are following:
 
 *** 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)