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