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