1 SEMI NEWS --- history of major-changes.
2 Copyright (C) 1998,1999 Free Software Foundation, Inc.
6 ** PGP 5.0i and GnuPG are now supported for PGP/MIME
8 A user interface for editing or viewing has never changed. You can
9 select the various PGPGPG commands with `M-x mime-pgp-setversion' or
10 to setup your startup file, e.g.:
12 (eval-after-load "semi-setup" '(mime-pgp-setversion "gpg"))
14 Note that Mailcrypt 3.5.2 or later is needed for PGP 5.0i or GnuPG.
17 ** Function `mime-play-entity'
19 Function `mime-play-entity' was renamed from `mime-raw-play-entity'
20 and changed interface.
24 mime-play-entity (entity &optional situation ignored-method)
26 Please use `situation' if you would like to specify `mode' and
30 ** Now acting-method must not expect to run in raw-buffer
32 Function `mime-play-entity' was changed to permit to run in any buffer
33 (may be called in preview-buffer). So each acting-method is called in
38 * Changes in SEMI 1.12
40 There are no user-visible changes.
42 ** New function `eliminate-top-spaces'
47 * Changes in SEMI 1.11
49 ** New function `mime-edit-decode-message-in-buffer'
51 Add new function `mime-edit-decode-message-in-buffer'. Function
52 `mime-edit-decode-buffer' was abolished.
55 ** Requires FLIM 1.12 API
58 * Changes in SEMI 1.10
60 ** Abolish variable `mime-temp-directory'
62 FLIM 1.11 and SEMI 1.10 use variable `temporary-file-directory'
63 instead of `mime-temp-directory'. So environment variable
64 "MIME_TMP_DIR" and "TM_TMP_DIR" are not effective to specify temporary
65 directory of FLIM and SEMI.
68 ** Abolish function `mime-text-insert-decoded-body'
70 SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
71 instead of `mime-text-insert-decoded-body'.
73 Now `mime-view-caesar' does not run `mime-text-decode-hook'.
78 ** User option `mime-encoding-list'
80 SEMI 1.9 requires FLIM 1.10 API. In FLIM 1.10 API, variable
81 `mime-file-encoding-method-alist' was abolished. If you want to use
82 non-standard Content-Transfer-Encoding to insert a file into sending
83 message, please edit new user option `mime-encoding-list' instead of
84 `mime-file-encoding-method-alist'.
87 ** Constant `mime-user-interface-product'
89 Constant `mime-user-interface-version' was renamed to
90 `mime-user-interface-product'. Notice that data format is changed
93 FLIM 1.10 API provides following macros to access a slot of the new
96 mime-product-name (product)
98 mime-product-version (product)
100 mime-product-code-name (product)
102 Please use them to get elements of the constant
103 `mime-user-interface-product'.
106 * Changes in SEMI 1.8
108 ** Don't use "file" command to detect content of entity
110 Acting-method to detect content of entity was modified not to use
113 Variable `mime-file-content-type-alist' was abolished. Instead of
114 it, new variable `mime-magic-type-alist' is available to customize.
115 It is an alist of regexp about magic-number vs. corresponding
116 media-types. Each element looks like (REGEXP TYPE SUBTYPE). REGEXP
117 is a regular expression to match against the beginning of the content
118 of entity. TYPE is symbol to indicate primary type of media-type.
119 SUBTYPE is symbol to indicate subtype of media-type.
122 ** Abolish external X-Face viewer
125 ** Abolish obsolete utility for *-field-list and *-field-regexp
127 Abolish function `tm:set-fields', `tm:add-fields' and
131 ** Change MUA interface of automatic message/partial combining
133 Abolish variable `mime-view-partial-message-method-alist'.
135 Instead of it, `request-partial-message-method' in acting-situation
136 is available to specify MUA depended implementation.
138 Each element of `mime-view-partial-message-method-alist' were
139 required to display message at current summary line, and its return
140 value were ignored. On the other hand,
141 `request-partial-message-method' is required to return structure of
142 message at current summary line. Format of it is mime-entity.
147 MIME-Edit inserts User-Agent field instaed of X-Emacs field if
148 `mime-edit-insert-user-agent-field' is not nil. Contents of
149 User-Agent is specified by mime-edit-user-agent-value'.
151 X-Emacs field related features were abolished.
154 * Changes in SEMI 1.7
156 ** Header-presentation-method
158 Now MIME-View uses header-presentation-method instead of
161 - abolish variable `mime-view-content-header-filter-alist'
163 - abolish function `mime-view-cut-header'
165 - Rename `mime-view-content-header-filter-hook' to
166 `mime-display-header-hook'
169 ** Abolish `mime-view-ignored-field-regexp'
171 Now mime-view uses `mime-view-ignored-field-list' directly in
172 default header-presentation-method.
175 ** Abolish body filter support
177 Please use body-presentation-method.
182 - Rename `mime-view-following-method-alist' to
183 `mime-preview-following-method-alist'
185 - Rename `mime-method-to-combine-message/partial-pieces' to
186 `mime-combine-message/partial-pieces-automatically'
189 * Changes in SEMI 1.6
191 ** Abolish tm-compatible external method support
193 Abolish tm-compatible external method support. Please use mailcap
194 method instead of it.
197 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
199 C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
201 C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
205 ** New method to detect content of entity
207 Now MIME-View can detect content of entity for
208 application/octet-stream in default setting.
210 It uses "file" command to detect. User can customize
211 `mime-file-content-type-alist' to specify media-type for output of
212 "file" command. It is an alist of "file" output patterns
213 vs. corresponding media-types. Each element looks like (REGEXP TYPE
214 SUBTYPE). REGEXP is pattern for "file" command output. TYPE is
215 symbol to indicate primary type of media-type. SUBTYPE is symbol to
216 indicate subtype of media-type.
219 ** New interface to display message
221 - Function `mime-view-buffer'
222 - Function `mime-view-display-message'
225 ** Change interface of internal playback method
227 Interface of internal playback method was changed to
231 It is as same as interface of body-presentation-method.
234 ** Change interface of `mime-view-entity-button-visible-p'
236 ** Change interface of `mime-view-insert-entity-button'
239 ** `mime-preview-original-major-mode'
241 Abolish variable `mime-preview-original-major-mode'.
243 Please use function `mime-preview-original-major-mode' instead of
247 ** mime-preview-over-to-{previous|next}-method-alist
249 `mime-preview-over-to-{previous|next}-method-alist' were renamed
250 from `mime-view-over-to-{previous|next}-method-alist'.
253 * Changes in SEMI 1.5
257 Add inline text/html preview feature using w3. If
258 `mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
261 ** `pgp-elkins' -> `pgp-mime'
263 Rename `pgp-elkins' -> `pgp-mime'. Variable
264 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
268 ** type-subtype-score
270 Now MIME-View chooses one entity to display body in
271 multipart/alternative. In this mechanism,
272 `mime-view-type-subtype-score-alist' is used to specify priority of
275 Variable `mime-view-type-subtype-score-alist' is alist of
276 TYPE-SUBTYPE vs. SCORE. TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
277 symbol TYPE or t. TYPE and SUBTYPE are symbol. `t' means default.
278 SCORE is integer. Larger number is larger priority.
283 Change text presentation mechanism. In anything older than SEMI
284 1.4, text presentation mechanism is based on filter model. However it
285 has design problem about conversion between byte representation and
286 text presentation. So SEMI was changed to use
287 body-presentation-method to display text entity. In this purpose, old
288 text decoding features were abolished and introduces news features
292 ** mime-raw-representation-type and mime-raw-representation-type-alist
294 Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
295 text presentation mechanism change (cf. previous section). Instead of
296 it, SEMI introduces variable about representation-type of
297 mime-raw-buffer. If it is `binary', mime-raw-buffer is as same as
298 network representation. If it is `cooked', mime-raw-buffer is
301 `mime-raw-representation-type-alist' is an alist of major-mode
302 vs. representation-type. Each element looks like
304 (SYMBOL . REPRESENTATION-TYPE).
306 SYMBOL is major-mode or t. t means default.
308 `mime-raw-representation-type' is a buffer local variable of
309 mime-raw-buffer. If it is non-nil, it overrides
310 `mime-raw-representation-type-alist'.
312 In addition, `mime-raw-buffer-coding-system-alist' was abolished.
313 Because representation-type has enough information.
316 * Changes in SEMI 1.4
320 mailcap was supported to set up 'mime-acting-condition.
322 tm-external-method scripts written by born shell were abolished.
325 ** mime-add-condition
327 New function to set up 'mime-preview-condition and/or
328 'mime-acting-condition.
331 ** signature setting in semi-setup.el
333 Abolish MUA depended signature setting.
335 Setting for mail-mode were moved to mail-mime-setup.el.
338 * Changes in SEMI 1.3
340 ** mime-acting-condition
342 Format of variable 'mime-acting-condition was changed from `atype'
343 to `condition tree'. Its format is as same as
344 'mime-preview-condition.
346 If there are two or more conditions are found when matching, menu
347 pops up to select method to run. Selected situation will be added to
348 example database. (cf. mime-acting-situation-examples-file)
352 *** mime-view-find-every-acting-situation
354 Find every available acting-situation if non-nil.
356 *** mime-acting-situation-examples-file
358 File name of example about acting-situation demonstrated by
362 * Changes in SEMI 1.2
368 'mime-view-plain-text-preview-hook was renamed to
369 'mime-preview-text/plain-hook.
373 Variable 'mime-view-childrens-header-showing-Content-Type-list was
374 abolished. Please use 'mime-preview-condition instead.
376 *** API about visible-predicates were abolished
378 Following functions were abolished:
380 mime-view-header-visible-p (entity message-info)
382 mime-view-body-visible-p (entity message-info)
384 mime-view-entity-separator-visible-p (entity message-info)
386 Please use 'mime-preview-condition instead.
388 Function 'mime-view-entity-button-visible-p is not abolished, but it
391 *** mime-preview-condition
393 Following are added as pre-defined keys:
395 'childrens-situation default preview-situation for children
396 'message-button to specify to display message-button
397 nil: default (invisible)
399 'invisible: invisible
400 'entity-button to specify to display entity-button
401 nil: default (visible)
403 'invisible: invisible
404 'header to specify to display header
405 nil: default (invisible)
407 'invisible: invisible
411 *** Interface for body-filter
413 'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
416 *** mime-text-decode-body
418 Function 'mime-decode-text-body was renamed to
419 'mime-text-decode-body and changed interface. New interface is
422 mime-text-decode-body (SITUATION)
424 SITUATION is preview-situation. Content-Transfer-Encoding and
425 MIME-charset are specified in field of it.
428 * Changes in SEMI 1.1
432 *** Setting variable about visible body
434 'mime-view-visible-media-type-list and
435 'mime-view-content-filter-alist were abolished. Please use
436 'mime-preview-condition instead.
438 Notice that 'mime-preview-condition is not list of
439 media-type/subtype string nor association-list. It uses new
440 data-structure `ctree' (condition-tree; it is introduced to replace
441 `atype'). Function 'ctree-set-calist-strictly and
442 'ctree-set-calist-with-default may be useful to modify it (`calist'
443 (condition-alist) is as same as `atype').
446 *** API about visible-predicates
448 Interface of visible-predicates for entity elements were changed.
449 New interfaces are following:
451 mime-view-entity-button-visible-p (entity message-info)
453 mime-view-header-visible-p (entity message-info)
455 mime-view-body-visible-p (entity message-info)
457 mime-view-entity-separator-visible-p (entity message-info)
462 *** entity representation
464 Structure 'mime-entity-info was renamed to 'mime-entity. So various
465 functions were renamed too.
468 *** Interface for entity-button generators
470 Interface of entity-button generators was changed. New interfaces
473 mime-view-insert-entity-button (entity message-info subject)
476 *** mime-preview-condition and preview-situation
478 Conditions about preview generation are unified to
479 'mime-preview-condition. Namely other variables, such as
480 'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
481 'mime-view-image-converter-alist were abolished.
483 Preview-situation is generated from entity information, running
484 environment and 'mime-preview-condition. These elements are checked
485 to match with each other. (it is similar to acting-situation)
487 Format of preview-situation is association-list. Following key is
491 'subtype media-subtype
492 'encoding content-transfer-encoding
493 'major-mode major-mode of MUA
494 <STRING> attribute of Content-Type field.
495 'body-presentation-method body-presentation-method
497 If 'body-presentation-method is 'with-filter, 'body-filter is used to
498 specify body-filter function. If 'body-presentation-method is
499 function, it is called to generate presentation of entity body.
501 Body-filter function 'mime-view-filter-for-image refers 'image-format.
503 Setting for message/partial button is specified by
504 'mime-preview-condition instead of hard-coding.
507 *** Interface for body-filter
509 Interface of body-filter was changed. New interfaces is following:
511 <body-filter> (situation)
513 Current pre-defined filters are following:
515 mime-view-filter-for-text/plain (situation)
516 mime-view-filter-for-text/richtext (situation)
517 mime-view-filter-for-text/enriched (situation)
518 mime-view-filter-for-image (situation) ; if available
520 'mime-view-filter-for-application/postscript was abolished.
523 *** Format of mime-acting-condition (acting-situation)
525 Format of `mime-acting-condition' were changed. `type' and
526 `subtype' are separated and changed to symbol.
531 - mime-view-buffer -> mime-preview-buffer
536 paragraph-separate: "[
\f]*$"