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
34 ** Text property `mime-view-entity-{header|body}'
36 Now mime-view put text property `mime-view-entity-header' and
37 `mime-view-entity-body' in header and body of each entity.
40 ** Behavior change about `mime-display-header-hook'
42 Function `mime-display-entity' runs `mime-display-header-hook' before
45 In addition, now it is cleared that current point means beginning of
46 header when `mime-display-entity' runs `mime-display-header-hook'.
47 Therefore header-presentation-method must not change current point.
50 * Changes in SEMI 1.12
52 There are no user-visible changes.
54 ** New function `eliminate-top-spaces'
59 * Changes in SEMI 1.11
61 ** New function `mime-edit-decode-message-in-buffer'
63 Add new function `mime-edit-decode-message-in-buffer'. Function
64 `mime-edit-decode-buffer' was abolished.
67 ** Requires FLIM 1.12 API
70 * Changes in SEMI 1.10
72 ** Abolish variable `mime-temp-directory'
74 FLIM 1.11 and SEMI 1.10 use variable `temporary-file-directory'
75 instead of `mime-temp-directory'. So environment variable
76 "MIME_TMP_DIR" and "TM_TMP_DIR" are not effective to specify temporary
77 directory of FLIM and SEMI.
80 ** Abolish function `mime-text-insert-decoded-body'
82 SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
83 instead of `mime-text-insert-decoded-body'.
85 Now `mime-view-caesar' does not run `mime-text-decode-hook'.
90 ** User option `mime-encoding-list'
92 SEMI 1.9 requires FLIM 1.10 API. In FLIM 1.10 API, variable
93 `mime-file-encoding-method-alist' was abolished. If you want to use
94 non-standard Content-Transfer-Encoding to insert a file into sending
95 message, please edit new user option `mime-encoding-list' instead of
96 `mime-file-encoding-method-alist'.
99 ** Constant `mime-user-interface-product'
101 Constant `mime-user-interface-version' was renamed to
102 `mime-user-interface-product'. Notice that data format is changed
105 FLIM 1.10 API provides following macros to access a slot of the new
108 mime-product-name (product)
110 mime-product-version (product)
112 mime-product-code-name (product)
114 Please use them to get elements of the constant
115 `mime-user-interface-product'.
118 * Changes in SEMI 1.8
120 ** Don't use "file" command to detect content of entity
122 Acting-method to detect content of entity was modified not to use
125 Variable `mime-file-content-type-alist' was abolished. Instead of
126 it, new variable `mime-magic-type-alist' is available to customize.
127 It is an alist of regexp about magic-number vs. corresponding
128 media-types. Each element looks like (REGEXP TYPE SUBTYPE). REGEXP
129 is a regular expression to match against the beginning of the content
130 of entity. TYPE is symbol to indicate primary type of media-type.
131 SUBTYPE is symbol to indicate subtype of media-type.
134 ** Abolish external X-Face viewer
137 ** Abolish obsolete utility for *-field-list and *-field-regexp
139 Abolish function `tm:set-fields', `tm:add-fields' and
143 ** Change MUA interface of automatic message/partial combining
145 Abolish variable `mime-view-partial-message-method-alist'.
147 Instead of it, `request-partial-message-method' in acting-situation
148 is available to specify MUA depended implementation.
150 Each element of `mime-view-partial-message-method-alist' were
151 required to display message at current summary line, and its return
152 value were ignored. On the other hand,
153 `request-partial-message-method' is required to return structure of
154 message at current summary line. Format of it is mime-entity.
159 MIME-Edit inserts User-Agent field instaed of X-Emacs field if
160 `mime-edit-insert-user-agent-field' is not nil. Contents of
161 User-Agent is specified by mime-edit-user-agent-value'.
163 X-Emacs field related features were abolished.
166 * Changes in SEMI 1.7
168 ** Header-presentation-method
170 Now MIME-View uses header-presentation-method instead of
173 - abolish variable `mime-view-content-header-filter-alist'
175 - abolish function `mime-view-cut-header'
177 - Rename `mime-view-content-header-filter-hook' to
178 `mime-display-header-hook'
181 ** Abolish `mime-view-ignored-field-regexp'
183 Now mime-view uses `mime-view-ignored-field-list' directly in
184 default header-presentation-method.
187 ** Abolish body filter support
189 Please use body-presentation-method.
194 - Rename `mime-view-following-method-alist' to
195 `mime-preview-following-method-alist'
197 - Rename `mime-method-to-combine-message/partial-pieces' to
198 `mime-combine-message/partial-pieces-automatically'
201 * Changes in SEMI 1.6
203 ** Abolish tm-compatible external method support
205 Abolish tm-compatible external method support. Please use mailcap
206 method instead of it.
209 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
211 C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
213 C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
217 ** New method to detect content of entity
219 Now MIME-View can detect content of entity for
220 application/octet-stream in default setting.
222 It uses "file" command to detect. User can customize
223 `mime-file-content-type-alist' to specify media-type for output of
224 "file" command. It is an alist of "file" output patterns
225 vs. corresponding media-types. Each element looks like (REGEXP TYPE
226 SUBTYPE). REGEXP is pattern for "file" command output. TYPE is
227 symbol to indicate primary type of media-type. SUBTYPE is symbol to
228 indicate subtype of media-type.
231 ** New interface to display message
233 - Function `mime-view-buffer'
234 - Function `mime-view-display-message'
237 ** Change interface of internal playback method
239 Interface of internal playback method was changed to
243 It is as same as interface of body-presentation-method.
246 ** Change interface of `mime-view-entity-button-visible-p'
248 ** Change interface of `mime-view-insert-entity-button'
251 ** `mime-preview-original-major-mode'
253 Abolish variable `mime-preview-original-major-mode'.
255 Please use function `mime-preview-original-major-mode' instead of
259 ** mime-preview-over-to-{previous|next}-method-alist
261 `mime-preview-over-to-{previous|next}-method-alist' were renamed
262 from `mime-view-over-to-{previous|next}-method-alist'.
265 * Changes in SEMI 1.5
269 Add inline text/html preview feature using w3. If
270 `mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
273 ** `pgp-elkins' -> `pgp-mime'
275 Rename `pgp-elkins' -> `pgp-mime'. Variable
276 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
280 ** type-subtype-score
282 Now MIME-View chooses one entity to display body in
283 multipart/alternative. In this mechanism,
284 `mime-view-type-subtype-score-alist' is used to specify priority of
287 Variable `mime-view-type-subtype-score-alist' is alist of
288 TYPE-SUBTYPE vs. SCORE. TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
289 symbol TYPE or t. TYPE and SUBTYPE are symbol. `t' means default.
290 SCORE is integer. Larger number is larger priority.
295 Change text presentation mechanism. In anything older than SEMI
296 1.4, text presentation mechanism is based on filter model. However it
297 has design problem about conversion between byte representation and
298 text presentation. So SEMI was changed to use
299 body-presentation-method to display text entity. In this purpose, old
300 text decoding features were abolished and introduces news features
304 ** mime-raw-representation-type and mime-raw-representation-type-alist
306 Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
307 text presentation mechanism change (cf. previous section). Instead of
308 it, SEMI introduces variable about representation-type of
309 mime-raw-buffer. If it is `binary', mime-raw-buffer is as same as
310 network representation. If it is `cooked', mime-raw-buffer is
313 `mime-raw-representation-type-alist' is an alist of major-mode
314 vs. representation-type. Each element looks like
316 (SYMBOL . REPRESENTATION-TYPE).
318 SYMBOL is major-mode or t. t means default.
320 `mime-raw-representation-type' is a buffer local variable of
321 mime-raw-buffer. If it is non-nil, it overrides
322 `mime-raw-representation-type-alist'.
324 In addition, `mime-raw-buffer-coding-system-alist' was abolished.
325 Because representation-type has enough information.
328 * Changes in SEMI 1.4
332 mailcap was supported to set up 'mime-acting-condition.
334 tm-external-method scripts written by born shell were abolished.
337 ** mime-add-condition
339 New function to set up 'mime-preview-condition and/or
340 'mime-acting-condition.
343 ** signature setting in semi-setup.el
345 Abolish MUA depended signature setting.
347 Setting for mail-mode were moved to mail-mime-setup.el.
350 * Changes in SEMI 1.3
352 ** mime-acting-condition
354 Format of variable 'mime-acting-condition was changed from `atype'
355 to `condition tree'. Its format is as same as
356 'mime-preview-condition.
358 If there are two or more conditions are found when matching, menu
359 pops up to select method to run. Selected situation will be added to
360 example database. (cf. mime-acting-situation-examples-file)
364 *** mime-view-find-every-acting-situation
366 Find every available acting-situation if non-nil.
368 *** mime-acting-situation-examples-file
370 File name of example about acting-situation demonstrated by
374 * Changes in SEMI 1.2
380 'mime-view-plain-text-preview-hook was renamed to
381 'mime-preview-text/plain-hook.
385 Variable 'mime-view-childrens-header-showing-Content-Type-list was
386 abolished. Please use 'mime-preview-condition instead.
388 *** API about visible-predicates were abolished
390 Following functions were abolished:
392 mime-view-header-visible-p (entity message-info)
394 mime-view-body-visible-p (entity message-info)
396 mime-view-entity-separator-visible-p (entity message-info)
398 Please use 'mime-preview-condition instead.
400 Function 'mime-view-entity-button-visible-p is not abolished, but it
403 *** mime-preview-condition
405 Following are added as pre-defined keys:
407 'childrens-situation default preview-situation for children
408 'message-button to specify to display message-button
409 nil: default (invisible)
411 'invisible: invisible
412 'entity-button to specify to display entity-button
413 nil: default (visible)
415 'invisible: invisible
416 'header to specify to display header
417 nil: default (invisible)
419 'invisible: invisible
423 *** Interface for body-filter
425 'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
428 *** mime-text-decode-body
430 Function 'mime-decode-text-body was renamed to
431 'mime-text-decode-body and changed interface. New interface is
434 mime-text-decode-body (SITUATION)
436 SITUATION is preview-situation. Content-Transfer-Encoding and
437 MIME-charset are specified in field of it.
440 * Changes in SEMI 1.1
444 *** Setting variable about visible body
446 'mime-view-visible-media-type-list and
447 'mime-view-content-filter-alist were abolished. Please use
448 'mime-preview-condition instead.
450 Notice that 'mime-preview-condition is not list of
451 media-type/subtype string nor association-list. It uses new
452 data-structure `ctree' (condition-tree; it is introduced to replace
453 `atype'). Function 'ctree-set-calist-strictly and
454 'ctree-set-calist-with-default may be useful to modify it (`calist'
455 (condition-alist) is as same as `atype').
458 *** API about visible-predicates
460 Interface of visible-predicates for entity elements were changed.
461 New interfaces are following:
463 mime-view-entity-button-visible-p (entity message-info)
465 mime-view-header-visible-p (entity message-info)
467 mime-view-body-visible-p (entity message-info)
469 mime-view-entity-separator-visible-p (entity message-info)
474 *** entity representation
476 Structure 'mime-entity-info was renamed to 'mime-entity. So various
477 functions were renamed too.
480 *** Interface for entity-button generators
482 Interface of entity-button generators was changed. New interfaces
485 mime-view-insert-entity-button (entity message-info subject)
488 *** mime-preview-condition and preview-situation
490 Conditions about preview generation are unified to
491 'mime-preview-condition. Namely other variables, such as
492 'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
493 'mime-view-image-converter-alist were abolished.
495 Preview-situation is generated from entity information, running
496 environment and 'mime-preview-condition. These elements are checked
497 to match with each other. (it is similar to acting-situation)
499 Format of preview-situation is association-list. Following key is
503 'subtype media-subtype
504 'encoding content-transfer-encoding
505 'major-mode major-mode of MUA
506 <STRING> attribute of Content-Type field.
507 'body-presentation-method body-presentation-method
509 If 'body-presentation-method is 'with-filter, 'body-filter is used to
510 specify body-filter function. If 'body-presentation-method is
511 function, it is called to generate presentation of entity body.
513 Body-filter function 'mime-view-filter-for-image refers 'image-format.
515 Setting for message/partial button is specified by
516 'mime-preview-condition instead of hard-coding.
519 *** Interface for body-filter
521 Interface of body-filter was changed. New interfaces is following:
523 <body-filter> (situation)
525 Current pre-defined filters are following:
527 mime-view-filter-for-text/plain (situation)
528 mime-view-filter-for-text/richtext (situation)
529 mime-view-filter-for-text/enriched (situation)
530 mime-view-filter-for-image (situation) ; if available
532 'mime-view-filter-for-application/postscript was abolished.
535 *** Format of mime-acting-condition (acting-situation)
537 Format of `mime-acting-condition' were changed. `type' and
538 `subtype' are separated and changed to symbol.
543 - mime-view-buffer -> mime-preview-buffer
548 paragraph-separate: "[
\f]*$"