1 SEMI NEWS --- history of major-changes.
2 Copyright (C) 1998 Free Software Foundation, Inc.
6 ** New function `mime-edit-decode-message-in-buffer'
8 Add new function `mime-edit-decode-message-in-buffer'. Function
9 `mime-edit-decode-buffer' was abolished.
12 ** Requires FLIM 1.12 API
15 * Changes in SEMI 1.10
17 ** Abolish variable `mime-temp-directory'
19 FLIM 1.11 and SEMI 1.10 use variable `temporary-file-directory'
20 instead of `mime-temp-directory'. So environment variable
21 "MIME_TMP_DIR" and "TM_TMP_DIR" are not effective to specify temporary
22 directory of FLIM and SEMI.
25 ** Abolish function `mime-text-insert-decoded-body'
27 SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
28 instead of `mime-text-insert-decoded-body'.
30 Now `mime-view-caesar' does not run `mime-text-decode-hook'.
35 ** User option `mime-encoding-list'
37 SEMI 1.9 requires FLIM 1.10 API. In FLIM 1.10 API, variable
38 `mime-file-encoding-method-alist' was abolished. If you want to use
39 non-standard Content-Transfer-Encoding to insert a file into sending
40 message, please edit new user option `mime-encoding-list' instead of
41 `mime-file-encoding-method-alist'.
44 ** Constant `mime-user-interface-product'
46 Constant `mime-user-interface-version' was renamed to
47 `mime-user-interface-product'. Notice that data format is changed
50 FLIM 1.10 API provides following macros to access a slot of the new
53 mime-product-name (product)
55 mime-product-version (product)
57 mime-product-code-name (product)
59 Please use them to get elements of the constant
60 `mime-user-interface-product'.
65 ** Don't use "file" command to detect content of entity
67 Acting-method to detect content of entity was modified not to use
70 Variable `mime-file-content-type-alist' was abolished. Instead of
71 it, new variable `mime-magic-type-alist' is available to customize.
72 It is an alist of regexp about magic-number vs. corresponding
73 media-types. Each element looks like (REGEXP TYPE SUBTYPE). REGEXP
74 is a regular expression to match against the beginning of the content
75 of entity. TYPE is symbol to indicate primary type of media-type.
76 SUBTYPE is symbol to indicate subtype of media-type.
79 ** Abolish external X-Face viewer
82 ** Abolish obsolete utility for *-field-list and *-field-regexp
84 Abolish function `tm:set-fields', `tm:add-fields' and
88 ** Change MUA interface of automatic message/partial combining
90 Abolish variable `mime-view-partial-message-method-alist'.
92 Instead of it, `request-partial-message-method' in acting-situation
93 is available to specify MUA depended implementation.
95 Each element of `mime-view-partial-message-method-alist' were
96 required to display message at current summary line, and its return
97 value were ignored. On the other hand,
98 `request-partial-message-method' is required to return structure of
99 message at current summary line. Format of it is mime-entity.
104 MIME-Edit inserts User-Agent field instaed of X-Emacs field if
105 `mime-edit-insert-user-agent-field' is not nil. Contents of
106 User-Agent is specified by mime-edit-user-agent-value'.
108 X-Emacs field related features were abolished.
111 * Changes in SEMI 1.7
113 ** Header-presentation-method
115 Now MIME-View uses header-presentation-method instead of
118 - abolish variable `mime-view-content-header-filter-alist'
120 - abolish function `mime-view-cut-header'
122 - Rename `mime-view-content-header-filter-hook' to
123 `mime-display-header-hook'
126 ** Abolish `mime-view-ignored-field-regexp'
128 Now mime-view uses `mime-view-ignored-field-list' directly in
129 default header-presentation-method.
132 ** Abolish body filter support
134 Please use body-presentation-method.
139 - Rename `mime-view-following-method-alist' to
140 `mime-preview-following-method-alist'
142 - Rename `mime-method-to-combine-message/partial-pieces' to
143 `mime-combine-message/partial-pieces-automatically'
146 * Changes in SEMI 1.6
148 ** Abolish tm-compatible external method support
150 Abolish tm-compatible external method support. Please use mailcap
151 method instead of it.
154 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
156 C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
158 C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
162 ** New method to detect content of entity
164 Now MIME-View can detect content of entity for
165 application/octet-stream in default setting.
167 It uses "file" command to detect. User can customize
168 `mime-file-content-type-alist' to specify media-type for output of
169 "file" command. It is an alist of "file" output patterns
170 vs. corresponding media-types. Each element looks like (REGEXP TYPE
171 SUBTYPE). REGEXP is pattern for "file" command output. TYPE is
172 symbol to indicate primary type of media-type. SUBTYPE is symbol to
173 indicate subtype of media-type.
176 ** New interface to display message
178 - Function `mime-view-buffer'
179 - Function `mime-view-display-message'
182 ** Change interface of internal playback method
184 Interface of internal playback method was changed to
188 It is as same as interface of body-presentation-method.
191 ** Change interface of `mime-view-entity-button-visible-p'
193 ** Change interface of `mime-view-insert-entity-button'
196 ** `mime-preview-original-major-mode'
198 Abolish variable `mime-preview-original-major-mode'.
200 Please use function `mime-preview-original-major-mode' instead of
204 ** mime-preview-over-to-{previous|next}-method-alist
206 `mime-preview-over-to-{previous|next}-method-alist' were renamed
207 from `mime-view-over-to-{previous|next}-method-alist'.
210 * Changes in SEMI 1.5
214 Add inline text/html preview feature using w3. If
215 `mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
218 ** `pgp-elkins' -> `pgp-mime'
220 Rename `pgp-elkins' -> `pgp-mime'. Variable
221 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
225 ** type-subtype-score
227 Now MIME-View chooses one entity to display body in
228 multipart/alternative. In this mechanism,
229 `mime-view-type-subtype-score-alist' is used to specify priority of
232 Variable `mime-view-type-subtype-score-alist' is alist of
233 TYPE-SUBTYPE vs. SCORE. TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
234 symbol TYPE or t. TYPE and SUBTYPE are symbol. `t' means default.
235 SCORE is integer. Larger number is larger priority.
240 Change text presentation mechanism. In anything older than SEMI
241 1.4, text presentation mechanism is based on filter model. However it
242 has design problem about conversion between byte representation and
243 text presentation. So SEMI was changed to use
244 body-presentation-method to display text entity. In this purpose, old
245 text decoding features were abolished and introduces news features
249 ** mime-raw-representation-type and mime-raw-representation-type-alist
251 Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
252 text presentation mechanism change (cf. previous section). Instead of
253 it, SEMI introduces variable about representation-type of
254 mime-raw-buffer. If it is `binary', mime-raw-buffer is as same as
255 network representation. If it is `cooked', mime-raw-buffer is
258 `mime-raw-representation-type-alist' is an alist of major-mode
259 vs. representation-type. Each element looks like
261 (SYMBOL . REPRESENTATION-TYPE).
263 SYMBOL is major-mode or t. t means default.
265 `mime-raw-representation-type' is a buffer local variable of
266 mime-raw-buffer. If it is non-nil, it overrides
267 `mime-raw-representation-type-alist'.
269 In addition, `mime-raw-buffer-coding-system-alist' was abolished.
270 Because representation-type has enough information.
273 * Changes in SEMI 1.4
277 mailcap was supported to set up 'mime-acting-condition.
279 tm-external-method scripts written by born shell were abolished.
282 ** mime-add-condition
284 New function to set up 'mime-preview-condition and/or
285 'mime-acting-condition.
288 ** signature setting in semi-setup.el
290 Abolish MUA depended signature setting.
292 Setting for mail-mode were moved to mail-mime-setup.el.
295 * Changes in SEMI 1.3
297 ** mime-acting-condition
299 Format of variable 'mime-acting-condition was changed from `atype'
300 to `condition tree'. Its format is as same as
301 'mime-preview-condition.
303 If there are two or more conditions are found when matching, menu
304 pops up to select method to run. Selected situation will be added to
305 example database. (cf. mime-acting-situation-examples-file)
309 *** mime-view-find-every-acting-situation
311 Find every available acting-situation if non-nil.
313 *** mime-acting-situation-examples-file
315 File name of example about acting-situation demonstrated by
319 * Changes in SEMI 1.2
325 'mime-view-plain-text-preview-hook was renamed to
326 'mime-preview-text/plain-hook.
330 Variable 'mime-view-childrens-header-showing-Content-Type-list was
331 abolished. Please use 'mime-preview-condition instead.
333 *** API about visible-predicates were abolished
335 Following functions were abolished:
337 mime-view-header-visible-p (entity message-info)
339 mime-view-body-visible-p (entity message-info)
341 mime-view-entity-separator-visible-p (entity message-info)
343 Please use 'mime-preview-condition instead.
345 Function 'mime-view-entity-button-visible-p is not abolished, but it
348 *** mime-preview-condition
350 Following are added as pre-defined keys:
352 'childrens-situation default preview-situation for children
353 'message-button to specify to display message-button
354 nil: default (invisible)
356 'invisible: invisible
357 'entity-button to specify to display entity-button
358 nil: default (visible)
360 'invisible: invisible
361 'header to specify to display header
362 nil: default (invisible)
364 'invisible: invisible
368 *** Interface for body-filter
370 'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
373 *** mime-text-decode-body
375 Function 'mime-decode-text-body was renamed to
376 'mime-text-decode-body and changed interface. New interface is
379 mime-text-decode-body (SITUATION)
381 SITUATION is preview-situation. Content-Transfer-Encoding and
382 MIME-charset are specified in field of it.
385 * Changes in SEMI 1.1
389 *** Setting variable about visible body
391 'mime-view-visible-media-type-list and
392 'mime-view-content-filter-alist were abolished. Please use
393 'mime-preview-condition instead.
395 Notice that 'mime-preview-condition is not list of
396 media-type/subtype string nor association-list. It uses new
397 data-structure `ctree' (condition-tree; it is introduced to replace
398 `atype'). Function 'ctree-set-calist-strictly and
399 'ctree-set-calist-with-default may be useful to modify it (`calist'
400 (condition-alist) is as same as `atype').
403 *** API about visible-predicates
405 Interface of visible-predicates for entity elements were changed.
406 New interfaces are following:
408 mime-view-entity-button-visible-p (entity message-info)
410 mime-view-header-visible-p (entity message-info)
412 mime-view-body-visible-p (entity message-info)
414 mime-view-entity-separator-visible-p (entity message-info)
419 *** entity representation
421 Structure 'mime-entity-info was renamed to 'mime-entity. So various
422 functions were renamed too.
425 *** Interface for entity-button generators
427 Interface of entity-button generators was changed. New interfaces
430 mime-view-insert-entity-button (entity message-info subject)
433 *** mime-preview-condition and preview-situation
435 Conditions about preview generation are unified to
436 'mime-preview-condition. Namely other variables, such as
437 'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
438 'mime-view-image-converter-alist were abolished.
440 Preview-situation is generated from entity information, running
441 environment and 'mime-preview-condition. These elements are checked
442 to match with each other. (it is similar to acting-situation)
444 Format of preview-situation is association-list. Following key is
448 'subtype media-subtype
449 'encoding content-transfer-encoding
450 'major-mode major-mode of MUA
451 <STRING> attribute of Content-Type field.
452 'body-presentation-method body-presentation-method
454 If 'body-presentation-method is 'with-filter, 'body-filter is used to
455 specify body-filter function. If 'body-presentation-method is
456 function, it is called to generate presentation of entity body.
458 Body-filter function 'mime-view-filter-for-image refers 'image-format.
460 Setting for message/partial button is specified by
461 'mime-preview-condition instead of hard-coding.
464 *** Interface for body-filter
466 Interface of body-filter was changed. New interfaces is following:
468 <body-filter> (situation)
470 Current pre-defined filters are following:
472 mime-view-filter-for-text/plain (situation)
473 mime-view-filter-for-text/richtext (situation)
474 mime-view-filter-for-text/enriched (situation)
475 mime-view-filter-for-image (situation) ; if available
477 'mime-view-filter-for-application/postscript was abolished.
480 *** Format of mime-acting-condition (acting-situation)
482 Format of `mime-acting-condition' were changed. `type' and
483 `subtype' are separated and changed to symbol.
488 - mime-view-buffer -> mime-preview-buffer
493 paragraph-separate: "[
\f]*$"