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