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'
13 mime-play-entity (entity &optional situation mode
14 ignore-examples ignored-method)
17 ** Now acting-method must not expect to run in raw-buffer
19 Function `mime-play-entity' was changed to permit to run in any buffer
20 (may be called in preview-buffer). So each acting-method is called in
25 * Changes in SEMI 1.12
27 There are no user-visible changes.
29 ** New function `eliminate-top-spaces'
34 * Changes in SEMI 1.11
36 ** New function `mime-edit-decode-message-in-buffer'
38 Add new function `mime-edit-decode-message-in-buffer'. Function
39 `mime-edit-decode-buffer' was abolished.
42 ** Requires FLIM 1.12 API
45 * Changes in SEMI 1.10
47 ** Abolish variable `mime-temp-directory'
49 FLIM 1.11 and SEMI 1.10 use variable `temporary-file-directory'
50 instead of `mime-temp-directory'. So environment variable
51 "MIME_TMP_DIR" and "TM_TMP_DIR" are not effective to specify temporary
52 directory of FLIM and SEMI.
55 ** Abolish function `mime-text-insert-decoded-body'
57 SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
58 instead of `mime-text-insert-decoded-body'.
60 Now `mime-view-caesar' does not run `mime-text-decode-hook'.
65 ** User option `mime-encoding-list'
67 SEMI 1.9 requires FLIM 1.10 API. In FLIM 1.10 API, variable
68 `mime-file-encoding-method-alist' was abolished. If you want to use
69 non-standard Content-Transfer-Encoding to insert a file into sending
70 message, please edit new user option `mime-encoding-list' instead of
71 `mime-file-encoding-method-alist'.
74 ** Constant `mime-user-interface-product'
76 Constant `mime-user-interface-version' was renamed to
77 `mime-user-interface-product'. Notice that data format is changed
80 FLIM 1.10 API provides following macros to access a slot of the new
83 mime-product-name (product)
85 mime-product-version (product)
87 mime-product-code-name (product)
89 Please use them to get elements of the constant
90 `mime-user-interface-product'.
95 ** Don't use "file" command to detect content of entity
97 Acting-method to detect content of entity was modified not to use
100 Variable `mime-file-content-type-alist' was abolished. Instead of
101 it, new variable `mime-magic-type-alist' is available to customize.
102 It is an alist of regexp about magic-number vs. corresponding
103 media-types. Each element looks like (REGEXP TYPE SUBTYPE). REGEXP
104 is a regular expression to match against the beginning of the content
105 of entity. TYPE is symbol to indicate primary type of media-type.
106 SUBTYPE is symbol to indicate subtype of media-type.
109 ** Abolish external X-Face viewer
112 ** Abolish obsolete utility for *-field-list and *-field-regexp
114 Abolish function `tm:set-fields', `tm:add-fields' and
118 ** Change MUA interface of automatic message/partial combining
120 Abolish variable `mime-view-partial-message-method-alist'.
122 Instead of it, `request-partial-message-method' in acting-situation
123 is available to specify MUA depended implementation.
125 Each element of `mime-view-partial-message-method-alist' were
126 required to display message at current summary line, and its return
127 value were ignored. On the other hand,
128 `request-partial-message-method' is required to return structure of
129 message at current summary line. Format of it is mime-entity.
134 MIME-Edit inserts User-Agent field instaed of X-Emacs field if
135 `mime-edit-insert-user-agent-field' is not nil. Contents of
136 User-Agent is specified by mime-edit-user-agent-value'.
138 X-Emacs field related features were abolished.
141 * Changes in SEMI 1.7
143 ** Header-presentation-method
145 Now MIME-View uses header-presentation-method instead of
148 - abolish variable `mime-view-content-header-filter-alist'
150 - abolish function `mime-view-cut-header'
152 - Rename `mime-view-content-header-filter-hook' to
153 `mime-display-header-hook'
156 ** Abolish `mime-view-ignored-field-regexp'
158 Now mime-view uses `mime-view-ignored-field-list' directly in
159 default header-presentation-method.
162 ** Abolish body filter support
164 Please use body-presentation-method.
169 - Rename `mime-view-following-method-alist' to
170 `mime-preview-following-method-alist'
172 - Rename `mime-method-to-combine-message/partial-pieces' to
173 `mime-combine-message/partial-pieces-automatically'
176 * Changes in SEMI 1.6
178 ** Abolish tm-compatible external method support
180 Abolish tm-compatible external method support. Please use mailcap
181 method instead of it.
184 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
186 C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
188 C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
192 ** New method to detect content of entity
194 Now MIME-View can detect content of entity for
195 application/octet-stream in default setting.
197 It uses "file" command to detect. User can customize
198 `mime-file-content-type-alist' to specify media-type for output of
199 "file" command. It is an alist of "file" output patterns
200 vs. corresponding media-types. Each element looks like (REGEXP TYPE
201 SUBTYPE). REGEXP is pattern for "file" command output. TYPE is
202 symbol to indicate primary type of media-type. SUBTYPE is symbol to
203 indicate subtype of media-type.
206 ** New interface to display message
208 - Function `mime-view-buffer'
209 - Function `mime-view-display-message'
212 ** Change interface of internal playback method
214 Interface of internal playback method was changed to
218 It is as same as interface of body-presentation-method.
221 ** Change interface of `mime-view-entity-button-visible-p'
223 ** Change interface of `mime-view-insert-entity-button'
226 ** `mime-preview-original-major-mode'
228 Abolish variable `mime-preview-original-major-mode'.
230 Please use function `mime-preview-original-major-mode' instead of
234 ** mime-preview-over-to-{previous|next}-method-alist
236 `mime-preview-over-to-{previous|next}-method-alist' were renamed
237 from `mime-view-over-to-{previous|next}-method-alist'.
240 * Changes in SEMI 1.5
244 Add inline text/html preview feature using w3. If
245 `mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
248 ** `pgp-elkins' -> `pgp-mime'
250 Rename `pgp-elkins' -> `pgp-mime'. Variable
251 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
255 ** type-subtype-score
257 Now MIME-View chooses one entity to display body in
258 multipart/alternative. In this mechanism,
259 `mime-view-type-subtype-score-alist' is used to specify priority of
262 Variable `mime-view-type-subtype-score-alist' is alist of
263 TYPE-SUBTYPE vs. SCORE. TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
264 symbol TYPE or t. TYPE and SUBTYPE are symbol. `t' means default.
265 SCORE is integer. Larger number is larger priority.
270 Change text presentation mechanism. In anything older than SEMI
271 1.4, text presentation mechanism is based on filter model. However it
272 has design problem about conversion between byte representation and
273 text presentation. So SEMI was changed to use
274 body-presentation-method to display text entity. In this purpose, old
275 text decoding features were abolished and introduces news features
279 ** mime-raw-representation-type and mime-raw-representation-type-alist
281 Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
282 text presentation mechanism change (cf. previous section). Instead of
283 it, SEMI introduces variable about representation-type of
284 mime-raw-buffer. If it is `binary', mime-raw-buffer is as same as
285 network representation. If it is `cooked', mime-raw-buffer is
288 `mime-raw-representation-type-alist' is an alist of major-mode
289 vs. representation-type. Each element looks like
291 (SYMBOL . REPRESENTATION-TYPE).
293 SYMBOL is major-mode or t. t means default.
295 `mime-raw-representation-type' is a buffer local variable of
296 mime-raw-buffer. If it is non-nil, it overrides
297 `mime-raw-representation-type-alist'.
299 In addition, `mime-raw-buffer-coding-system-alist' was abolished.
300 Because representation-type has enough information.
303 * Changes in SEMI 1.4
307 mailcap was supported to set up 'mime-acting-condition.
309 tm-external-method scripts written by born shell were abolished.
312 ** mime-add-condition
314 New function to set up 'mime-preview-condition and/or
315 'mime-acting-condition.
318 ** signature setting in semi-setup.el
320 Abolish MUA depended signature setting.
322 Setting for mail-mode were moved to mail-mime-setup.el.
325 * Changes in SEMI 1.3
327 ** mime-acting-condition
329 Format of variable 'mime-acting-condition was changed from `atype'
330 to `condition tree'. Its format is as same as
331 'mime-preview-condition.
333 If there are two or more conditions are found when matching, menu
334 pops up to select method to run. Selected situation will be added to
335 example database. (cf. mime-acting-situation-examples-file)
339 *** mime-view-find-every-acting-situation
341 Find every available acting-situation if non-nil.
343 *** mime-acting-situation-examples-file
345 File name of example about acting-situation demonstrated by
349 * Changes in SEMI 1.2
355 'mime-view-plain-text-preview-hook was renamed to
356 'mime-preview-text/plain-hook.
360 Variable 'mime-view-childrens-header-showing-Content-Type-list was
361 abolished. Please use 'mime-preview-condition instead.
363 *** API about visible-predicates were abolished
365 Following functions were abolished:
367 mime-view-header-visible-p (entity message-info)
369 mime-view-body-visible-p (entity message-info)
371 mime-view-entity-separator-visible-p (entity message-info)
373 Please use 'mime-preview-condition instead.
375 Function 'mime-view-entity-button-visible-p is not abolished, but it
378 *** mime-preview-condition
380 Following are added as pre-defined keys:
382 'childrens-situation default preview-situation for children
383 'message-button to specify to display message-button
384 nil: default (invisible)
386 'invisible: invisible
387 'entity-button to specify to display entity-button
388 nil: default (visible)
390 'invisible: invisible
391 'header to specify to display header
392 nil: default (invisible)
394 'invisible: invisible
398 *** Interface for body-filter
400 'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
403 *** mime-text-decode-body
405 Function 'mime-decode-text-body was renamed to
406 'mime-text-decode-body and changed interface. New interface is
409 mime-text-decode-body (SITUATION)
411 SITUATION is preview-situation. Content-Transfer-Encoding and
412 MIME-charset are specified in field of it.
415 * Changes in SEMI 1.1
419 *** Setting variable about visible body
421 'mime-view-visible-media-type-list and
422 'mime-view-content-filter-alist were abolished. Please use
423 'mime-preview-condition instead.
425 Notice that 'mime-preview-condition is not list of
426 media-type/subtype string nor association-list. It uses new
427 data-structure `ctree' (condition-tree; it is introduced to replace
428 `atype'). Function 'ctree-set-calist-strictly and
429 'ctree-set-calist-with-default may be useful to modify it (`calist'
430 (condition-alist) is as same as `atype').
433 *** API about visible-predicates
435 Interface of visible-predicates for entity elements were changed.
436 New interfaces are following:
438 mime-view-entity-button-visible-p (entity message-info)
440 mime-view-header-visible-p (entity message-info)
442 mime-view-body-visible-p (entity message-info)
444 mime-view-entity-separator-visible-p (entity message-info)
449 *** entity representation
451 Structure 'mime-entity-info was renamed to 'mime-entity. So various
452 functions were renamed too.
455 *** Interface for entity-button generators
457 Interface of entity-button generators was changed. New interfaces
460 mime-view-insert-entity-button (entity message-info subject)
463 *** mime-preview-condition and preview-situation
465 Conditions about preview generation are unified to
466 'mime-preview-condition. Namely other variables, such as
467 'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
468 'mime-view-image-converter-alist were abolished.
470 Preview-situation is generated from entity information, running
471 environment and 'mime-preview-condition. These elements are checked
472 to match with each other. (it is similar to acting-situation)
474 Format of preview-situation is association-list. Following key is
478 'subtype media-subtype
479 'encoding content-transfer-encoding
480 'major-mode major-mode of MUA
481 <STRING> attribute of Content-Type field.
482 'body-presentation-method body-presentation-method
484 If 'body-presentation-method is 'with-filter, 'body-filter is used to
485 specify body-filter function. If 'body-presentation-method is
486 function, it is called to generate presentation of entity body.
488 Body-filter function 'mime-view-filter-for-image refers 'image-format.
490 Setting for message/partial button is specified by
491 'mime-preview-condition instead of hard-coding.
494 *** Interface for body-filter
496 Interface of body-filter was changed. New interfaces is following:
498 <body-filter> (situation)
500 Current pre-defined filters are following:
502 mime-view-filter-for-text/plain (situation)
503 mime-view-filter-for-text/richtext (situation)
504 mime-view-filter-for-text/enriched (situation)
505 mime-view-filter-for-image (situation) ; if available
507 'mime-view-filter-for-application/postscript was abolished.
510 *** Format of mime-acting-condition (acting-situation)
512 Format of `mime-acting-condition' were changed. `type' and
513 `subtype' are separated and changed to symbol.
518 - mime-view-buffer -> mime-preview-buffer
523 paragraph-separate: "[
\f]*$"