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