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