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