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 ignored-method)
15 Please use `situation' if you would like to specify `mode' and
19 ** Now acting-method must not expect to run in raw-buffer
21 Function `mime-play-entity' was changed to permit to run in any buffer
22 (may be called in preview-buffer). So each acting-method is called in
27 * Changes in SEMI 1.12
29 There are no user-visible changes.
31 ** New function `eliminate-top-spaces'
36 * Changes in SEMI 1.11
38 ** New function `mime-edit-decode-message-in-buffer'
40 Add new function `mime-edit-decode-message-in-buffer'. Function
41 `mime-edit-decode-buffer' was abolished.
44 ** Requires FLIM 1.12 API
47 * Changes in SEMI 1.10
49 ** Abolish variable `mime-temp-directory'
51 FLIM 1.11 and SEMI 1.10 use variable `temporary-file-directory'
52 instead of `mime-temp-directory'. So environment variable
53 "MIME_TMP_DIR" and "TM_TMP_DIR" are not effective to specify temporary
54 directory of FLIM and SEMI.
57 ** Abolish function `mime-text-insert-decoded-body'
59 SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
60 instead of `mime-text-insert-decoded-body'.
62 Now `mime-view-caesar' does not run `mime-text-decode-hook'.
67 ** User option `mime-encoding-list'
69 SEMI 1.9 requires FLIM 1.10 API. In FLIM 1.10 API, variable
70 `mime-file-encoding-method-alist' was abolished. If you want to use
71 non-standard Content-Transfer-Encoding to insert a file into sending
72 message, please edit new user option `mime-encoding-list' instead of
73 `mime-file-encoding-method-alist'.
76 ** Constant `mime-user-interface-product'
78 Constant `mime-user-interface-version' was renamed to
79 `mime-user-interface-product'. Notice that data format is changed
82 FLIM 1.10 API provides following macros to access a slot of the new
85 mime-product-name (product)
87 mime-product-version (product)
89 mime-product-code-name (product)
91 Please use them to get elements of the constant
92 `mime-user-interface-product'.
97 ** Don't use "file" command to detect content of entity
99 Acting-method to detect content of entity was modified not to use
102 Variable `mime-file-content-type-alist' was abolished. Instead of
103 it, new variable `mime-magic-type-alist' is available to customize.
104 It is an alist of regexp about magic-number vs. corresponding
105 media-types. Each element looks like (REGEXP TYPE SUBTYPE). REGEXP
106 is a regular expression to match against the beginning of the content
107 of entity. TYPE is symbol to indicate primary type of media-type.
108 SUBTYPE is symbol to indicate subtype of media-type.
111 ** Abolish external X-Face viewer
114 ** Abolish obsolete utility for *-field-list and *-field-regexp
116 Abolish function `tm:set-fields', `tm:add-fields' and
120 ** Change MUA interface of automatic message/partial combining
122 Abolish variable `mime-view-partial-message-method-alist'.
124 Instead of it, `request-partial-message-method' in acting-situation
125 is available to specify MUA depended implementation.
127 Each element of `mime-view-partial-message-method-alist' were
128 required to display message at current summary line, and its return
129 value were ignored. On the other hand,
130 `request-partial-message-method' is required to return structure of
131 message at current summary line. Format of it is mime-entity.
136 MIME-Edit inserts User-Agent field instaed of X-Emacs field if
137 `mime-edit-insert-user-agent-field' is not nil. Contents of
138 User-Agent is specified by mime-edit-user-agent-value'.
140 X-Emacs field related features were abolished.
143 * Changes in SEMI 1.7
145 ** Header-presentation-method
147 Now MIME-View uses header-presentation-method instead of
150 - abolish variable `mime-view-content-header-filter-alist'
152 - abolish function `mime-view-cut-header'
154 - Rename `mime-view-content-header-filter-hook' to
155 `mime-display-header-hook'
158 ** Abolish `mime-view-ignored-field-regexp'
160 Now mime-view uses `mime-view-ignored-field-list' directly in
161 default header-presentation-method.
164 ** Abolish body filter support
166 Please use body-presentation-method.
171 - Rename `mime-view-following-method-alist' to
172 `mime-preview-following-method-alist'
174 - Rename `mime-method-to-combine-message/partial-pieces' to
175 `mime-combine-message/partial-pieces-automatically'
178 * Changes in SEMI 1.6
180 ** Abolish tm-compatible external method support
182 Abolish tm-compatible external method support. Please use mailcap
183 method instead of it.
186 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
188 C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
190 C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
194 ** New method to detect content of entity
196 Now MIME-View can detect content of entity for
197 application/octet-stream in default setting.
199 It uses "file" command to detect. User can customize
200 `mime-file-content-type-alist' to specify media-type for output of
201 "file" command. It is an alist of "file" output patterns
202 vs. corresponding media-types. Each element looks like (REGEXP TYPE
203 SUBTYPE). REGEXP is pattern for "file" command output. TYPE is
204 symbol to indicate primary type of media-type. SUBTYPE is symbol to
205 indicate subtype of media-type.
208 ** New interface to display message
210 - Function `mime-view-buffer'
211 - Function `mime-view-display-message'
214 ** Change interface of internal playback method
216 Interface of internal playback method was changed to
220 It is as same as interface of body-presentation-method.
223 ** Change interface of `mime-view-entity-button-visible-p'
225 ** Change interface of `mime-view-insert-entity-button'
228 ** `mime-preview-original-major-mode'
230 Abolish variable `mime-preview-original-major-mode'.
232 Please use function `mime-preview-original-major-mode' instead of
236 ** mime-preview-over-to-{previous|next}-method-alist
238 `mime-preview-over-to-{previous|next}-method-alist' were renamed
239 from `mime-view-over-to-{previous|next}-method-alist'.
242 * Changes in SEMI 1.5
246 Add inline text/html preview feature using w3. If
247 `mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
250 ** `pgp-elkins' -> `pgp-mime'
252 Rename `pgp-elkins' -> `pgp-mime'. Variable
253 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
257 ** type-subtype-score
259 Now MIME-View chooses one entity to display body in
260 multipart/alternative. In this mechanism,
261 `mime-view-type-subtype-score-alist' is used to specify priority of
264 Variable `mime-view-type-subtype-score-alist' is alist of
265 TYPE-SUBTYPE vs. SCORE. TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
266 symbol TYPE or t. TYPE and SUBTYPE are symbol. `t' means default.
267 SCORE is integer. Larger number is larger priority.
272 Change text presentation mechanism. In anything older than SEMI
273 1.4, text presentation mechanism is based on filter model. However it
274 has design problem about conversion between byte representation and
275 text presentation. So SEMI was changed to use
276 body-presentation-method to display text entity. In this purpose, old
277 text decoding features were abolished and introduces news features
281 ** mime-raw-representation-type and mime-raw-representation-type-alist
283 Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
284 text presentation mechanism change (cf. previous section). Instead of
285 it, SEMI introduces variable about representation-type of
286 mime-raw-buffer. If it is `binary', mime-raw-buffer is as same as
287 network representation. If it is `cooked', mime-raw-buffer is
290 `mime-raw-representation-type-alist' is an alist of major-mode
291 vs. representation-type. Each element looks like
293 (SYMBOL . REPRESENTATION-TYPE).
295 SYMBOL is major-mode or t. t means default.
297 `mime-raw-representation-type' is a buffer local variable of
298 mime-raw-buffer. If it is non-nil, it overrides
299 `mime-raw-representation-type-alist'.
301 In addition, `mime-raw-buffer-coding-system-alist' was abolished.
302 Because representation-type has enough information.
305 * Changes in SEMI 1.4
309 mailcap was supported to set up 'mime-acting-condition.
311 tm-external-method scripts written by born shell were abolished.
314 ** mime-add-condition
316 New function to set up 'mime-preview-condition and/or
317 'mime-acting-condition.
320 ** signature setting in semi-setup.el
322 Abolish MUA depended signature setting.
324 Setting for mail-mode were moved to mail-mime-setup.el.
327 * Changes in SEMI 1.3
329 ** mime-acting-condition
331 Format of variable 'mime-acting-condition was changed from `atype'
332 to `condition tree'. Its format is as same as
333 'mime-preview-condition.
335 If there are two or more conditions are found when matching, menu
336 pops up to select method to run. Selected situation will be added to
337 example database. (cf. mime-acting-situation-examples-file)
341 *** mime-view-find-every-acting-situation
343 Find every available acting-situation if non-nil.
345 *** mime-acting-situation-examples-file
347 File name of example about acting-situation demonstrated by
351 * Changes in SEMI 1.2
357 'mime-view-plain-text-preview-hook was renamed to
358 'mime-preview-text/plain-hook.
362 Variable 'mime-view-childrens-header-showing-Content-Type-list was
363 abolished. Please use 'mime-preview-condition instead.
365 *** API about visible-predicates were abolished
367 Following functions were abolished:
369 mime-view-header-visible-p (entity message-info)
371 mime-view-body-visible-p (entity message-info)
373 mime-view-entity-separator-visible-p (entity message-info)
375 Please use 'mime-preview-condition instead.
377 Function 'mime-view-entity-button-visible-p is not abolished, but it
380 *** mime-preview-condition
382 Following are added as pre-defined keys:
384 'childrens-situation default preview-situation for children
385 'message-button to specify to display message-button
386 nil: default (invisible)
388 'invisible: invisible
389 'entity-button to specify to display entity-button
390 nil: default (visible)
392 'invisible: invisible
393 'header to specify to display header
394 nil: default (invisible)
396 'invisible: invisible
400 *** Interface for body-filter
402 'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
405 *** mime-text-decode-body
407 Function 'mime-decode-text-body was renamed to
408 'mime-text-decode-body and changed interface. New interface is
411 mime-text-decode-body (SITUATION)
413 SITUATION is preview-situation. Content-Transfer-Encoding and
414 MIME-charset are specified in field of it.
417 * Changes in SEMI 1.1
421 *** Setting variable about visible body
423 'mime-view-visible-media-type-list and
424 'mime-view-content-filter-alist were abolished. Please use
425 'mime-preview-condition instead.
427 Notice that 'mime-preview-condition is not list of
428 media-type/subtype string nor association-list. It uses new
429 data-structure `ctree' (condition-tree; it is introduced to replace
430 `atype'). Function 'ctree-set-calist-strictly and
431 'ctree-set-calist-with-default may be useful to modify it (`calist'
432 (condition-alist) is as same as `atype').
435 *** API about visible-predicates
437 Interface of visible-predicates for entity elements were changed.
438 New interfaces are following:
440 mime-view-entity-button-visible-p (entity message-info)
442 mime-view-header-visible-p (entity message-info)
444 mime-view-body-visible-p (entity message-info)
446 mime-view-entity-separator-visible-p (entity message-info)
451 *** entity representation
453 Structure 'mime-entity-info was renamed to 'mime-entity. So various
454 functions were renamed too.
457 *** Interface for entity-button generators
459 Interface of entity-button generators was changed. New interfaces
462 mime-view-insert-entity-button (entity message-info subject)
465 *** mime-preview-condition and preview-situation
467 Conditions about preview generation are unified to
468 'mime-preview-condition. Namely other variables, such as
469 'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
470 'mime-view-image-converter-alist were abolished.
472 Preview-situation is generated from entity information, running
473 environment and 'mime-preview-condition. These elements are checked
474 to match with each other. (it is similar to acting-situation)
476 Format of preview-situation is association-list. Following key is
480 'subtype media-subtype
481 'encoding content-transfer-encoding
482 'major-mode major-mode of MUA
483 <STRING> attribute of Content-Type field.
484 'body-presentation-method body-presentation-method
486 If 'body-presentation-method is 'with-filter, 'body-filter is used to
487 specify body-filter function. If 'body-presentation-method is
488 function, it is called to generate presentation of entity body.
490 Body-filter function 'mime-view-filter-for-image refers 'image-format.
492 Setting for message/partial button is specified by
493 'mime-preview-condition instead of hard-coding.
496 *** Interface for body-filter
498 Interface of body-filter was changed. New interfaces is following:
500 <body-filter> (situation)
502 Current pre-defined filters are following:
504 mime-view-filter-for-text/plain (situation)
505 mime-view-filter-for-text/richtext (situation)
506 mime-view-filter-for-text/enriched (situation)
507 mime-view-filter-for-image (situation) ; if available
509 'mime-view-filter-for-application/postscript was abolished.
512 *** Format of mime-acting-condition (acting-situation)
514 Format of `mime-acting-condition' were changed. `type' and
515 `subtype' are separated and changed to symbol.
520 - mime-view-buffer -> mime-preview-buffer
525 paragraph-separate: "[
\f]*$"