1 SEMI NEWS --- history of major-changes.
2 Copyright (C) 1998 Free Software Foundation, Inc.
6 There are no user-visible changes.
8 ** New function `eliminate-top-spaces'
13 * Changes in SEMI 1.11
15 ** New function `mime-edit-decode-message-in-buffer'
17 Add new function `mime-edit-decode-message-in-buffer'. Function
18 `mime-edit-decode-buffer' was abolished.
21 ** Requires FLIM 1.12 API
24 * Changes in SEMI 1.10
26 ** Abolish variable `mime-temp-directory'
28 FLIM 1.11 and SEMI 1.10 use variable `temporary-file-directory'
29 instead of `mime-temp-directory'. So environment variable
30 "MIME_TMP_DIR" and "TM_TMP_DIR" are not effective to specify temporary
31 directory of FLIM and SEMI.
34 ** Abolish function `mime-text-insert-decoded-body'
36 SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
37 instead of `mime-text-insert-decoded-body'.
39 Now `mime-view-caesar' does not run `mime-text-decode-hook'.
44 ** User option `mime-encoding-list'
46 SEMI 1.9 requires FLIM 1.10 API. In FLIM 1.10 API, variable
47 `mime-file-encoding-method-alist' was abolished. If you want to use
48 non-standard Content-Transfer-Encoding to insert a file into sending
49 message, please edit new user option `mime-encoding-list' instead of
50 `mime-file-encoding-method-alist'.
53 ** Constant `mime-user-interface-product'
55 Constant `mime-user-interface-version' was renamed to
56 `mime-user-interface-product'. Notice that data format is changed
59 FLIM 1.10 API provides following macros to access a slot of the new
62 mime-product-name (product)
64 mime-product-version (product)
66 mime-product-code-name (product)
68 Please use them to get elements of the constant
69 `mime-user-interface-product'.
74 ** Don't use "file" command to detect content of entity
76 Acting-method to detect content of entity was modified not to use
79 Variable `mime-file-content-type-alist' was abolished. Instead of
80 it, new variable `mime-magic-type-alist' is available to customize.
81 It is an alist of regexp about magic-number vs. corresponding
82 media-types. Each element looks like (REGEXP TYPE SUBTYPE). REGEXP
83 is a regular expression to match against the beginning of the content
84 of entity. TYPE is symbol to indicate primary type of media-type.
85 SUBTYPE is symbol to indicate subtype of media-type.
88 ** Abolish external X-Face viewer
91 ** Abolish obsolete utility for *-field-list and *-field-regexp
93 Abolish function `tm:set-fields', `tm:add-fields' and
97 ** Change MUA interface of automatic message/partial combining
99 Abolish variable `mime-view-partial-message-method-alist'.
101 Instead of it, `request-partial-message-method' in acting-situation
102 is available to specify MUA depended implementation.
104 Each element of `mime-view-partial-message-method-alist' were
105 required to display message at current summary line, and its return
106 value were ignored. On the other hand,
107 `request-partial-message-method' is required to return structure of
108 message at current summary line. Format of it is mime-entity.
113 MIME-Edit inserts User-Agent field instaed of X-Emacs field if
114 `mime-edit-insert-user-agent-field' is not nil. Contents of
115 User-Agent is specified by mime-edit-user-agent-value'.
117 X-Emacs field related features were abolished.
120 * Changes in SEMI 1.7
122 ** Header-presentation-method
124 Now MIME-View uses header-presentation-method instead of
127 - abolish variable `mime-view-content-header-filter-alist'
129 - abolish function `mime-view-cut-header'
131 - Rename `mime-view-content-header-filter-hook' to
132 `mime-display-header-hook'
135 ** Abolish `mime-view-ignored-field-regexp'
137 Now mime-view uses `mime-view-ignored-field-list' directly in
138 default header-presentation-method.
141 ** Abolish body filter support
143 Please use body-presentation-method.
148 - Rename `mime-view-following-method-alist' to
149 `mime-preview-following-method-alist'
151 - Rename `mime-method-to-combine-message/partial-pieces' to
152 `mime-combine-message/partial-pieces-automatically'
155 * Changes in SEMI 1.6
157 ** Abolish tm-compatible external method support
159 Abolish tm-compatible external method support. Please use mailcap
160 method instead of it.
163 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
165 C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
167 C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
171 ** New method to detect content of entity
173 Now MIME-View can detect content of entity for
174 application/octet-stream in default setting.
176 It uses "file" command to detect. User can customize
177 `mime-file-content-type-alist' to specify media-type for output of
178 "file" command. It is an alist of "file" output patterns
179 vs. corresponding media-types. Each element looks like (REGEXP TYPE
180 SUBTYPE). REGEXP is pattern for "file" command output. TYPE is
181 symbol to indicate primary type of media-type. SUBTYPE is symbol to
182 indicate subtype of media-type.
185 ** New interface to display message
187 - Function `mime-view-buffer'
188 - Function `mime-view-display-message'
191 ** Change interface of internal playback method
193 Interface of internal playback method was changed to
197 It is as same as interface of body-presentation-method.
200 ** Change interface of `mime-view-entity-button-visible-p'
202 ** Change interface of `mime-view-insert-entity-button'
205 ** `mime-preview-original-major-mode'
207 Abolish variable `mime-preview-original-major-mode'.
209 Please use function `mime-preview-original-major-mode' instead of
213 ** mime-preview-over-to-{previous|next}-method-alist
215 `mime-preview-over-to-{previous|next}-method-alist' were renamed
216 from `mime-view-over-to-{previous|next}-method-alist'.
219 * Changes in SEMI 1.5
223 Add inline text/html preview feature using w3. If
224 `mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
227 ** `pgp-elkins' -> `pgp-mime'
229 Rename `pgp-elkins' -> `pgp-mime'. Variable
230 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
234 ** type-subtype-score
236 Now MIME-View chooses one entity to display body in
237 multipart/alternative. In this mechanism,
238 `mime-view-type-subtype-score-alist' is used to specify priority of
241 Variable `mime-view-type-subtype-score-alist' is alist of
242 TYPE-SUBTYPE vs. SCORE. TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
243 symbol TYPE or t. TYPE and SUBTYPE are symbol. `t' means default.
244 SCORE is integer. Larger number is larger priority.
249 Change text presentation mechanism. In anything older than SEMI
250 1.4, text presentation mechanism is based on filter model. However it
251 has design problem about conversion between byte representation and
252 text presentation. So SEMI was changed to use
253 body-presentation-method to display text entity. In this purpose, old
254 text decoding features were abolished and introduces news features
258 ** mime-raw-representation-type and mime-raw-representation-type-alist
260 Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
261 text presentation mechanism change (cf. previous section). Instead of
262 it, SEMI introduces variable about representation-type of
263 mime-raw-buffer. If it is `binary', mime-raw-buffer is as same as
264 network representation. If it is `cooked', mime-raw-buffer is
267 `mime-raw-representation-type-alist' is an alist of major-mode
268 vs. representation-type. Each element looks like
270 (SYMBOL . REPRESENTATION-TYPE).
272 SYMBOL is major-mode or t. t means default.
274 `mime-raw-representation-type' is a buffer local variable of
275 mime-raw-buffer. If it is non-nil, it overrides
276 `mime-raw-representation-type-alist'.
278 In addition, `mime-raw-buffer-coding-system-alist' was abolished.
279 Because representation-type has enough information.
282 * Changes in SEMI 1.4
286 mailcap was supported to set up 'mime-acting-condition.
288 tm-external-method scripts written by born shell were abolished.
291 ** mime-add-condition
293 New function to set up 'mime-preview-condition and/or
294 'mime-acting-condition.
297 ** signature setting in semi-setup.el
299 Abolish MUA depended signature setting.
301 Setting for mail-mode were moved to mail-mime-setup.el.
304 * Changes in SEMI 1.3
306 ** mime-acting-condition
308 Format of variable 'mime-acting-condition was changed from `atype'
309 to `condition tree'. Its format is as same as
310 'mime-preview-condition.
312 If there are two or more conditions are found when matching, menu
313 pops up to select method to run. Selected situation will be added to
314 example database. (cf. mime-acting-situation-examples-file)
318 *** mime-view-find-every-acting-situation
320 Find every available acting-situation if non-nil.
322 *** mime-acting-situation-examples-file
324 File name of example about acting-situation demonstrated by
328 * Changes in SEMI 1.2
334 'mime-view-plain-text-preview-hook was renamed to
335 'mime-preview-text/plain-hook.
339 Variable 'mime-view-childrens-header-showing-Content-Type-list was
340 abolished. Please use 'mime-preview-condition instead.
342 *** API about visible-predicates were abolished
344 Following functions were abolished:
346 mime-view-header-visible-p (entity message-info)
348 mime-view-body-visible-p (entity message-info)
350 mime-view-entity-separator-visible-p (entity message-info)
352 Please use 'mime-preview-condition instead.
354 Function 'mime-view-entity-button-visible-p is not abolished, but it
357 *** mime-preview-condition
359 Following are added as pre-defined keys:
361 'childrens-situation default preview-situation for children
362 'message-button to specify to display message-button
363 nil: default (invisible)
365 'invisible: invisible
366 'entity-button to specify to display entity-button
367 nil: default (visible)
369 'invisible: invisible
370 'header to specify to display header
371 nil: default (invisible)
373 'invisible: invisible
377 *** Interface for body-filter
379 'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
382 *** mime-text-decode-body
384 Function 'mime-decode-text-body was renamed to
385 'mime-text-decode-body and changed interface. New interface is
388 mime-text-decode-body (SITUATION)
390 SITUATION is preview-situation. Content-Transfer-Encoding and
391 MIME-charset are specified in field of it.
394 * Changes in SEMI 1.1
398 *** Setting variable about visible body
400 'mime-view-visible-media-type-list and
401 'mime-view-content-filter-alist were abolished. Please use
402 'mime-preview-condition instead.
404 Notice that 'mime-preview-condition is not list of
405 media-type/subtype string nor association-list. It uses new
406 data-structure `ctree' (condition-tree; it is introduced to replace
407 `atype'). Function 'ctree-set-calist-strictly and
408 'ctree-set-calist-with-default may be useful to modify it (`calist'
409 (condition-alist) is as same as `atype').
412 *** API about visible-predicates
414 Interface of visible-predicates for entity elements were changed.
415 New interfaces are following:
417 mime-view-entity-button-visible-p (entity message-info)
419 mime-view-header-visible-p (entity message-info)
421 mime-view-body-visible-p (entity message-info)
423 mime-view-entity-separator-visible-p (entity message-info)
428 *** entity representation
430 Structure 'mime-entity-info was renamed to 'mime-entity. So various
431 functions were renamed too.
434 *** Interface for entity-button generators
436 Interface of entity-button generators was changed. New interfaces
439 mime-view-insert-entity-button (entity message-info subject)
442 *** mime-preview-condition and preview-situation
444 Conditions about preview generation are unified to
445 'mime-preview-condition. Namely other variables, such as
446 'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
447 'mime-view-image-converter-alist were abolished.
449 Preview-situation is generated from entity information, running
450 environment and 'mime-preview-condition. These elements are checked
451 to match with each other. (it is similar to acting-situation)
453 Format of preview-situation is association-list. Following key is
457 'subtype media-subtype
458 'encoding content-transfer-encoding
459 'major-mode major-mode of MUA
460 <STRING> attribute of Content-Type field.
461 'body-presentation-method body-presentation-method
463 If 'body-presentation-method is 'with-filter, 'body-filter is used to
464 specify body-filter function. If 'body-presentation-method is
465 function, it is called to generate presentation of entity body.
467 Body-filter function 'mime-view-filter-for-image refers 'image-format.
469 Setting for message/partial button is specified by
470 'mime-preview-condition instead of hard-coding.
473 *** Interface for body-filter
475 Interface of body-filter was changed. New interfaces is following:
477 <body-filter> (situation)
479 Current pre-defined filters are following:
481 mime-view-filter-for-text/plain (situation)
482 mime-view-filter-for-text/richtext (situation)
483 mime-view-filter-for-text/enriched (situation)
484 mime-view-filter-for-image (situation) ; if available
486 'mime-view-filter-for-application/postscript was abolished.
489 *** Format of mime-acting-condition (acting-situation)
491 Format of `mime-acting-condition' were changed. `type' and
492 `subtype' are separated and changed to symbol.
497 - mime-view-buffer -> mime-preview-buffer
502 paragraph-separate: "[
\f]*$"