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