6e505fbfffe1415bccd1598a0f3e81c24de48abe
[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 ** Function `mime-play-entity'
15
16 Function `mime-play-entity' was renamed from `mime-raw-play-entity'
17 and changed interface.
18
19 Current interface is:
20
21     mime-play-entity (entity &optional situation ignored-method)
22
23 Please use `situation' if you would like to specify `mode' and
24 `ignore-examples'.
25
26
27 ** Now acting-method must not expect to run in raw-buffer
28
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
31 any buffer.
32
33
34 ** Text property `mime-view-entity-{header|body}'
35
36 Now mime-view put text property `mime-view-entity-header' and
37 `mime-view-entity-body' in header and body of each entity.
38
39
40 ** Behavior change about `mime-display-header-hook'
41
42 Function `mime-display-entity' runs `mime-display-header-hook' before
43 it inserts "\n".
44
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.
48
49 \f
50 * Changes in SEMI 1.12
51
52 There are no user-visible changes.
53
54 ** New function `eliminate-top-spaces'
55
56 Now mime-edit has it.
57
58 \f
59 * Changes in SEMI 1.11
60
61 ** New function `mime-edit-decode-message-in-buffer'
62
63 Add new function `mime-edit-decode-message-in-buffer'.  Function
64 `mime-edit-decode-buffer' was abolished.
65
66
67 ** Requires FLIM 1.12 API
68
69 \f
70 * Changes in SEMI 1.10
71
72 ** Abolish variable `mime-temp-directory'
73
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.
78
79
80 ** Abolish function `mime-text-insert-decoded-body'
81
82   SEMI 1.10 uses function `mime-insert-text-content' of FLIM 1.11 API
83 instead of `mime-text-insert-decoded-body'.
84
85   Now `mime-view-caesar' does not run `mime-text-decode-hook'.
86
87 \f
88 * Changes in SEMI 1.9
89
90 ** User option `mime-encoding-list'
91
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'.
97
98
99 ** Constant `mime-user-interface-product'
100
101   Constant `mime-user-interface-version' was renamed to
102 `mime-user-interface-product'.  Notice that data format is changed
103 too.
104
105   FLIM 1.10 API provides following macros to access a slot of the new
106 data format:
107
108      mime-product-name (product)
109
110      mime-product-version (product)
111
112      mime-product-code-name (product)
113
114 Please use them to get elements of the constant
115 `mime-user-interface-product'.
116
117 \f
118 * Changes in SEMI 1.8
119
120 ** Don't use "file" command to detect content of entity
121
122   Acting-method to detect content of entity was modified not to use
123 "file" command.
124
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.
132
133
134 ** Abolish external X-Face viewer
135
136
137 ** Abolish obsolete utility for *-field-list and *-field-regexp
138
139   Abolish function `tm:set-fields', `tm:add-fields' and
140 `tm:delete-fields'.
141
142
143 ** Change MUA interface of automatic message/partial combining
144
145   Abolish variable `mime-view-partial-message-method-alist'.
146
147   Instead of it, `request-partial-message-method' in acting-situation
148 is available to specify MUA depended implementation.
149
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.
155
156
157 ** User-Agent field
158
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'.
162
163   X-Emacs field related features were abolished.
164
165 \f
166 * Changes in SEMI 1.7
167
168 ** Header-presentation-method
169
170   Now MIME-View uses header-presentation-method instead of
171 header-filter.
172
173   - abolish variable `mime-view-content-header-filter-alist'
174
175   - abolish function `mime-view-cut-header'
176
177   - Rename `mime-view-content-header-filter-hook' to
178     `mime-display-header-hook'
179
180
181 ** Abolish `mime-view-ignored-field-regexp'
182
183   Now mime-view uses `mime-view-ignored-field-list' directly in
184 default header-presentation-method.
185
186
187 ** Abolish body filter support
188
189   Please use body-presentation-method.
190
191
192 ** Methods for MUAs
193
194   - Rename `mime-view-following-method-alist' to
195     `mime-preview-following-method-alist'
196
197   - Rename `mime-method-to-combine-message/partial-pieces' to
198     `mime-combine-message/partial-pieces-automatically'
199
200 \f
201 * Changes in SEMI 1.6
202
203 ** Abolish tm-compatible external method support
204
205   Abolish tm-compatible external method support.  Please use mailcap
206 method instead of it.
207
208
209 ** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
210
211   C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
212
213   C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
214 encryption.
215
216
217 ** New method to detect content of entity
218
219   Now MIME-View can detect content of entity for
220 application/octet-stream in default setting.
221
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.
229
230
231 ** New interface to display message
232
233 - Function `mime-view-buffer'
234 - Function `mime-view-display-message'
235
236
237 ** Change interface of internal playback method
238
239   Interface of internal playback method was changed to
240
241         (entity situation)
242
243 It is as same as interface of body-presentation-method.
244
245
246 ** Change interface of `mime-view-entity-button-visible-p'
247
248 ** Change interface of `mime-view-insert-entity-button'
249
250
251 ** `mime-preview-original-major-mode'
252
253   Abolish variable `mime-preview-original-major-mode'.
254
255   Please use function `mime-preview-original-major-mode' instead of
256 it.
257
258
259 ** mime-preview-over-to-{previous|next}-method-alist
260
261   `mime-preview-over-to-{previous|next}-method-alist' were renamed
262 from `mime-view-over-to-{previous|next}-method-alist'.
263
264 \f
265 * Changes in SEMI 1.5
266
267 ** mime-w3
268
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.
271
272
273 ** `pgp-elkins' -> `pgp-mime'
274
275   Rename `pgp-elkins' -> `pgp-mime'.  Variable
276 `mime-edit-signing-type' and `mime-edit-encrypting-type' does not
277 allow `pgp-elkins'.
278
279
280 ** type-subtype-score
281
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
285 each entity.
286
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.
291
292
293 ** text presentation
294
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
301 (cf. next section).
302
303
304 ** mime-raw-representation-type and mime-raw-representation-type-alist
305
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
311 code-converted.
312
313   `mime-raw-representation-type-alist' is an alist of major-mode
314 vs. representation-type.  Each element looks like
315
316     (SYMBOL . REPRESENTATION-TYPE).
317
318 SYMBOL is major-mode or t.  t means default.
319
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'.
323
324   In addition, `mime-raw-buffer-coding-system-alist' was abolished.
325 Because representation-type has enough information.
326
327 \f
328 * Changes in SEMI 1.4
329
330 ** mailcap
331
332   mailcap was supported to set up 'mime-acting-condition.
333
334   tm-external-method scripts written by born shell were abolished.
335
336
337 ** mime-add-condition
338
339   New function to set up 'mime-preview-condition and/or
340 'mime-acting-condition.
341
342
343 ** signature setting in semi-setup.el
344
345   Abolish MUA depended signature setting.
346
347   Setting for mail-mode were moved to mail-mime-setup.el.
348
349 \f
350 * Changes in SEMI 1.3
351
352 ** mime-acting-condition
353
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.
357
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)
361
362 ** New variables
363
364 *** mime-view-find-every-acting-situation
365
366         Find every available acting-situation if non-nil.
367
368 *** mime-acting-situation-examples-file
369
370         File name of example about acting-situation demonstrated by
371         user.
372
373 \f
374 * Changes in SEMI 1.2
375
376 ** User setting
377
378 *** hooks
379
380   'mime-view-plain-text-preview-hook was renamed to
381 'mime-preview-text/plain-hook.
382
383 *** Variable
384
385   Variable 'mime-view-childrens-header-showing-Content-Type-list was
386 abolished.  Please use 'mime-preview-condition instead.
387
388 *** API about visible-predicates were abolished
389
390   Following functions were abolished:
391
392     mime-view-header-visible-p (entity message-info)
393
394     mime-view-body-visible-p (entity message-info)
395
396     mime-view-entity-separator-visible-p (entity message-info)
397
398 Please use 'mime-preview-condition instead.
399
400   Function 'mime-view-entity-button-visible-p is not abolished, but it
401 is obsoleted.
402
403 *** mime-preview-condition
404
405   Following are added as pre-defined keys:
406
407         'childrens-situation    default preview-situation for children
408         'message-button         to specify to display message-button
409                                     nil:        default (invisible)
410                                     'visible:   visible
411                                     'invisible: invisible
412         'entity-button          to specify to display entity-button
413                                     nil:        default (visible)
414                                     'visible:   visible
415                                     'invisible: invisible
416         'header                 to specify to display header
417                                     nil:        default (invisible)
418                                     'visible:   visible
419                                     'invisible: invisible
420
421 ** API
422
423 *** Interface for body-filter
424
425   'mime-view-filter-for-* was renamed to 'mime-preview-filter-for-*.
426
427
428 *** mime-text-decode-body
429
430   Function 'mime-decode-text-body was renamed to
431 'mime-text-decode-body and changed interface.  New interface is
432 following:
433
434         mime-text-decode-body (SITUATION)
435
436 SITUATION is preview-situation.  Content-Transfer-Encoding and
437 MIME-charset are specified in field of it.
438
439 \f
440 * Changes in SEMI 1.1
441
442 ** User setting
443
444 *** Setting variable about visible body
445
446   'mime-view-visible-media-type-list and
447 'mime-view-content-filter-alist were abolished.  Please use
448 'mime-preview-condition instead.
449
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').
456
457
458 *** API about visible-predicates
459
460   Interface of visible-predicates for entity elements were changed.
461 New interfaces are following:
462
463     mime-view-entity-button-visible-p (entity message-info)
464
465     mime-view-header-visible-p (entity message-info)
466
467     mime-view-body-visible-p (entity message-info)
468
469     mime-view-entity-separator-visible-p (entity message-info)
470
471
472 ** API
473
474 *** entity representation
475
476   Structure 'mime-entity-info was renamed to 'mime-entity.  So various
477 functions were renamed too.
478
479
480 *** Interface for entity-button generators
481
482   Interface of entity-button generators was changed.  New interfaces
483 is following:
484
485     mime-view-insert-entity-button (entity message-info subject)
486
487
488 *** mime-preview-condition and preview-situation
489
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.
494
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)
498
499   Format of preview-situation is association-list.  Following key is
500 pre-defined:
501
502         'type                     media-type
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
508
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.
512
513 Body-filter function 'mime-view-filter-for-image refers 'image-format.
514
515 Setting for message/partial button is specified by
516 'mime-preview-condition instead of hard-coding.
517
518
519 *** Interface for body-filter
520
521   Interface of body-filter was changed.  New interfaces is following:
522
523     <body-filter> (situation)
524
525 Current pre-defined filters are following:
526
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
531
532 'mime-view-filter-for-application/postscript was abolished.
533
534
535 *** Format of mime-acting-condition (acting-situation)
536
537   Format of `mime-acting-condition' were changed.  `type' and
538 `subtype' are separated and changed to symbol.
539
540
541 *** Renaming
542
543 - mime-view-buffer -> mime-preview-buffer
544
545 \f
546 Local variables:
547 mode: outline
548 paragraph-separate: "[  \f]*$"
549 end: