1 SEMI NEWS --- history of major-changes.
2 Copyright (C) 1998,1999 Free Software Foundation, Inc.
6 ** Function `mime-play-entity'
8 Function `mime-play-entity' was renamed from `mime-raw-play-entity'.
11 ** Now acting-method must not expect to run in raw-buffer
13 Function `mime-play-entity' was changed to permit to run in any buffer
14 (may be called in preview-buffer). So each acting-method is called in
19 * Changes in SEMI 1.12
21 There are no user-visible changes.
23 ** New function `eliminate-top-spaces'
28 * Changes in SEMI 1.11
30 ** New function `mime-edit-decode-message-in-buffer'
32 Add new function `mime-edit-decode-message-in-buffer'. Function
33 `mime-edit-decode-buffer' was abolished.
36 ** Requires FLIM 1.12 API
39 * Changes in SEMI 1.10
41 ** Abolish variable `mime-temp-directory'
43 FLIM 1.11 and SEMI 1.10 use variable `temporary-file-directory'
44 instead of `mime-temp-directory'. So environment variable
45 "MIME_TMP_DIR" and "TM_TMP_DIR" are not effective to specify temporary
46 directory of FLIM and SEMI.
49 ** Abolish function `mime-text-insert-decoded-body'
51 SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
52 instead of `mime-text-insert-decoded-body'.
54 Now `mime-view-caesar' does not run `mime-text-decode-hook'.
59 ** User option `mime-encoding-list'
61 SEMI 1.9 requires FLIM 1.10 API. In FLIM 1.10 API, variable
62 `mime-file-encoding-method-alist' was abolished. If you want to use
63 non-standard Content-Transfer-Encoding to insert a file into sending
64 message, please edit new user option `mime-encoding-list' instead of
65 `mime-file-encoding-method-alist'.
68 ** Constant `mime-user-interface-product'
70 Constant `mime-user-interface-version' was renamed to
71 `mime-user-interface-product'. Notice that data format is changed
74 FLIM 1.10 API provides following macros to access a slot of the new
77 mime-product-name (product)
79 mime-product-version (product)
81 mime-product-code-name (product)
83 Please use them to get elements of the constant
84 `mime-user-interface-product'.
89 ** Don't use "file" command to detect content of entity
91 Acting-method to detect content of entity was modified not to use
94 Variable `mime-file-content-type-alist' was abolished. Instead of
95 it, new variable `mime-magic-type-alist' is available to customize.
96 It is an alist of regexp about magic-number vs. corresponding
97 media-types. Each element looks like (REGEXP TYPE SUBTYPE). REGEXP
98 is a regular expression to match against the beginning of the content
99 of entity. TYPE is symbol to indicate primary type of media-type.
100 SUBTYPE is symbol to indicate subtype of media-type.
103 ** Abolish external X-Face viewer
106 ** Abolish obsolete utility for *-field-list and *-field-regexp
108 Abolish function `tm:set-fields', `tm:add-fields' and
112 ** Change MUA interface of automatic message/partial combining
114 Abolish variable `mime-view-partial-message-method-alist'.
116 Instead of it, `request-partial-message-method' in acting-situation
117 is available to specify MUA depended implementation.
119 Each element of `mime-view-partial-message-method-alist' were
120 required to display message at current summary line, and its return
121 value were ignored. On the other hand,
122 `request-partial-message-method' is required to return structure of
123 message at current summary line. Format of it is mime-entity.
128 MIME-Edit inserts User-Agent field instaed of X-Emacs field if
129 `mime-edit-insert-user-agent-field' is not nil. Contents of
130 User-Agent is specified by mime-edit-user-agent-value'.
132 X-Emacs field related features were abolished.
135 * Changes in SEMI 1.7
137 ** Header-presentation-method
139 Now MIME-View uses header-presentation-method instead of
142 - abolish variable `mime-view-content-header-filter-alist'
144 - abolish function `mime-view-cut-header'
146 - Rename `mime-view-content-header-filter-hook' to
147 `mime-display-header-hook'
150 ** Abolish `mime-view-ignored-field-regexp'
152 Now mime-view uses `mime-view-ignored-field-list' directly in
153 default header-presentation-method.
156 ** Abolish body filter support
158 Please use body-presentation-method.
163 - Rename `mime-view-following-method-alist' to
164 `mime-preview-following-method-alist'
166 - Rename `mime-method-to-combine-message/partial-pieces' to
167 `mime-combine-message/partial-pieces-automatically'
170 * Changes in SEMI 1.6
172 ** Abolish tm-compatible external method support
174 Abolish tm-compatible external method support. Please use mailcap
175 method instead of it.
178 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
180 C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
182 C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
186 ** New method to detect content of entity
188 Now MIME-View can detect content of entity for
189 application/octet-stream in default setting.
191 It uses "file" command to detect. User can customize
192 `mime-file-content-type-alist' to specify media-type for output of
193 "file" command. It is an alist of "file" output patterns
194 vs. corresponding media-types. Each element looks like (REGEXP TYPE
195 SUBTYPE). REGEXP is pattern for "file" command output. TYPE is
196 symbol to indicate primary type of media-type. SUBTYPE is symbol to
197 indicate subtype of media-type.
200 ** New interface to display message
202 - Function `mime-view-buffer'
203 - Function `mime-view-display-message'
206 ** Change interface of internal playback method
208 Interface of internal playback method was changed to
212 It is as same as interface of body-presentation-method.
215 ** Change interface of `mime-view-entity-button-visible-p'
217 ** Change interface of `mime-view-insert-entity-button'
220 ** `mime-preview-original-major-mode'
222 Abolish variable `mime-preview-original-major-mode'.
224 Please use function `mime-preview-original-major-mode' instead of
228 ** mime-preview-over-to-{previous|next}-method-alist
230 `mime-preview-over-to-{previous|next}-method-alist' were renamed
231 from `mime-view-over-to-{previous|next}-method-alist'.
234 * Changes in SEMI 1.5
238 Add inline text/html preview feature using w3. If
239 `mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
242 ** `pgp-elkins' -> `pgp-mime'
244 Rename `pgp-elkins' -> `pgp-mime'. Variable
245 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
249 ** type-subtype-score
251 Now MIME-View chooses one entity to display body in
252 multipart/alternative. In this mechanism,
253 `mime-view-type-subtype-score-alist' is used to specify priority of
256 Variable `mime-view-type-subtype-score-alist' is alist of
257 TYPE-SUBTYPE vs. SCORE. TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
258 symbol TYPE or t. TYPE and SUBTYPE are symbol. `t' means default.
259 SCORE is integer. Larger number is larger priority.
264 Change text presentation mechanism. In anything older than SEMI
265 1.4, text presentation mechanism is based on filter model. However it
266 has design problem about conversion between byte representation and
267 text presentation. So SEMI was changed to use
268 body-presentation-method to display text entity. In this purpose, old
269 text decoding features were abolished and introduces news features
273 ** mime-raw-representation-type and mime-raw-representation-type-alist
275 Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
276 text presentation mechanism change (cf. previous section). Instead of
277 it, SEMI introduces variable about representation-type of
278 mime-raw-buffer. If it is `binary', mime-raw-buffer is as same as
279 network representation. If it is `cooked', mime-raw-buffer is
282 `mime-raw-representation-type-alist' is an alist of major-mode
283 vs. representation-type. Each element looks like
285 (SYMBOL . REPRESENTATION-TYPE).
287 SYMBOL is major-mode or t. t means default.
289 `mime-raw-representation-type' is a buffer local variable of
290 mime-raw-buffer. If it is non-nil, it overrides
291 `mime-raw-representation-type-alist'.
293 In addition, `mime-raw-buffer-coding-system-alist' was abolished.
294 Because representation-type has enough information.
297 * Changes in SEMI 1.4
301 mailcap was supported to set up 'mime-acting-condition.
303 tm-external-method scripts written by born shell were abolished.
306 ** mime-add-condition
308 New function to set up 'mime-preview-condition and/or
309 'mime-acting-condition.
312 ** signature setting in semi-setup.el
314 Abolish MUA depended signature setting.
316 Setting for mail-mode were moved to mail-mime-setup.el.
319 * Changes in SEMI 1.3
321 ** mime-acting-condition
323 Format of variable 'mime-acting-condition was changed from `atype'
324 to `condition tree'. Its format is as same as
325 'mime-preview-condition.
327 If there are two or more conditions are found when matching, menu
328 pops up to select method to run. Selected situation will be added to
329 example database. (cf. mime-acting-situation-examples-file)
333 *** mime-view-find-every-acting-situation
335 Find every available acting-situation if non-nil.
337 *** mime-acting-situation-examples-file
339 File name of example about acting-situation demonstrated by
343 * Changes in SEMI 1.2
349 'mime-view-plain-text-preview-hook was renamed to
350 'mime-preview-text/plain-hook.
354 Variable 'mime-view-childrens-header-showing-Content-Type-list was
355 abolished. Please use 'mime-preview-condition instead.
357 *** API about visible-predicates were abolished
359 Following functions were abolished:
361 mime-view-header-visible-p (entity message-info)
363 mime-view-body-visible-p (entity message-info)
365 mime-view-entity-separator-visible-p (entity message-info)
367 Please use 'mime-preview-condition instead.
369 Function 'mime-view-entity-button-visible-p is not abolished, but it
372 *** mime-preview-condition
374 Following are added as pre-defined keys:
376 'childrens-situation default preview-situation for children
377 'message-button to specify to display message-button
378 nil: default (invisible)
380 'invisible: invisible
381 'entity-button to specify to display entity-button
382 nil: default (visible)
384 'invisible: invisible
385 'header to specify to display header
386 nil: default (invisible)
388 'invisible: invisible
392 *** Interface for body-filter
394 'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
397 *** mime-text-decode-body
399 Function 'mime-decode-text-body was renamed to
400 'mime-text-decode-body and changed interface. New interface is
403 mime-text-decode-body (SITUATION)
405 SITUATION is preview-situation. Content-Transfer-Encoding and
406 MIME-charset are specified in field of it.
409 * Changes in SEMI 1.1
413 *** Setting variable about visible body
415 'mime-view-visible-media-type-list and
416 'mime-view-content-filter-alist were abolished. Please use
417 'mime-preview-condition instead.
419 Notice that 'mime-preview-condition is not list of
420 media-type/subtype string nor association-list. It uses new
421 data-structure `ctree' (condition-tree; it is introduced to replace
422 `atype'). Function 'ctree-set-calist-strictly and
423 'ctree-set-calist-with-default may be useful to modify it (`calist'
424 (condition-alist) is as same as `atype').
427 *** API about visible-predicates
429 Interface of visible-predicates for entity elements were changed.
430 New interfaces are following:
432 mime-view-entity-button-visible-p (entity message-info)
434 mime-view-header-visible-p (entity message-info)
436 mime-view-body-visible-p (entity message-info)
438 mime-view-entity-separator-visible-p (entity message-info)
443 *** entity representation
445 Structure 'mime-entity-info was renamed to 'mime-entity. So various
446 functions were renamed too.
449 *** Interface for entity-button generators
451 Interface of entity-button generators was changed. New interfaces
454 mime-view-insert-entity-button (entity message-info subject)
457 *** mime-preview-condition and preview-situation
459 Conditions about preview generation are unified to
460 'mime-preview-condition. Namely other variables, such as
461 'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
462 'mime-view-image-converter-alist were abolished.
464 Preview-situation is generated from entity information, running
465 environment and 'mime-preview-condition. These elements are checked
466 to match with each other. (it is similar to acting-situation)
468 Format of preview-situation is association-list. Following key is
472 'subtype media-subtype
473 'encoding content-transfer-encoding
474 'major-mode major-mode of MUA
475 <STRING> attribute of Content-Type field.
476 'body-presentation-method body-presentation-method
478 If 'body-presentation-method is 'with-filter, 'body-filter is used to
479 specify body-filter function. If 'body-presentation-method is
480 function, it is called to generate presentation of entity body.
482 Body-filter function 'mime-view-filter-for-image refers 'image-format.
484 Setting for message/partial button is specified by
485 'mime-preview-condition instead of hard-coding.
488 *** Interface for body-filter
490 Interface of body-filter was changed. New interfaces is following:
492 <body-filter> (situation)
494 Current pre-defined filters are following:
496 mime-view-filter-for-text/plain (situation)
497 mime-view-filter-for-text/richtext (situation)
498 mime-view-filter-for-text/enriched (situation)
499 mime-view-filter-for-image (situation) ; if available
501 'mime-view-filter-for-application/postscript was abolished.
504 *** Format of mime-acting-condition (acting-situation)
506 Format of `mime-acting-condition' were changed. `type' and
507 `subtype' are separated and changed to symbol.
512 - mime-view-buffer -> mime-preview-buffer
517 paragraph-separate: "[
\f]*$"