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