1 SEMI NEWS --- history of major-changes.
2 Copyright (C) 1998 Free Software Foundation, Inc.
6 ** Don't use "file" command to detect content of entity
8 Acting-method to detect content of entity was modified not to use
11 Variable `mime-file-content-type-alist' was abolished. Instead of
12 it, new variable `mime-magic-type-alist' is available to customize.
13 It is an alist of regexp about magic-number vs. corresponding
14 media-types. Each element looks like (REGEXP TYPE SUBTYPE). REGEXP
15 is a regular expression to match against the beginning of the content
16 of entity. TYPE is symbol to indicate primary type of media-type.
17 SUBTYPE is symbol to indicate subtype of media-type.
20 ** Abolish external X-Face viewer
23 ** Abolish obsolete utility for *-field-list and *-field-regexp
25 Abolish function `tm:set-fields', `tm:add-fields' and
29 ** Change MUA interface of automatic message/partial combining
31 Abolish variable `mime-view-partial-message-method-alist'.
33 Instead of it, `request-partial-message-method' in acting-situation
34 is available to specify MUA depended implementation.
36 Each element of `mime-view-partial-message-method-alist' were
37 required to display message at current summary line, and its return
38 value were ignored. On the other hand,
39 `request-partial-message-method' is required to return structure of
40 message at current summary line. Format of it is mime-entity.
45 ** Header-presentation-method
47 Now MIME-View uses header-presentation-method instead of
50 - abolish variable `mime-view-content-header-filter-alist'
52 - abolish function `mime-view-cut-header'
54 - Rename `mime-view-content-header-filter-hook' to
55 `mime-display-header-hook'
58 ** Abolish `mime-view-ignored-field-regexp'
60 Now mime-view uses `mime-view-ignored-field-list' directly in
61 default header-presentation-method.
64 ** Abolish body filter support
66 Please use body-presentation-method.
71 - Rename `mime-view-following-method-alist' to
72 `mime-preview-following-method-alist'
74 - Rename `mime-method-to-combine-message/partial-pieces' to
75 `mime-combine-message/partial-pieces-automatically'
80 ** Abolish tm-compatible external method support
82 Abolish tm-compatible external method support. Please use mailcap
86 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
88 C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
90 C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
94 ** New method to detect content of entity
96 Now MIME-View can detect content of entity for
97 application/octet-stream in default setting.
99 It uses "file" command to detect. User can customize
100 `mime-file-content-type-alist' to specify media-type for output of
101 "file" command. It is an alist of "file" output patterns
102 vs. corresponding media-types. Each element looks like (REGEXP TYPE
103 SUBTYPE). REGEXP is pattern for "file" command output. TYPE is
104 symbol to indicate primary type of media-type. SUBTYPE is symbol to
105 indicate subtype of media-type.
108 ** New interface to display message
110 - Function `mime-view-buffer'
111 - Function `mime-view-display-message'
114 ** Change interface of internal playback method
116 Interface of internal playback method was changed to
120 It is as same as interface of body-presentation-method.
123 ** Change interface of `mime-view-entity-button-visible-p'
125 ** Change interface of `mime-view-insert-entity-button'
128 ** `mime-preview-original-major-mode'
130 Abolish variable `mime-preview-original-major-mode'.
132 Please use function `mime-preview-original-major-mode' instead of
136 ** mime-preview-over-to-{previous|next}-method-alist
138 `mime-preview-over-to-{previous|next}-method-alist' were renamed
139 from `mime-view-over-to-{previous|next}-method-alist'.
142 * Changes in SEMI 1.5
146 Add inline text/html preview feature using w3. If
147 `mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
150 ** `pgp-elkins' -> `pgp-mime'
152 Rename `pgp-elkins' -> `pgp-mime'. Variable
153 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
157 ** type-subtype-score
159 Now MIME-View chooses one entity to display body in
160 multipart/alternative. In this mechanism,
161 `mime-view-type-subtype-score-alist' is used to specify priority of
164 Variable `mime-view-type-subtype-score-alist' is alist of
165 TYPE-SUBTYPE vs. SCORE. TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
166 symbol TYPE or t. TYPE and SUBTYPE are symbol. `t' means default.
167 SCORE is integer. Larger number is larger priority.
172 Change text presentation mechanism. In anything older than SEMI
173 1.4, text presentation mechanism is based on filter model. However it
174 has design problem about conversion between byte representation and
175 text presentation. So SEMI was changed to use
176 body-presentation-method to display text entity. In this purpose, old
177 text decoding features were abolished and introduces news features
181 ** mime-raw-representation-type and mime-raw-representation-type-alist
183 Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
184 text presentation mechanism change (cf. previous section). Instead of
185 it, SEMI introduces variable about representation-type of
186 mime-raw-buffer. If it is `binary', mime-raw-buffer is as same as
187 network representation. If it is `cooked', mime-raw-buffer is
190 `mime-raw-representation-type-alist' is an alist of major-mode
191 vs. representation-type. Each element looks like
193 (SYMBOL . REPRESENTATION-TYPE).
195 SYMBOL is major-mode or t. t means default.
197 `mime-raw-representation-type' is a buffer local variable of
198 mime-raw-buffer. If it is non-nil, it overrides
199 `mime-raw-representation-type-alist'.
201 In addition, `mime-raw-buffer-coding-system-alist' was abolished.
202 Because representation-type has enough information.
205 * Changes in SEMI 1.4
209 mailcap was supported to set up 'mime-acting-condition.
211 tm-external-method scripts written by born shell were abolished.
214 ** mime-add-condition
216 New function to set up 'mime-preview-condition and/or
217 'mime-acting-condition.
220 ** signature setting in semi-setup.el
222 Abolish MUA depended signature setting.
224 Setting for mail-mode were moved to mail-mime-setup.el.
227 * Changes in SEMI 1.3
229 ** mime-acting-condition
231 Format of variable 'mime-acting-condition was changed from `atype'
232 to `condition tree'. Its format is as same as
233 'mime-preview-condition.
235 If there are two or more conditions are found when matching, menu
236 pops up to select method to run. Selected situation will be added to
237 example database. (cf. mime-acting-situation-examples-file)
241 *** mime-view-find-every-acting-situation
243 Find every available acting-situation if non-nil.
245 *** mime-acting-situation-examples-file
247 File name of example about acting-situation demonstrated by
251 * Changes in SEMI 1.2
257 'mime-view-plain-text-preview-hook was renamed to
258 'mime-preview-text/plain-hook.
262 Variable 'mime-view-childrens-header-showing-Content-Type-list was
263 abolished. Please use 'mime-preview-condition instead.
265 *** API about visible-predicates were abolished
267 Following functions were abolished:
269 mime-view-header-visible-p (entity message-info)
271 mime-view-body-visible-p (entity message-info)
273 mime-view-entity-separator-visible-p (entity message-info)
275 Please use 'mime-preview-condition instead.
277 Function 'mime-view-entity-button-visible-p is not abolished, but it
280 *** mime-preview-condition
282 Following are added as pre-defined keys:
284 'childrens-situation default preview-situation for children
285 'message-button to specify to display message-button
286 nil: default (invisible)
288 'invisible: invisible
289 'entity-button to specify to display entity-button
290 nil: default (visible)
292 'invisible: invisible
293 'header to specify to display header
294 nil: default (invisible)
296 'invisible: invisible
300 *** Interface for body-filter
302 'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
305 *** mime-text-decode-body
307 Function 'mime-decode-text-body was renamed to
308 'mime-text-decode-body and changed interface. New interface is
311 mime-text-decode-body (SITUATION)
313 SITUATION is preview-situation. Content-Transfer-Encoding and
314 MIME-charset are specified in field of it.
317 * Changes in SEMI 1.1
321 *** Setting variable about visible body
323 'mime-view-visible-media-type-list and
324 'mime-view-content-filter-alist were abolished. Please use
325 'mime-preview-condition instead.
327 Notice that 'mime-preview-condition is not list of
328 media-type/subtype string nor association-list. It uses new
329 data-structure `ctree' (condition-tree; it is introduced to replace
330 `atype'). Function 'ctree-set-calist-strictly and
331 'ctree-set-calist-with-default may be useful to modify it (`calist'
332 (condition-alist) is as same as `atype').
335 *** API about visible-predicates
337 Interface of visible-predicates for entity elements were changed.
338 New interfaces are following:
340 mime-view-entity-button-visible-p (entity message-info)
342 mime-view-header-visible-p (entity message-info)
344 mime-view-body-visible-p (entity message-info)
346 mime-view-entity-separator-visible-p (entity message-info)
351 *** entity representation
353 Structure 'mime-entity-info was renamed to 'mime-entity. So various
354 functions were renamed too.
357 *** Interface for entity-button generators
359 Interface of entity-button generators was changed. New interfaces
362 mime-view-insert-entity-button (entity message-info subject)
365 *** mime-preview-condition and preview-situation
367 Conditions about preview generation are unified to
368 'mime-preview-condition. Namely other variables, such as
369 'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
370 'mime-view-image-converter-alist were abolished.
372 Preview-situation is generated from entity information, running
373 environment and 'mime-preview-condition. These elements are checked
374 to match with each other. (it is similar to acting-situation)
376 Format of preview-situation is association-list. Following key is
380 'subtype media-subtype
381 'encoding content-transfer-encoding
382 'major-mode major-mode of MUA
383 <STRING> attribute of Content-Type field.
384 'body-presentation-method body-presentation-method
386 If 'body-presentation-method is 'with-filter, 'body-filter is used to
387 specify body-filter function. If 'body-presentation-method is
388 function, it is called to generate presentation of entity body.
390 Body-filter function 'mime-view-filter-for-image refers 'image-format.
392 Setting for message/partial button is specified by
393 'mime-preview-condition instead of hard-coding.
396 *** Interface for body-filter
398 Interface of body-filter was changed. New interfaces is following:
400 <body-filter> (situation)
402 Current pre-defined filters are following:
404 mime-view-filter-for-text/plain (situation)
405 mime-view-filter-for-text/richtext (situation)
406 mime-view-filter-for-text/enriched (situation)
407 mime-view-filter-for-image (situation) ; if available
409 'mime-view-filter-for-application/postscript was abolished.
412 *** Format of mime-acting-condition (acting-situation)
414 Format of `mime-acting-condition' were changed. `type' and
415 `subtype' are separated and changed to symbol.
420 - mime-view-buffer -> mime-preview-buffer
425 paragraph-separate: "[
\f]*$"