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