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