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 ** Function `mime-play-entity'
16 Function `mime-play-entity' was renamed from `mime-raw-play-entity'
17 and changed interface.
21 mime-play-entity (entity &optional situation ignored-method)
23 Please use `situation' if you would like to specify `mode' and
27 ** Now acting-method must not expect to run in raw-buffer
29 Function `mime-play-entity' was changed to permit to run in any buffer
30 (may be called in preview-buffer). So each acting-method is called in
35 * Changes in SEMI 1.12
37 There are no user-visible changes.
39 ** New function `eliminate-top-spaces'
44 * Changes in SEMI 1.11
46 ** New function `mime-edit-decode-message-in-buffer'
48 Add new function `mime-edit-decode-message-in-buffer'. Function
49 `mime-edit-decode-buffer' was abolished.
52 ** Requires FLIM 1.12 API
55 * Changes in SEMI 1.10
57 ** Abolish variable `mime-temp-directory'
59 FLIM 1.11 and SEMI 1.10 use variable `temporary-file-directory'
60 instead of `mime-temp-directory'. So environment variable
61 "MIME_TMP_DIR" and "TM_TMP_DIR" are not effective to specify temporary
62 directory of FLIM and SEMI.
65 ** Abolish function `mime-text-insert-decoded-body'
67 SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
68 instead of `mime-text-insert-decoded-body'.
70 Now `mime-view-caesar' does not run `mime-text-decode-hook'.
75 ** User option `mime-encoding-list'
77 SEMI 1.9 requires FLIM 1.10 API. In FLIM 1.10 API, variable
78 `mime-file-encoding-method-alist' was abolished. If you want to use
79 non-standard Content-Transfer-Encoding to insert a file into sending
80 message, please edit new user option `mime-encoding-list' instead of
81 `mime-file-encoding-method-alist'.
84 ** Constant `mime-user-interface-product'
86 Constant `mime-user-interface-version' was renamed to
87 `mime-user-interface-product'. Notice that data format is changed
90 FLIM 1.10 API provides following macros to access a slot of the new
93 mime-product-name (product)
95 mime-product-version (product)
97 mime-product-code-name (product)
99 Please use them to get elements of the constant
100 `mime-user-interface-product'.
103 * Changes in SEMI 1.8
105 ** Don't use "file" command to detect content of entity
107 Acting-method to detect content of entity was modified not to use
110 Variable `mime-file-content-type-alist' was abolished. Instead of
111 it, new variable `mime-magic-type-alist' is available to customize.
112 It is an alist of regexp about magic-number vs. corresponding
113 media-types. Each element looks like (REGEXP TYPE SUBTYPE). REGEXP
114 is a regular expression to match against the beginning of the content
115 of entity. TYPE is symbol to indicate primary type of media-type.
116 SUBTYPE is symbol to indicate subtype of media-type.
119 ** Abolish external X-Face viewer
122 ** Abolish obsolete utility for *-field-list and *-field-regexp
124 Abolish function `tm:set-fields', `tm:add-fields' and
128 ** Change MUA interface of automatic message/partial combining
130 Abolish variable `mime-view-partial-message-method-alist'.
132 Instead of it, `request-partial-message-method' in acting-situation
133 is available to specify MUA depended implementation.
135 Each element of `mime-view-partial-message-method-alist' were
136 required to display message at current summary line, and its return
137 value were ignored. On the other hand,
138 `request-partial-message-method' is required to return structure of
139 message at current summary line. Format of it is mime-entity.
144 MIME-Edit inserts User-Agent field instaed of X-Emacs field if
145 `mime-edit-insert-user-agent-field' is not nil. Contents of
146 User-Agent is specified by mime-edit-user-agent-value'.
148 X-Emacs field related features were abolished.
151 * Changes in SEMI 1.7
153 ** Header-presentation-method
155 Now MIME-View uses header-presentation-method instead of
158 - abolish variable `mime-view-content-header-filter-alist'
160 - abolish function `mime-view-cut-header'
162 - Rename `mime-view-content-header-filter-hook' to
163 `mime-display-header-hook'
166 ** Abolish `mime-view-ignored-field-regexp'
168 Now mime-view uses `mime-view-ignored-field-list' directly in
169 default header-presentation-method.
172 ** Abolish body filter support
174 Please use body-presentation-method.
179 - Rename `mime-view-following-method-alist' to
180 `mime-preview-following-method-alist'
182 - Rename `mime-method-to-combine-message/partial-pieces' to
183 `mime-combine-message/partial-pieces-automatically'
186 * Changes in SEMI 1.6
188 ** Abolish tm-compatible external method support
190 Abolish tm-compatible external method support. Please use mailcap
191 method instead of it.
194 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
196 C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
198 C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
202 ** New method to detect content of entity
204 Now MIME-View can detect content of entity for
205 application/octet-stream in default setting.
207 It uses "file" command to detect. User can customize
208 `mime-file-content-type-alist' to specify media-type for output of
209 "file" command. It is an alist of "file" output patterns
210 vs. corresponding media-types. Each element looks like (REGEXP TYPE
211 SUBTYPE). REGEXP is pattern for "file" command output. TYPE is
212 symbol to indicate primary type of media-type. SUBTYPE is symbol to
213 indicate subtype of media-type.
216 ** New interface to display message
218 - Function `mime-view-buffer'
219 - Function `mime-view-display-message'
222 ** Change interface of internal playback method
224 Interface of internal playback method was changed to
228 It is as same as interface of body-presentation-method.
231 ** Change interface of `mime-view-entity-button-visible-p'
233 ** Change interface of `mime-view-insert-entity-button'
236 ** `mime-preview-original-major-mode'
238 Abolish variable `mime-preview-original-major-mode'.
240 Please use function `mime-preview-original-major-mode' instead of
244 ** mime-preview-over-to-{previous|next}-method-alist
246 `mime-preview-over-to-{previous|next}-method-alist' were renamed
247 from `mime-view-over-to-{previous|next}-method-alist'.
250 * Changes in SEMI 1.5
254 Add inline text/html preview feature using w3. If
255 `mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
258 ** `pgp-elkins' -> `pgp-mime'
260 Rename `pgp-elkins' -> `pgp-mime'. Variable
261 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
265 ** type-subtype-score
267 Now MIME-View chooses one entity to display body in
268 multipart/alternative. In this mechanism,
269 `mime-view-type-subtype-score-alist' is used to specify priority of
272 Variable `mime-view-type-subtype-score-alist' is alist of
273 TYPE-SUBTYPE vs. SCORE. TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
274 symbol TYPE or t. TYPE and SUBTYPE are symbol. `t' means default.
275 SCORE is integer. Larger number is larger priority.
280 Change text presentation mechanism. In anything older than SEMI
281 1.4, text presentation mechanism is based on filter model. However it
282 has design problem about conversion between byte representation and
283 text presentation. So SEMI was changed to use
284 body-presentation-method to display text entity. In this purpose, old
285 text decoding features were abolished and introduces news features
289 ** mime-raw-representation-type and mime-raw-representation-type-alist
291 Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
292 text presentation mechanism change (cf. previous section). Instead of
293 it, SEMI introduces variable about representation-type of
294 mime-raw-buffer. If it is `binary', mime-raw-buffer is as same as
295 network representation. If it is `cooked', mime-raw-buffer is
298 `mime-raw-representation-type-alist' is an alist of major-mode
299 vs. representation-type. Each element looks like
301 (SYMBOL . REPRESENTATION-TYPE).
303 SYMBOL is major-mode or t. t means default.
305 `mime-raw-representation-type' is a buffer local variable of
306 mime-raw-buffer. If it is non-nil, it overrides
307 `mime-raw-representation-type-alist'.
309 In addition, `mime-raw-buffer-coding-system-alist' was abolished.
310 Because representation-type has enough information.
313 * Changes in SEMI 1.4
317 mailcap was supported to set up 'mime-acting-condition.
319 tm-external-method scripts written by born shell were abolished.
322 ** mime-add-condition
324 New function to set up 'mime-preview-condition and/or
325 'mime-acting-condition.
328 ** signature setting in semi-setup.el
330 Abolish MUA depended signature setting.
332 Setting for mail-mode were moved to mail-mime-setup.el.
335 * Changes in SEMI 1.3
337 ** mime-acting-condition
339 Format of variable 'mime-acting-condition was changed from `atype'
340 to `condition tree'. Its format is as same as
341 'mime-preview-condition.
343 If there are two or more conditions are found when matching, menu
344 pops up to select method to run. Selected situation will be added to
345 example database. (cf. mime-acting-situation-examples-file)
349 *** mime-view-find-every-acting-situation
351 Find every available acting-situation if non-nil.
353 *** mime-acting-situation-examples-file
355 File name of example about acting-situation demonstrated by
359 * Changes in SEMI 1.2
365 'mime-view-plain-text-preview-hook was renamed to
366 'mime-preview-text/plain-hook.
370 Variable 'mime-view-childrens-header-showing-Content-Type-list was
371 abolished. Please use 'mime-preview-condition instead.
373 *** API about visible-predicates were abolished
375 Following functions were abolished:
377 mime-view-header-visible-p (entity message-info)
379 mime-view-body-visible-p (entity message-info)
381 mime-view-entity-separator-visible-p (entity message-info)
383 Please use 'mime-preview-condition instead.
385 Function 'mime-view-entity-button-visible-p is not abolished, but it
388 *** mime-preview-condition
390 Following are added as pre-defined keys:
392 'childrens-situation default preview-situation for children
393 'message-button to specify to display message-button
394 nil: default (invisible)
396 'invisible: invisible
397 'entity-button to specify to display entity-button
398 nil: default (visible)
400 'invisible: invisible
401 'header to specify to display header
402 nil: default (invisible)
404 'invisible: invisible
408 *** Interface for body-filter
410 'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
413 *** mime-text-decode-body
415 Function 'mime-decode-text-body was renamed to
416 'mime-text-decode-body and changed interface. New interface is
419 mime-text-decode-body (SITUATION)
421 SITUATION is preview-situation. Content-Transfer-Encoding and
422 MIME-charset are specified in field of it.
425 * Changes in SEMI 1.1
429 *** Setting variable about visible body
431 'mime-view-visible-media-type-list and
432 'mime-view-content-filter-alist were abolished. Please use
433 'mime-preview-condition instead.
435 Notice that 'mime-preview-condition is not list of
436 media-type/subtype string nor association-list. It uses new
437 data-structure `ctree' (condition-tree; it is introduced to replace
438 `atype'). Function 'ctree-set-calist-strictly and
439 'ctree-set-calist-with-default may be useful to modify it (`calist'
440 (condition-alist) is as same as `atype').
443 *** API about visible-predicates
445 Interface of visible-predicates for entity elements were changed.
446 New interfaces are following:
448 mime-view-entity-button-visible-p (entity message-info)
450 mime-view-header-visible-p (entity message-info)
452 mime-view-body-visible-p (entity message-info)
454 mime-view-entity-separator-visible-p (entity message-info)
459 *** entity representation
461 Structure 'mime-entity-info was renamed to 'mime-entity. So various
462 functions were renamed too.
465 *** Interface for entity-button generators
467 Interface of entity-button generators was changed. New interfaces
470 mime-view-insert-entity-button (entity message-info subject)
473 *** mime-preview-condition and preview-situation
475 Conditions about preview generation are unified to
476 'mime-preview-condition. Namely other variables, such as
477 'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
478 'mime-view-image-converter-alist were abolished.
480 Preview-situation is generated from entity information, running
481 environment and 'mime-preview-condition. These elements are checked
482 to match with each other. (it is similar to acting-situation)
484 Format of preview-situation is association-list. Following key is
488 'subtype media-subtype
489 'encoding content-transfer-encoding
490 'major-mode major-mode of MUA
491 <STRING> attribute of Content-Type field.
492 'body-presentation-method body-presentation-method
494 If 'body-presentation-method is 'with-filter, 'body-filter is used to
495 specify body-filter function. If 'body-presentation-method is
496 function, it is called to generate presentation of entity body.
498 Body-filter function 'mime-view-filter-for-image refers 'image-format.
500 Setting for message/partial button is specified by
501 'mime-preview-condition instead of hard-coding.
504 *** Interface for body-filter
506 Interface of body-filter was changed. New interfaces is following:
508 <body-filter> (situation)
510 Current pre-defined filters are following:
512 mime-view-filter-for-text/plain (situation)
513 mime-view-filter-for-text/richtext (situation)
514 mime-view-filter-for-text/enriched (situation)
515 mime-view-filter-for-image (situation) ; if available
517 'mime-view-filter-for-application/postscript was abolished.
520 *** Format of mime-acting-condition (acting-situation)
522 Format of `mime-acting-condition' were changed. `type' and
523 `subtype' are separated and changed to symbol.
528 - mime-view-buffer -> mime-preview-buffer
533 paragraph-separate: "[
\f]*$"