1 SEMI NEWS --- history of major-changes.
2 Copyright (C) 1998,1999 Free Software Foundation, Inc.
6 ** PGP 5.0i and GnuPG are now supported for PGP/MIME
8 You can select the various PGP or GnuPG commands by the user option
9 `pgp-version' or the command `mime-mc-setversion'. Note that Mailcrypt
10 3.5.3 or later is needed for PGP 5.0i or GnuPG. A user interface for
11 editing or viewing has never changed.
14 ** Requires FLIM 1.13 API
17 ** Don't expect raw-buffer
19 In FLIM 1.13 API, existence of a raw-buffer corresponding to each
20 entity is not guaranteed.
22 *** Now acting-method must not expect to run in raw-buffer
24 Function `mime-play-entity' was changed to permit to run in any buffer
25 (may be called in preview-buffer). So each acting-method is called in
28 *** Don't refer variable `mime-raw-buffer'
30 Preview-buffer's local variable `mime-raw-buffer' is deleted. So
33 *** Don't refer variable `mime-preview-buffer'
35 There are no guarantee about existence of a raw-buffer corresponding
36 to each entity, so don't refer buffer local variables of the
37 raw-buffer, e.g. `mime-preview-buffer'.
40 ** Function `mime-play-entity'
42 Function `mime-play-entity' was renamed from `mime-raw-play-entity'
43 and changed interface.
47 mime-play-entity (entity &optional situation ignored-method)
49 Please use `situation' if you would like to specify `mode' and
53 ** Text property `mime-view-entity-{header|body}'
55 Now mime-view put text property `mime-view-entity-header' and
56 `mime-view-entity-body' in header and body of each entity.
59 ** Behavior change about `mime-display-header-hook'
61 Function `mime-display-entity' runs `mime-display-header-hook' before
64 In addition, now it is cleared that current point means beginning of
65 header when `mime-display-entity' runs `mime-display-header-hook'.
66 Therefore header-presentation-method must not change current point.
70 * Changes in SEMI 1.12
72 There are no user-visible changes.
74 ** New function `eliminate-top-spaces'
79 * Changes in SEMI 1.11
81 ** New function `mime-edit-decode-message-in-buffer'
83 Add new function `mime-edit-decode-message-in-buffer'. Function
84 `mime-edit-decode-buffer' was abolished.
87 ** Requires FLIM 1.12 API
90 * Changes in SEMI 1.10
92 ** Abolish variable `mime-temp-directory'
94 FLIM 1.11 and SEMI 1.10 use variable `temporary-file-directory'
95 instead of `mime-temp-directory'. So environment variable
96 "MIME_TMP_DIR" and "TM_TMP_DIR" are not effective to specify temporary
97 directory of FLIM and SEMI.
100 ** Abolish function `mime-text-insert-decoded-body'
102 SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
103 instead of `mime-text-insert-decoded-body'.
105 Now `mime-view-caesar' does not run `mime-text-decode-hook'.
108 * Changes in SEMI 1.9
110 ** User option `mime-encoding-list'
112 SEMI 1.9 requires FLIM 1.10 API. In FLIM 1.10 API, variable
113 `mime-file-encoding-method-alist' was abolished. If you want to use
114 non-standard Content-Transfer-Encoding to insert a file into sending
115 message, please edit new user option `mime-encoding-list' instead of
116 `mime-file-encoding-method-alist'.
119 ** Constant `mime-user-interface-product'
121 Constant `mime-user-interface-version' was renamed to
122 `mime-user-interface-product'. Notice that data format is changed
125 FLIM 1.10 API provides following macros to access a slot of the new
128 mime-product-name (product)
130 mime-product-version (product)
132 mime-product-code-name (product)
134 Please use them to get elements of the constant
135 `mime-user-interface-product'.
138 * Changes in SEMI 1.8
140 ** Don't use "file" command to detect content of entity
142 Acting-method to detect content of entity was modified not to use
145 Variable `mime-file-content-type-alist' was abolished. Instead of
146 it, new variable `mime-magic-type-alist' is available to customize.
147 It is an alist of regexp about magic-number vs. corresponding
148 media-types. Each element looks like (REGEXP TYPE SUBTYPE). REGEXP
149 is a regular expression to match against the beginning of the content
150 of entity. TYPE is symbol to indicate primary type of media-type.
151 SUBTYPE is symbol to indicate subtype of media-type.
154 ** Abolish external X-Face viewer
157 ** Abolish obsolete utility for *-field-list and *-field-regexp
159 Abolish function `tm:set-fields', `tm:add-fields' and
163 ** Change MUA interface of automatic message/partial combining
165 Abolish variable `mime-view-partial-message-method-alist'.
167 Instead of it, `request-partial-message-method' in acting-situation
168 is available to specify MUA depended implementation.
170 Each element of `mime-view-partial-message-method-alist' were
171 required to display message at current summary line, and its return
172 value were ignored. On the other hand,
173 `request-partial-message-method' is required to return structure of
174 message at current summary line. Format of it is mime-entity.
179 MIME-Edit inserts User-Agent field instaed of X-Emacs field if
180 `mime-edit-insert-user-agent-field' is not nil. Contents of
181 User-Agent is specified by mime-edit-user-agent-value'.
183 X-Emacs field related features were abolished.
186 * Changes in SEMI 1.7
188 ** Header-presentation-method
190 Now MIME-View uses header-presentation-method instead of
193 - abolish variable `mime-view-content-header-filter-alist'
195 - abolish function `mime-view-cut-header'
197 - Rename `mime-view-content-header-filter-hook' to
198 `mime-display-header-hook'
201 ** Abolish `mime-view-ignored-field-regexp'
203 Now mime-view uses `mime-view-ignored-field-list' directly in
204 default header-presentation-method.
207 ** Abolish body filter support
209 Please use body-presentation-method.
214 - Rename `mime-view-following-method-alist' to
215 `mime-preview-following-method-alist'
217 - Rename `mime-method-to-combine-message/partial-pieces' to
218 `mime-combine-message/partial-pieces-automatically'
221 * Changes in SEMI 1.6
223 ** Abolish tm-compatible external method support
225 Abolish tm-compatible external method support. Please use mailcap
226 method instead of it.
229 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
231 C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
233 C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
237 ** New method to detect content of entity
239 Now MIME-View can detect content of entity for
240 application/octet-stream in default setting.
242 It uses "file" command to detect. User can customize
243 `mime-file-content-type-alist' to specify media-type for output of
244 "file" command. It is an alist of "file" output patterns
245 vs. corresponding media-types. Each element looks like (REGEXP TYPE
246 SUBTYPE). REGEXP is pattern for "file" command output. TYPE is
247 symbol to indicate primary type of media-type. SUBTYPE is symbol to
248 indicate subtype of media-type.
251 ** New interface to display message
253 - Function `mime-view-buffer'
254 - Function `mime-view-display-message'
257 ** Change interface of internal playback method
259 Interface of internal playback method was changed to
263 It is as same as interface of body-presentation-method.
266 ** Change interface of `mime-view-entity-button-visible-p'
268 ** Change interface of `mime-view-insert-entity-button'
271 ** `mime-preview-original-major-mode'
273 Abolish variable `mime-preview-original-major-mode'.
275 Please use function `mime-preview-original-major-mode' instead of
279 ** mime-preview-over-to-{previous|next}-method-alist
281 `mime-preview-over-to-{previous|next}-method-alist' were renamed
282 from `mime-view-over-to-{previous|next}-method-alist'.
285 * Changes in SEMI 1.5
289 Add inline text/html preview feature using w3. If
290 `mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
293 ** `pgp-elkins' -> `pgp-mime'
295 Rename `pgp-elkins' -> `pgp-mime'. Variable
296 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
300 ** type-subtype-score
302 Now MIME-View chooses one entity to display body in
303 multipart/alternative. In this mechanism,
304 `mime-view-type-subtype-score-alist' is used to specify priority of
307 Variable `mime-view-type-subtype-score-alist' is alist of
308 TYPE-SUBTYPE vs. SCORE. TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
309 symbol TYPE or t. TYPE and SUBTYPE are symbol. `t' means default.
310 SCORE is integer. Larger number is larger priority.
315 Change text presentation mechanism. In anything older than SEMI
316 1.4, text presentation mechanism is based on filter model. However it
317 has design problem about conversion between byte representation and
318 text presentation. So SEMI was changed to use
319 body-presentation-method to display text entity. In this purpose, old
320 text decoding features were abolished and introduces news features
324 ** mime-raw-representation-type and mime-raw-representation-type-alist
326 Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
327 text presentation mechanism change (cf. previous section). Instead of
328 it, SEMI introduces variable about representation-type of
329 mime-raw-buffer. If it is `binary', mime-raw-buffer is as same as
330 network representation. If it is `cooked', mime-raw-buffer is
333 `mime-raw-representation-type-alist' is an alist of major-mode
334 vs. representation-type. Each element looks like
336 (SYMBOL . REPRESENTATION-TYPE).
338 SYMBOL is major-mode or t. t means default.
340 `mime-raw-representation-type' is a buffer local variable of
341 mime-raw-buffer. If it is non-nil, it overrides
342 `mime-raw-representation-type-alist'.
344 In addition, `mime-raw-buffer-coding-system-alist' was abolished.
345 Because representation-type has enough information.
348 * Changes in SEMI 1.4
352 mailcap was supported to set up 'mime-acting-condition.
354 tm-external-method scripts written by born shell were abolished.
357 ** mime-add-condition
359 New function to set up 'mime-preview-condition and/or
360 'mime-acting-condition.
363 ** signature setting in semi-setup.el
365 Abolish MUA depended signature setting.
367 Setting for mail-mode were moved to mail-mime-setup.el.
370 * Changes in SEMI 1.3
372 ** mime-acting-condition
374 Format of variable 'mime-acting-condition was changed from `atype'
375 to `condition tree'. Its format is as same as
376 'mime-preview-condition.
378 If there are two or more conditions are found when matching, menu
379 pops up to select method to run. Selected situation will be added to
380 example database. (cf. mime-acting-situation-examples-file)
384 *** mime-view-find-every-acting-situation
386 Find every available acting-situation if non-nil.
388 *** mime-acting-situation-examples-file
390 File name of example about acting-situation demonstrated by
394 * Changes in SEMI 1.2
400 'mime-view-plain-text-preview-hook was renamed to
401 'mime-preview-text/plain-hook.
405 Variable 'mime-view-childrens-header-showing-Content-Type-list was
406 abolished. Please use 'mime-preview-condition instead.
408 *** API about visible-predicates were abolished
410 Following functions were abolished:
412 mime-view-header-visible-p (entity message-info)
414 mime-view-body-visible-p (entity message-info)
416 mime-view-entity-separator-visible-p (entity message-info)
418 Please use 'mime-preview-condition instead.
420 Function 'mime-view-entity-button-visible-p is not abolished, but it
423 *** mime-preview-condition
425 Following are added as pre-defined keys:
427 'childrens-situation default preview-situation for children
428 'message-button to specify to display message-button
429 nil: default (invisible)
431 'invisible: invisible
432 'entity-button to specify to display entity-button
433 nil: default (visible)
435 'invisible: invisible
436 'header to specify to display header
437 nil: default (invisible)
439 'invisible: invisible
443 *** Interface for body-filter
445 'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
448 *** mime-text-decode-body
450 Function 'mime-decode-text-body was renamed to
451 'mime-text-decode-body and changed interface. New interface is
454 mime-text-decode-body (SITUATION)
456 SITUATION is preview-situation. Content-Transfer-Encoding and
457 MIME-charset are specified in field of it.
460 * Changes in SEMI 1.1
464 *** Setting variable about visible body
466 'mime-view-visible-media-type-list and
467 'mime-view-content-filter-alist were abolished. Please use
468 'mime-preview-condition instead.
470 Notice that 'mime-preview-condition is not list of
471 media-type/subtype string nor association-list. It uses new
472 data-structure `ctree' (condition-tree; it is introduced to replace
473 `atype'). Function 'ctree-set-calist-strictly and
474 'ctree-set-calist-with-default may be useful to modify it (`calist'
475 (condition-alist) is as same as `atype').
478 *** API about visible-predicates
480 Interface of visible-predicates for entity elements were changed.
481 New interfaces are following:
483 mime-view-entity-button-visible-p (entity message-info)
485 mime-view-header-visible-p (entity message-info)
487 mime-view-body-visible-p (entity message-info)
489 mime-view-entity-separator-visible-p (entity message-info)
494 *** entity representation
496 Structure 'mime-entity-info was renamed to 'mime-entity. So various
497 functions were renamed too.
500 *** Interface for entity-button generators
502 Interface of entity-button generators was changed. New interfaces
505 mime-view-insert-entity-button (entity message-info subject)
508 *** mime-preview-condition and preview-situation
510 Conditions about preview generation are unified to
511 'mime-preview-condition. Namely other variables, such as
512 'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
513 'mime-view-image-converter-alist were abolished.
515 Preview-situation is generated from entity information, running
516 environment and 'mime-preview-condition. These elements are checked
517 to match with each other. (it is similar to acting-situation)
519 Format of preview-situation is association-list. Following key is
523 'subtype media-subtype
524 'encoding content-transfer-encoding
525 'major-mode major-mode of MUA
526 <STRING> attribute of Content-Type field.
527 'body-presentation-method body-presentation-method
529 If 'body-presentation-method is 'with-filter, 'body-filter is used to
530 specify body-filter function. If 'body-presentation-method is
531 function, it is called to generate presentation of entity body.
533 Body-filter function 'mime-view-filter-for-image refers 'image-format.
535 Setting for message/partial button is specified by
536 'mime-preview-condition instead of hard-coding.
539 *** Interface for body-filter
541 Interface of body-filter was changed. New interfaces is following:
543 <body-filter> (situation)
545 Current pre-defined filters are following:
547 mime-view-filter-for-text/plain (situation)
548 mime-view-filter-for-text/richtext (situation)
549 mime-view-filter-for-text/enriched (situation)
550 mime-view-filter-for-image (situation) ; if available
552 'mime-view-filter-for-application/postscript was abolished.
555 *** Format of mime-acting-condition (acting-situation)
557 Format of `mime-acting-condition' were changed. `type' and
558 `subtype' are separated and changed to symbol.
563 - mime-view-buffer -> mime-preview-buffer
568 paragraph-separate: "[
\f]*$"