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