1 SEMI NEWS --- history of major-changes.
2 Copyright (C) 1998,1999 Free Software Foundation, Inc.
6 ** Requires FLIM 1.13 API
9 ** Don't expect raw-buffer
11 In FLIM 1.13 API, existence of a raw-buffer corresponding to each
12 entity is not guaranteed.
14 *** Now acting-method must not expect to run in raw-buffer
16 Function `mime-play-entity' was changed to permit to run in any buffer
17 (may be called in preview-buffer). So each acting-method is called in
20 *** Don't refer variable `mime-raw-buffer'
22 Preview-buffer's local variable `mime-raw-buffer' is deleted. So
25 *** Don't refer variable `mime-preview-buffer'
27 There are no guarantee about existence of a raw-buffer corresponding
28 to each entity, so don't refer buffer local variables of the
29 raw-buffer, e.g. `mime-preview-buffer'.
32 ** Function `mime-play-entity'
34 Function `mime-play-entity' was renamed from `mime-raw-play-entity'
35 and changed interface.
39 mime-play-entity (entity &optional situation ignored-method)
41 Please use `situation' if you would like to specify `mode' and
45 ** Text property `mime-view-entity-{header|body}'
47 Now mime-view put text property `mime-view-entity-header' and
48 `mime-view-entity-body' in header and body of each entity.
51 ** Behavior change about `mime-display-header-hook'
53 Function `mime-display-entity' runs `mime-display-header-hook' before
56 In addition, now it is cleared that current point means beginning of
57 header when `mime-display-entity' runs `mime-display-header-hook'.
58 Therefore header-presentation-method must not change current point.
62 * Changes in SEMI 1.12
64 There are no user-visible changes.
66 ** New function `eliminate-top-spaces'
71 * Changes in SEMI 1.11
73 ** New function `mime-edit-decode-message-in-buffer'
75 Add new function `mime-edit-decode-message-in-buffer'. Function
76 `mime-edit-decode-buffer' was abolished.
79 ** Requires FLIM 1.12 API
82 * Changes in SEMI 1.10
84 ** Abolish variable `mime-temp-directory'
86 FLIM 1.11 and SEMI 1.10 use variable `temporary-file-directory'
87 instead of `mime-temp-directory'. So environment variable
88 "MIME_TMP_DIR" and "TM_TMP_DIR" are not effective to specify temporary
89 directory of FLIM and SEMI.
92 ** Abolish function `mime-text-insert-decoded-body'
94 SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
95 instead of `mime-text-insert-decoded-body'.
97 Now `mime-view-caesar' does not run `mime-text-decode-hook'.
100 * Changes in SEMI 1.9
102 ** User option `mime-encoding-list'
104 SEMI 1.9 requires FLIM 1.10 API. In FLIM 1.10 API, variable
105 `mime-file-encoding-method-alist' was abolished. If you want to use
106 non-standard Content-Transfer-Encoding to insert a file into sending
107 message, please edit new user option `mime-encoding-list' instead of
108 `mime-file-encoding-method-alist'.
111 ** Constant `mime-user-interface-product'
113 Constant `mime-user-interface-version' was renamed to
114 `mime-user-interface-product'. Notice that data format is changed
117 FLIM 1.10 API provides following macros to access a slot of the new
120 mime-product-name (product)
122 mime-product-version (product)
124 mime-product-code-name (product)
126 Please use them to get elements of the constant
127 `mime-user-interface-product'.
130 * Changes in SEMI 1.8
132 ** Don't use "file" command to detect content of entity
134 Acting-method to detect content of entity was modified not to use
137 Variable `mime-file-content-type-alist' was abolished. Instead of
138 it, new variable `mime-magic-type-alist' is available to customize.
139 It is an alist of regexp about magic-number vs. corresponding
140 media-types. Each element looks like (REGEXP TYPE SUBTYPE). REGEXP
141 is a regular expression to match against the beginning of the content
142 of entity. TYPE is symbol to indicate primary type of media-type.
143 SUBTYPE is symbol to indicate subtype of media-type.
146 ** Abolish external X-Face viewer
149 ** Abolish obsolete utility for *-field-list and *-field-regexp
151 Abolish function `tm:set-fields', `tm:add-fields' and
155 ** Change MUA interface of automatic message/partial combining
157 Abolish variable `mime-view-partial-message-method-alist'.
159 Instead of it, `request-partial-message-method' in acting-situation
160 is available to specify MUA depended implementation.
162 Each element of `mime-view-partial-message-method-alist' were
163 required to display message at current summary line, and its return
164 value were ignored. On the other hand,
165 `request-partial-message-method' is required to return structure of
166 message at current summary line. Format of it is mime-entity.
171 MIME-Edit inserts User-Agent field instaed of X-Emacs field if
172 `mime-edit-insert-user-agent-field' is not nil. Contents of
173 User-Agent is specified by mime-edit-user-agent-value'.
175 X-Emacs field related features were abolished.
178 * Changes in SEMI 1.7
180 ** Header-presentation-method
182 Now MIME-View uses header-presentation-method instead of
185 - abolish variable `mime-view-content-header-filter-alist'
187 - abolish function `mime-view-cut-header'
189 - Rename `mime-view-content-header-filter-hook' to
190 `mime-display-header-hook'
193 ** Abolish `mime-view-ignored-field-regexp'
195 Now mime-view uses `mime-view-ignored-field-list' directly in
196 default header-presentation-method.
199 ** Abolish body filter support
201 Please use body-presentation-method.
206 - Rename `mime-view-following-method-alist' to
207 `mime-preview-following-method-alist'
209 - Rename `mime-method-to-combine-message/partial-pieces' to
210 `mime-combine-message/partial-pieces-automatically'
213 * Changes in SEMI 1.6
215 ** Abolish tm-compatible external method support
217 Abolish tm-compatible external method support. Please use mailcap
218 method instead of it.
221 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
223 C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
225 C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
229 ** New method to detect content of entity
231 Now MIME-View can detect content of entity for
232 application/octet-stream in default setting.
234 It uses "file" command to detect. User can customize
235 `mime-file-content-type-alist' to specify media-type for output of
236 "file" command. It is an alist of "file" output patterns
237 vs. corresponding media-types. Each element looks like (REGEXP TYPE
238 SUBTYPE). REGEXP is pattern for "file" command output. TYPE is
239 symbol to indicate primary type of media-type. SUBTYPE is symbol to
240 indicate subtype of media-type.
243 ** New interface to display message
245 - Function `mime-view-buffer'
246 - Function `mime-view-display-message'
249 ** Change interface of internal playback method
251 Interface of internal playback method was changed to
255 It is as same as interface of body-presentation-method.
258 ** Change interface of `mime-view-entity-button-visible-p'
260 ** Change interface of `mime-view-insert-entity-button'
263 ** `mime-preview-original-major-mode'
265 Abolish variable `mime-preview-original-major-mode'.
267 Please use function `mime-preview-original-major-mode' instead of
271 ** mime-preview-over-to-{previous|next}-method-alist
273 `mime-preview-over-to-{previous|next}-method-alist' were renamed
274 from `mime-view-over-to-{previous|next}-method-alist'.
277 * Changes in SEMI 1.5
281 Add inline text/html preview feature using w3. If
282 `mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
285 ** `pgp-elkins' -> `pgp-mime'
287 Rename `pgp-elkins' -> `pgp-mime'. Variable
288 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
292 ** type-subtype-score
294 Now MIME-View chooses one entity to display body in
295 multipart/alternative. In this mechanism,
296 `mime-view-type-subtype-score-alist' is used to specify priority of
299 Variable `mime-view-type-subtype-score-alist' is alist of
300 TYPE-SUBTYPE vs. SCORE. TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
301 symbol TYPE or t. TYPE and SUBTYPE are symbol. `t' means default.
302 SCORE is integer. Larger number is larger priority.
307 Change text presentation mechanism. In anything older than SEMI
308 1.4, text presentation mechanism is based on filter model. However it
309 has design problem about conversion between byte representation and
310 text presentation. So SEMI was changed to use
311 body-presentation-method to display text entity. In this purpose, old
312 text decoding features were abolished and introduces news features
316 ** mime-raw-representation-type and mime-raw-representation-type-alist
318 Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
319 text presentation mechanism change (cf. previous section). Instead of
320 it, SEMI introduces variable about representation-type of
321 mime-raw-buffer. If it is `binary', mime-raw-buffer is as same as
322 network representation. If it is `cooked', mime-raw-buffer is
325 `mime-raw-representation-type-alist' is an alist of major-mode
326 vs. representation-type. Each element looks like
328 (SYMBOL . REPRESENTATION-TYPE).
330 SYMBOL is major-mode or t. t means default.
332 `mime-raw-representation-type' is a buffer local variable of
333 mime-raw-buffer. If it is non-nil, it overrides
334 `mime-raw-representation-type-alist'.
336 In addition, `mime-raw-buffer-coding-system-alist' was abolished.
337 Because representation-type has enough information.
340 * Changes in SEMI 1.4
344 mailcap was supported to set up 'mime-acting-condition.
346 tm-external-method scripts written by born shell were abolished.
349 ** mime-add-condition
351 New function to set up 'mime-preview-condition and/or
352 'mime-acting-condition.
355 ** signature setting in semi-setup.el
357 Abolish MUA depended signature setting.
359 Setting for mail-mode were moved to mail-mime-setup.el.
362 * Changes in SEMI 1.3
364 ** mime-acting-condition
366 Format of variable 'mime-acting-condition was changed from `atype'
367 to `condition tree'. Its format is as same as
368 'mime-preview-condition.
370 If there are two or more conditions are found when matching, menu
371 pops up to select method to run. Selected situation will be added to
372 example database. (cf. mime-acting-situation-examples-file)
376 *** mime-view-find-every-acting-situation
378 Find every available acting-situation if non-nil.
380 *** mime-acting-situation-examples-file
382 File name of example about acting-situation demonstrated by
386 * Changes in SEMI 1.2
392 'mime-view-plain-text-preview-hook was renamed to
393 'mime-preview-text/plain-hook.
397 Variable 'mime-view-childrens-header-showing-Content-Type-list was
398 abolished. Please use 'mime-preview-condition instead.
400 *** API about visible-predicates were abolished
402 Following functions were abolished:
404 mime-view-header-visible-p (entity message-info)
406 mime-view-body-visible-p (entity message-info)
408 mime-view-entity-separator-visible-p (entity message-info)
410 Please use 'mime-preview-condition instead.
412 Function 'mime-view-entity-button-visible-p is not abolished, but it
415 *** mime-preview-condition
417 Following are added as pre-defined keys:
419 'childrens-situation default preview-situation for children
420 'message-button to specify to display message-button
421 nil: default (invisible)
423 'invisible: invisible
424 'entity-button to specify to display entity-button
425 nil: default (visible)
427 'invisible: invisible
428 'header to specify to display header
429 nil: default (invisible)
431 'invisible: invisible
435 *** Interface for body-filter
437 'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
440 *** mime-text-decode-body
442 Function 'mime-decode-text-body was renamed to
443 'mime-text-decode-body and changed interface. New interface is
446 mime-text-decode-body (SITUATION)
448 SITUATION is preview-situation. Content-Transfer-Encoding and
449 MIME-charset are specified in field of it.
452 * Changes in SEMI 1.1
456 *** Setting variable about visible body
458 'mime-view-visible-media-type-list and
459 'mime-view-content-filter-alist were abolished. Please use
460 'mime-preview-condition instead.
462 Notice that 'mime-preview-condition is not list of
463 media-type/subtype string nor association-list. It uses new
464 data-structure `ctree' (condition-tree; it is introduced to replace
465 `atype'). Function 'ctree-set-calist-strictly and
466 'ctree-set-calist-with-default may be useful to modify it (`calist'
467 (condition-alist) is as same as `atype').
470 *** API about visible-predicates
472 Interface of visible-predicates for entity elements were changed.
473 New interfaces are following:
475 mime-view-entity-button-visible-p (entity message-info)
477 mime-view-header-visible-p (entity message-info)
479 mime-view-body-visible-p (entity message-info)
481 mime-view-entity-separator-visible-p (entity message-info)
486 *** entity representation
488 Structure 'mime-entity-info was renamed to 'mime-entity. So various
489 functions were renamed too.
492 *** Interface for entity-button generators
494 Interface of entity-button generators was changed. New interfaces
497 mime-view-insert-entity-button (entity message-info subject)
500 *** mime-preview-condition and preview-situation
502 Conditions about preview generation are unified to
503 'mime-preview-condition. Namely other variables, such as
504 'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
505 'mime-view-image-converter-alist were abolished.
507 Preview-situation is generated from entity information, running
508 environment and 'mime-preview-condition. These elements are checked
509 to match with each other. (it is similar to acting-situation)
511 Format of preview-situation is association-list. Following key is
515 'subtype media-subtype
516 'encoding content-transfer-encoding
517 'major-mode major-mode of MUA
518 <STRING> attribute of Content-Type field.
519 'body-presentation-method body-presentation-method
521 If 'body-presentation-method is 'with-filter, 'body-filter is used to
522 specify body-filter function. If 'body-presentation-method is
523 function, it is called to generate presentation of entity body.
525 Body-filter function 'mime-view-filter-for-image refers 'image-format.
527 Setting for message/partial button is specified by
528 'mime-preview-condition instead of hard-coding.
531 *** Interface for body-filter
533 Interface of body-filter was changed. New interfaces is following:
535 <body-filter> (situation)
537 Current pre-defined filters are following:
539 mime-view-filter-for-text/plain (situation)
540 mime-view-filter-for-text/richtext (situation)
541 mime-view-filter-for-text/enriched (situation)
542 mime-view-filter-for-image (situation) ; if available
544 'mime-view-filter-for-application/postscript was abolished.
547 *** Format of mime-acting-condition (acting-situation)
549 Format of `mime-acting-condition' were changed. `type' and
550 `subtype' are separated and changed to symbol.
555 - mime-view-buffer -> mime-preview-buffer
560 paragraph-separate: "[
\f]*$"