1 SEMI NEWS --- history of major-changes.
2 Copyright (C) 1998 Free Software Foundation, Inc.
6 ** Abolish variable `mime-temp-directory'
8 FLIM 1.11 and SEMI 1.10 use variable `temporary-file-directory'
9 instead of `mime-temp-directory'. So environment variable
10 "MIME_TMP_DIR" and "TM_TMP_DIR" are not effective to specify temporary
11 directory of FLIM and SEMI.
14 ** Abolish function `mime-text-insert-decoded-body'
16 SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
17 instead of `mime-text-insert-decoded-body'.
19 Now `mime-view-caesar' does not run `mime-text-decode-hook'.
24 ** User option `mime-encoding-list'
26 SEMI 1.9 requires FLIM 1.10 API. In FLIM 1.10 API, variable
27 `mime-file-encoding-method-alist' was abolished. If you want to use
28 non-standard Content-Transfer-Encoding to insert a file into sending
29 message, please edit new user option `mime-encoding-list' instead of
30 `mime-file-encoding-method-alist'.
33 ** Constant `mime-user-interface-product'
35 Constant `mime-user-interface-version' was renamed to
36 `mime-user-interface-product'. Notice that data format is changed
39 FLIM 1.10 API provides following macros to access a slot of the new
42 mime-product-name (product)
44 mime-product-version (product)
46 mime-product-code-name (product)
48 Please use them to get elements of the constant
49 `mime-user-interface-product'.
54 ** Don't use "file" command to detect content of entity
56 Acting-method to detect content of entity was modified not to use
59 Variable `mime-file-content-type-alist' was abolished. Instead of
60 it, new variable `mime-magic-type-alist' is available to customize.
61 It is an alist of regexp about magic-number vs. corresponding
62 media-types. Each element looks like (REGEXP TYPE SUBTYPE). REGEXP
63 is a regular expression to match against the beginning of the content
64 of entity. TYPE is symbol to indicate primary type of media-type.
65 SUBTYPE is symbol to indicate subtype of media-type.
68 ** Abolish external X-Face viewer
71 ** Abolish obsolete utility for *-field-list and *-field-regexp
73 Abolish function `tm:set-fields', `tm:add-fields' and
77 ** Change MUA interface of automatic message/partial combining
79 Abolish variable `mime-view-partial-message-method-alist'.
81 Instead of it, `request-partial-message-method' in acting-situation
82 is available to specify MUA depended implementation.
84 Each element of `mime-view-partial-message-method-alist' were
85 required to display message at current summary line, and its return
86 value were ignored. On the other hand,
87 `request-partial-message-method' is required to return structure of
88 message at current summary line. Format of it is mime-entity.
93 MIME-Edit inserts User-Agent field instaed of X-Emacs field if
94 `mime-edit-insert-user-agent-field' is not nil. Contents of
95 User-Agent is specified by mime-edit-user-agent-value'.
97 X-Emacs field related features were abolished.
100 * Changes in SEMI 1.7
102 ** Header-presentation-method
104 Now MIME-View uses header-presentation-method instead of
107 - abolish variable `mime-view-content-header-filter-alist'
109 - abolish function `mime-view-cut-header'
111 - Rename `mime-view-content-header-filter-hook' to
112 `mime-display-header-hook'
115 ** Abolish `mime-view-ignored-field-regexp'
117 Now mime-view uses `mime-view-ignored-field-list' directly in
118 default header-presentation-method.
121 ** Abolish body filter support
123 Please use body-presentation-method.
128 - Rename `mime-view-following-method-alist' to
129 `mime-preview-following-method-alist'
131 - Rename `mime-method-to-combine-message/partial-pieces' to
132 `mime-combine-message/partial-pieces-automatically'
135 * Changes in SEMI 1.6
137 ** Abolish tm-compatible external method support
139 Abolish tm-compatible external method support. Please use mailcap
140 method instead of it.
143 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
145 C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
147 C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
151 ** New method to detect content of entity
153 Now MIME-View can detect content of entity for
154 application/octet-stream in default setting.
156 It uses "file" command to detect. User can customize
157 `mime-file-content-type-alist' to specify media-type for output of
158 "file" command. It is an alist of "file" output patterns
159 vs. corresponding media-types. Each element looks like (REGEXP TYPE
160 SUBTYPE). REGEXP is pattern for "file" command output. TYPE is
161 symbol to indicate primary type of media-type. SUBTYPE is symbol to
162 indicate subtype of media-type.
165 ** New interface to display message
167 - Function `mime-view-buffer'
168 - Function `mime-view-display-message'
171 ** Change interface of internal playback method
173 Interface of internal playback method was changed to
177 It is as same as interface of body-presentation-method.
180 ** Change interface of `mime-view-entity-button-visible-p'
182 ** Change interface of `mime-view-insert-entity-button'
185 ** `mime-preview-original-major-mode'
187 Abolish variable `mime-preview-original-major-mode'.
189 Please use function `mime-preview-original-major-mode' instead of
193 ** mime-preview-over-to-{previous|next}-method-alist
195 `mime-preview-over-to-{previous|next}-method-alist' were renamed
196 from `mime-view-over-to-{previous|next}-method-alist'.
199 * Changes in SEMI 1.5
203 Add inline text/html preview feature using w3. If
204 `mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
207 ** `pgp-elkins' -> `pgp-mime'
209 Rename `pgp-elkins' -> `pgp-mime'. Variable
210 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
214 ** type-subtype-score
216 Now MIME-View chooses one entity to display body in
217 multipart/alternative. In this mechanism,
218 `mime-view-type-subtype-score-alist' is used to specify priority of
221 Variable `mime-view-type-subtype-score-alist' is alist of
222 TYPE-SUBTYPE vs. SCORE. TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
223 symbol TYPE or t. TYPE and SUBTYPE are symbol. `t' means default.
224 SCORE is integer. Larger number is larger priority.
229 Change text presentation mechanism. In anything older than SEMI
230 1.4, text presentation mechanism is based on filter model. However it
231 has design problem about conversion between byte representation and
232 text presentation. So SEMI was changed to use
233 body-presentation-method to display text entity. In this purpose, old
234 text decoding features were abolished and introduces news features
238 ** mime-raw-representation-type and mime-raw-representation-type-alist
240 Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
241 text presentation mechanism change (cf. previous section). Instead of
242 it, SEMI introduces variable about representation-type of
243 mime-raw-buffer. If it is `binary', mime-raw-buffer is as same as
244 network representation. If it is `cooked', mime-raw-buffer is
247 `mime-raw-representation-type-alist' is an alist of major-mode
248 vs. representation-type. Each element looks like
250 (SYMBOL . REPRESENTATION-TYPE).
252 SYMBOL is major-mode or t. t means default.
254 `mime-raw-representation-type' is a buffer local variable of
255 mime-raw-buffer. If it is non-nil, it overrides
256 `mime-raw-representation-type-alist'.
258 In addition, `mime-raw-buffer-coding-system-alist' was abolished.
259 Because representation-type has enough information.
262 * Changes in SEMI 1.4
266 mailcap was supported to set up 'mime-acting-condition.
268 tm-external-method scripts written by born shell were abolished.
271 ** mime-add-condition
273 New function to set up 'mime-preview-condition and/or
274 'mime-acting-condition.
277 ** signature setting in semi-setup.el
279 Abolish MUA depended signature setting.
281 Setting for mail-mode were moved to mail-mime-setup.el.
284 * Changes in SEMI 1.3
286 ** mime-acting-condition
288 Format of variable 'mime-acting-condition was changed from `atype'
289 to `condition tree'. Its format is as same as
290 'mime-preview-condition.
292 If there are two or more conditions are found when matching, menu
293 pops up to select method to run. Selected situation will be added to
294 example database. (cf. mime-acting-situation-examples-file)
298 *** mime-view-find-every-acting-situation
300 Find every available acting-situation if non-nil.
302 *** mime-acting-situation-examples-file
304 File name of example about acting-situation demonstrated by
308 * Changes in SEMI 1.2
314 'mime-view-plain-text-preview-hook was renamed to
315 'mime-preview-text/plain-hook.
319 Variable 'mime-view-childrens-header-showing-Content-Type-list was
320 abolished. Please use 'mime-preview-condition instead.
322 *** API about visible-predicates were abolished
324 Following functions were abolished:
326 mime-view-header-visible-p (entity message-info)
328 mime-view-body-visible-p (entity message-info)
330 mime-view-entity-separator-visible-p (entity message-info)
332 Please use 'mime-preview-condition instead.
334 Function 'mime-view-entity-button-visible-p is not abolished, but it
337 *** mime-preview-condition
339 Following are added as pre-defined keys:
341 'childrens-situation default preview-situation for children
342 'message-button to specify to display message-button
343 nil: default (invisible)
345 'invisible: invisible
346 'entity-button to specify to display entity-button
347 nil: default (visible)
349 'invisible: invisible
350 'header to specify to display header
351 nil: default (invisible)
353 'invisible: invisible
357 *** Interface for body-filter
359 'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
362 *** mime-text-decode-body
364 Function 'mime-decode-text-body was renamed to
365 'mime-text-decode-body and changed interface. New interface is
368 mime-text-decode-body (SITUATION)
370 SITUATION is preview-situation. Content-Transfer-Encoding and
371 MIME-charset are specified in field of it.
374 * Changes in SEMI 1.1
378 *** Setting variable about visible body
380 'mime-view-visible-media-type-list and
381 'mime-view-content-filter-alist were abolished. Please use
382 'mime-preview-condition instead.
384 Notice that 'mime-preview-condition is not list of
385 media-type/subtype string nor association-list. It uses new
386 data-structure `ctree' (condition-tree; it is introduced to replace
387 `atype'). Function 'ctree-set-calist-strictly and
388 'ctree-set-calist-with-default may be useful to modify it (`calist'
389 (condition-alist) is as same as `atype').
392 *** API about visible-predicates
394 Interface of visible-predicates for entity elements were changed.
395 New interfaces are following:
397 mime-view-entity-button-visible-p (entity message-info)
399 mime-view-header-visible-p (entity message-info)
401 mime-view-body-visible-p (entity message-info)
403 mime-view-entity-separator-visible-p (entity message-info)
408 *** entity representation
410 Structure 'mime-entity-info was renamed to 'mime-entity. So various
411 functions were renamed too.
414 *** Interface for entity-button generators
416 Interface of entity-button generators was changed. New interfaces
419 mime-view-insert-entity-button (entity message-info subject)
422 *** mime-preview-condition and preview-situation
424 Conditions about preview generation are unified to
425 'mime-preview-condition. Namely other variables, such as
426 'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
427 'mime-view-image-converter-alist were abolished.
429 Preview-situation is generated from entity information, running
430 environment and 'mime-preview-condition. These elements are checked
431 to match with each other. (it is similar to acting-situation)
433 Format of preview-situation is association-list. Following key is
437 'subtype media-subtype
438 'encoding content-transfer-encoding
439 'major-mode major-mode of MUA
440 <STRING> attribute of Content-Type field.
441 'body-presentation-method body-presentation-method
443 If 'body-presentation-method is 'with-filter, 'body-filter is used to
444 specify body-filter function. If 'body-presentation-method is
445 function, it is called to generate presentation of entity body.
447 Body-filter function 'mime-view-filter-for-image refers 'image-format.
449 Setting for message/partial button is specified by
450 'mime-preview-condition instead of hard-coding.
453 *** Interface for body-filter
455 Interface of body-filter was changed. New interfaces is following:
457 <body-filter> (situation)
459 Current pre-defined filters are following:
461 mime-view-filter-for-text/plain (situation)
462 mime-view-filter-for-text/richtext (situation)
463 mime-view-filter-for-text/enriched (situation)
464 mime-view-filter-for-image (situation) ; if available
466 'mime-view-filter-for-application/postscript was abolished.
469 *** Format of mime-acting-condition (acting-situation)
471 Format of `mime-acting-condition' were changed. `type' and
472 `subtype' are separated and changed to symbol.
477 - mime-view-buffer -> mime-preview-buffer
482 paragraph-separate: "[
\f]*$"