Sync up with SEMI 1.13.0 and release.
[elisp/semi.git] / NEWS
1 SEMI NEWS --- history of major-changes.
2 Copyright (C) 1998,1999 Free Software Foundation, Inc.
3
4 * Changes in SEMI 1.13
5
6 ** Function `mime-play-entity'
7
8 Function `mime-play-entity' was renamed from `mime-raw-play-entity'
9 and changed interface.
10
11 Current interface is:
12
13     mime-play-entity (entity &optional situation mode
14                              ignore-examples ignored-method)
15
16
17 ** Now acting-method must not expect to run in raw-buffer
18
19 Function `mime-play-entity' was changed to permit to run in any buffer
20 (may be called in preview-buffer).  So each acting-method is called in
21 any buffer.
22
23
24 \f
25 * Changes in SEMI 1.12
26
27 There are no user-visible changes.
28
29 ** New function `eliminate-top-spaces'
30
31 Now mime-edit has it.
32
33 \f
34 * Changes in SEMI 1.11
35
36 ** New function `mime-edit-decode-message-in-buffer'
37
38 Add new function `mime-edit-decode-message-in-buffer'.  Function
39 `mime-edit-decode-buffer' was abolished.
40
41
42 ** Requires FLIM 1.12 API
43
44 \f
45 * Changes in SEMI 1.10
46
47 ** Abolish variable `mime-temp-directory'
48
49   FLIM 1.11 and SEMI 1.10 use variable `temporary-file-directory'
50 instead of `mime-temp-directory'.  So environment variable
51 "MIME_TMP_DIR" and "TM_TMP_DIR" are not effective to specify temporary
52 directory of FLIM and SEMI.
53
54
55 ** Abolish function `mime-text-insert-decoded-body'
56
57   SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
58 instead of `mime-text-insert-decoded-body'.
59
60   Now `mime-view-caesar' does not run `mime-text-decode-hook'.
61
62 \f
63 * Changes in SEMI 1.9
64
65 ** User option `mime-encoding-list'
66
67   SEMI 1.9 requires FLIM 1.10 API.  In FLIM 1.10 API, variable
68 `mime-file-encoding-method-alist' was abolished.  If you want to use
69 non-standard Content-Transfer-Encoding to insert a file into sending
70 message, please edit new user option `mime-encoding-list' instead of
71 `mime-file-encoding-method-alist'.
72
73
74 ** Constant `mime-user-interface-product'
75
76   Constant `mime-user-interface-version' was renamed to
77 `mime-user-interface-product'.  Notice that data format is changed
78 too.
79
80   FLIM 1.10 API provides following macros to access a slot of the new
81 data format:
82
83      mime-product-name (product)
84
85      mime-product-version (product)
86
87      mime-product-code-name (product)
88
89 Please use them to get elements of the constant
90 `mime-user-interface-product'.
91
92 \f
93 * Changes in SEMI 1.8
94
95 ** Don't use "file" command to detect content of entity
96
97   Acting-method to detect content of entity was modified not to use
98 "file" command.
99
100   Variable `mime-file-content-type-alist' was abolished.  Instead of
101 it, new variable `mime-magic-type-alist' is available to customize.
102 It is an alist of regexp about magic-number vs. corresponding
103 media-types.  Each element looks like (REGEXP TYPE SUBTYPE).  REGEXP
104 is a regular expression to match against the beginning of the content
105 of entity.  TYPE is symbol to indicate primary type of media-type.
106 SUBTYPE is symbol to indicate subtype of media-type.
107
108
109 ** Abolish external X-Face viewer
110
111
112 ** Abolish obsolete utility for *-field-list and *-field-regexp
113
114   Abolish function `tm:set-fields', `tm:add-fields' and
115 `tm:delete-fields'.
116
117
118 ** Change MUA interface of automatic message/partial combining
119
120   Abolish variable `mime-view-partial-message-method-alist'.
121
122   Instead of it, `request-partial-message-method' in acting-situation
123 is available to specify MUA depended implementation.
124
125   Each element of `mime-view-partial-message-method-alist' were
126 required to display message at current summary line, and its return
127 value were ignored.  On the other hand,
128 `request-partial-message-method' is required to return structure of
129 message at current summary line.  Format of it is mime-entity.
130
131
132 ** User-Agent field
133
134   MIME-Edit inserts User-Agent field instaed of X-Emacs field if
135 `mime-edit-insert-user-agent-field' is not nil.  Contents of
136 User-Agent is specified by mime-edit-user-agent-value'.
137
138   X-Emacs field related features were abolished.
139
140 \f
141 * Changes in SEMI 1.7
142
143 ** Header-presentation-method
144
145   Now MIME-View uses header-presentation-method instead of
146 header-filter.
147
148   - abolish variable `mime-view-content-header-filter-alist'
149
150   - abolish function `mime-view-cut-header'
151
152   - Rename `mime-view-content-header-filter-hook' to
153     `mime-display-header-hook'
154
155
156 ** Abolish `mime-view-ignored-field-regexp'
157
158   Now mime-view uses `mime-view-ignored-field-list' directly in
159 default header-presentation-method.
160
161
162 ** Abolish body filter support
163
164   Please use body-presentation-method.
165
166
167 ** Methods for MUAs
168
169   - Rename `mime-view-following-method-alist' to
170     `mime-preview-following-method-alist'
171
172   - Rename `mime-method-to-combine-message/partial-pieces' to
173     `mime-combine-message/partial-pieces-automatically'
174
175 \f
176 * Changes in SEMI 1.6
177
178 ** Abolish tm-compatible external method support
179
180   Abolish tm-compatible external method support.  Please use mailcap
181 method instead of it.
182
183
184 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
185
186   C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
187
188   C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
189 encryption.
190
191
192 ** New method to detect content of entity
193
194   Now MIME-View can detect content of entity for
195 application/octet-stream in default setting.
196
197   It uses "file" command to detect.  User can customize
198 `mime-file-content-type-alist' to specify media-type for output of
199 "file" command.  It is an alist of "file" output patterns
200 vs. corresponding media-types.  Each element looks like (REGEXP TYPE
201 SUBTYPE).  REGEXP is pattern for "file" command output.  TYPE is
202 symbol to indicate primary type of media-type.  SUBTYPE is symbol to
203 indicate subtype of media-type.
204
205
206 ** New interface to display message
207
208 - Function `mime-view-buffer'
209 - Function `mime-view-display-message'
210
211
212 ** Change interface of internal playback method
213
214   Interface of internal playback method was changed to
215
216         (entity situation)
217
218 It is as same as interface of body-presentation-method.
219
220
221 ** Change interface of `mime-view-entity-button-visible-p'
222
223 ** Change interface of `mime-view-insert-entity-button'
224
225
226 ** `mime-preview-original-major-mode'
227
228   Abolish variable `mime-preview-original-major-mode'.
229
230   Please use function `mime-preview-original-major-mode' instead of
231 it.
232
233
234 ** mime-preview-over-to-{previous|next}-method-alist
235
236   `mime-preview-over-to-{previous|next}-method-alist' were renamed
237 from `mime-view-over-to-{previous|next}-method-alist'.
238
239 \f
240 * Changes in SEMI 1.5
241
242 ** mime-w3
243
244   Add inline text/html preview feature using w3.  If
245 `mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
246
247
248 ** `pgp-elkins' -> `pgp-mime'
249
250   Rename `pgp-elkins' -> `pgp-mime'.  Variable
251 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
252 allow `pgp-elkins'.
253
254
255 ** type-subtype-score
256
257   Now MIME-View chooses one entity to display body in
258 multipart/alternative.  In this mechanism,
259 `mime-view-type-subtype-score-alist' is used to specify priority of
260 each entity.
261
262   Variable `mime-view-type-subtype-score-alist' is alist of
263 TYPE-SUBTYPE vs. SCORE.  TYPE-SUBTYPE is cons pair (TYPE . SUBTYPE),
264 symbol TYPE or t.  TYPE and SUBTYPE are symbol.  `t' means default.
265 SCORE is integer.  Larger number is larger priority.
266
267
268 ** text presentation
269
270   Change text presentation mechanism.  In anything older than SEMI
271 1.4, text presentation mechanism is based on filter model.  However it
272 has design problem about conversion between byte representation and
273 text presentation.  So SEMI was changed to use
274 body-presentation-method to display text entity.  In this purpose, old
275 text decoding features were abolished and introduces news features
276 (cf. next section).
277
278
279 ** mime-raw-representation-type and mime-raw-representation-type-alist
280
281   Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
282 text presentation mechanism change (cf. previous section).  Instead of
283 it, SEMI introduces variable about representation-type of
284 mime-raw-buffer.  If it is `binary', mime-raw-buffer is as same as
285 network representation.  If it is `cooked', mime-raw-buffer is
286 code-converted.
287
288   `mime-raw-representation-type-alist' is an alist of major-mode
289 vs. representation-type.  Each element looks like
290
291     (SYMBOL . REPRESENTATION-TYPE).
292
293 SYMBOL is major-mode or t.  t means default.
294
295   `mime-raw-representation-type' is a buffer local variable of
296 mime-raw-buffer.  If it is non-nil, it overrides
297 `mime-raw-representation-type-alist'.
298
299   In addition, `mime-raw-buffer-coding-system-alist' was abolished.
300 Because representation-type has enough information.
301
302 \f
303 * Changes in SEMI 1.4
304
305 ** mailcap
306
307   mailcap was supported to set up 'mime-acting-condition.
308
309   tm-external-method scripts written by born shell were abolished.
310
311
312 ** mime-add-condition
313
314   New function to set up 'mime-preview-condition and/or
315 'mime-acting-condition.
316
317
318 ** signature setting in semi-setup.el
319
320   Abolish MUA depended signature setting.
321
322   Setting for mail-mode were moved to mail-mime-setup.el.
323
324 \f
325 * Changes in SEMI 1.3
326
327 ** mime-acting-condition
328
329   Format of variable 'mime-acting-condition was changed from `atype'
330 to `condition tree'.  Its format is as same as
331 'mime-preview-condition.
332
333   If there are two or more conditions are found when matching, menu
334 pops up to select method to run.  Selected situation will be added to
335 example database. (cf. mime-acting-situation-examples-file)
336
337 ** New variables
338
339 *** mime-view-find-every-acting-situation
340
341         Find every available acting-situation if non-nil.
342
343 *** mime-acting-situation-examples-file
344
345         File name of example about acting-situation demonstrated by
346         user.
347
348 \f
349 * Changes in SEMI 1.2
350
351 ** User setting
352
353 *** hooks
354
355   'mime-view-plain-text-preview-hook was renamed to
356 'mime-preview-text/plain-hook.
357
358 *** Variable
359
360   Variable 'mime-view-childrens-header-showing-Content-Type-list was
361 abolished.  Please use 'mime-preview-condition instead.
362
363 *** API about visible-predicates were abolished
364
365   Following functions were abolished:
366
367     mime-view-header-visible-p (entity message-info)
368
369     mime-view-body-visible-p (entity message-info)
370
371     mime-view-entity-separator-visible-p (entity message-info)
372
373 Please use 'mime-preview-condition instead.
374
375   Function 'mime-view-entity-button-visible-p is not abolished, but it
376 is obsoleted.
377
378 *** mime-preview-condition
379
380   Following are added as pre-defined keys:
381
382         'childrens-situation    default preview-situation for children
383         'message-button         to specify to display message-button
384                                     nil:        default (invisible)
385                                     'visible:   visible
386                                     'invisible: invisible
387         'entity-button          to specify to display entity-button
388                                     nil:        default (visible)
389                                     'visible:   visible
390                                     'invisible: invisible
391         'header                 to specify to display header
392                                     nil:        default (invisible)
393                                     'visible:   visible
394                                     'invisible: invisible
395
396 ** API
397
398 *** Interface for body-filter
399
400   'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
401
402
403 *** mime-text-decode-body
404
405   Function 'mime-decode-text-body was renamed to
406 'mime-text-decode-body and changed interface.  New interface is
407 following:
408
409         mime-text-decode-body (SITUATION)
410
411 SITUATION is preview-situation.  Content-Transfer-Encoding and
412 MIME-charset are specified in field of it.
413
414 \f
415 * Changes in SEMI 1.1
416
417 ** User setting
418
419 *** Setting variable about visible body
420
421   'mime-view-visible-media-type-list and
422 'mime-view-content-filter-alist were abolished.  Please use
423 'mime-preview-condition instead.
424
425   Notice that 'mime-preview-condition is not list of
426 media-type/subtype string nor association-list.  It uses new
427 data-structure `ctree' (condition-tree; it is introduced to replace
428 `atype').  Function 'ctree-set-calist-strictly and
429 'ctree-set-calist-with-default may be useful to modify it (`calist'
430 (condition-alist) is as same as `atype').
431
432
433 *** API about visible-predicates
434
435   Interface of visible-predicates for entity elements were changed.
436 New interfaces are following:
437
438     mime-view-entity-button-visible-p (entity message-info)
439
440     mime-view-header-visible-p (entity message-info)
441
442     mime-view-body-visible-p (entity message-info)
443
444     mime-view-entity-separator-visible-p (entity message-info)
445
446
447 ** API
448
449 *** entity representation
450
451   Structure 'mime-entity-info was renamed to 'mime-entity.  So various
452 functions were renamed too.
453
454
455 *** Interface for entity-button generators
456
457   Interface of entity-button generators was changed.  New interfaces
458 is following:
459
460     mime-view-insert-entity-button (entity message-info subject)
461
462
463 *** mime-preview-condition and preview-situation
464
465   Conditions about preview generation are unified to
466 'mime-preview-condition.  Namely other variables, such as
467 'mime-view-visible-media-type-list, 'mime-view-content-filter-alist,
468 'mime-view-image-converter-alist were abolished.
469
470   Preview-situation is generated from entity information, running
471 environment and 'mime-preview-condition.  These elements are checked
472 to match with each other. (it is similar to acting-situation)
473
474   Format of preview-situation is association-list.  Following key is
475 pre-defined:
476
477         'type                     media-type
478         'subtype                  media-subtype
479         'encoding                 content-transfer-encoding
480         'major-mode               major-mode of MUA
481         <STRING>                  attribute of Content-Type field.
482         'body-presentation-method body-presentation-method
483
484 If 'body-presentation-method is 'with-filter, 'body-filter is used to
485 specify body-filter function.  If 'body-presentation-method is
486 function, it is called to generate presentation of entity body.
487
488 Body-filter function 'mime-view-filter-for-image refers 'image-format.
489
490 Setting for message/partial button is specified by
491 'mime-preview-condition instead of hard-coding.
492
493
494 *** Interface for body-filter
495
496   Interface of body-filter was changed.  New interfaces is following:
497
498     <body-filter> (situation)
499
500 Current pre-defined filters are following:
501
502         mime-view-filter-for-text/plain (situation)
503         mime-view-filter-for-text/richtext (situation)
504         mime-view-filter-for-text/enriched (situation)
505         mime-view-filter-for-image (situation) ; if available
506
507 'mime-view-filter-for-application/postscript was abolished.
508
509
510 *** Format of mime-acting-condition (acting-situation)
511
512   Format of `mime-acting-condition' were changed.  `type' and
513 `subtype' are separated and changed to symbol.
514
515
516 *** Renaming
517
518 - mime-view-buffer -> mime-preview-buffer
519
520 \f
521 Local variables:
522 mode: outline
523 paragraph-separate: "[  \f]*$"
524 end: