Initial Commit
[packages] / xemacs-packages / tm / texi / gnus-mime-en.texi
1 \input texinfo.tex
2 @setfilename gnus-mime-en.info
3 @settitle gnus-mime 0.10 reference manual (English Version)
4 @direntry
5 * Gnus-MIME-En::           MIME extensions for Gnus
6 @end direntry
7 @titlepage
8 @title gnus-mime 0.10 reference manual (English Version)
9 @author MORIOKA Tomohiko <morioka@@jaist.ac.jp>
10 @subtitle 1996/10/21
11 @end titlepage
12 @node Top, Introduction, (dir), (dir)
13 @top gnus-mime 0.10 reference manual (English Version)
14
15 @ifinfo
16
17 This file documents gnus-mime, a MIME extension for Gnus.
18 @end ifinfo
19
20 @menu
21 * Introduction::                What is gnus-mime?
22 * Automatic MIME Preview::      Inline display for MIME message
23 * mule::                        Internationalization
24 * MIME-Edit::                   Composing MIME messages
25 * Concept Index::               
26 * Function Index::              
27 * Variable Index::              
28 @end menu
29
30 @node Introduction, Automatic MIME Preview, Top, Top
31 @chapter What is gnus-mime?
32 @cindex gnus-mime
33
34 @strong{gnus-mime} is a MIME (@ref{(tm-en)MIME}) extender for Gnus
35 (@ref{(gnus)}) using tm (@ref{(tm-en)tm-kernel}).
36
37 @noindent
38 @strong{[Notice]}
39 @quotation
40
41 gnus-mime is for only Gnus.  Please use tm-gnus (@ref{(tm-gnus_en)}) for
42 GNUS.
43 @end quotation
44
45
46 gnus-mime supports automatic MIME preview in @code{"*Article*"} buffer
47 using tm-view (@ref{(tm-view-en)}).  In particular, with XEmacs, it
48 decodes images as same as text.@refill
49
50 In addition, gnus-mime supports multilingual/internationalization
51 feature for mule such as MULE (@ref{(tm-en)mule}), XEmacs/mule and mule
52 merged Emacs.  It supports code-conversion by MIME charset or depended
53 default MIME charset of newsgroups.@refill
54
55 For RFC 1522, original Gnus supports only Q-encoded iso-8859-1
56 (@ref{(tm-en)iso-8859-1}) encoded-word (@ref{(tm-en)encoded-word}).  So
57 gnus-mime supports more MIME charsets, such as iso-8859-2
58 (@ref{(tm-en)iso-8859-2}), iso-8859-3 (@ref{(tm-en)iso-8859-3}), ...,
59 iso-2022-jp (@ref{(tm-en)iso-2022-jp}), euc-kr (@ref{(tm-en)euc-kr}),
60 iso-2022-kr (@ref{(tm-en)iso-2022-kr}), gb2312, hz-gb-2312
61 (@ref{(tm-en)hz-gb-2312}), cn-big5 (@ref{(tm-en)cn-big5}), and
62 B-encoding.  In addition, original Gnus does not support unfolding or
63 space elimination rule of RFC 1522.  gnus-mime is more rightful.
64
65
66 @node Automatic MIME Preview, mule, Introduction, Top
67 @chapter Inline display for MIME message
68 @cindex XEmacs
69 @cindex automatic MIME preview
70
71 @strong{automatic MIME preview} feature is available for gnus-mime.  In
72 automatic MIME preview mode, when reading an article in summary mode,
73 gnus-mime displays preview buffer processed by tm-view instead of raw
74 article buffer. (cf. @ref{(tm-view-en)}) @refill
75
76 Therefore if an article is encoded by Base64 (@ref{(tm-en)Base64}) or
77 Quoted-Printable (@ref{(tm-en)Quoted-Printable}), a decoded article is
78 displayed.  Or rich text article, such as text/enriched
79 (@ref{(tm-en)text/enriched}) format, is automatic formated.  Of course,
80 multipart (@ref{(tm-en)multipart}) article is dealt with
81 correctly.@refill
82
83 In addition, in @strong{XEmacs}, images are displayed in preview buffer
84 as same as text.@refill
85
86 Different from using metamail, speaker does not roar just then read an
87 article includes audio content, video player does not play just then
88 read an article includes video content, it does not do anonymous ftp
89 (@ref{(tm-en)ftp}) or send mail when read an article includes
90 external-message.  These contents are played when you do decoding
91 command in preview buffer.@refill
92
93 However if you use a slow machine, or are just really impatient, you
94 can stop automatic MIME preview.
95
96
97 @menu
98 * MIME processing::             How to process MIME in Article Buffer
99 * Two buffers for an article::  Mechanism of Automatic MIME preview
100 @end menu
101
102 @node MIME processing, Two buffers for an article, Automatic MIME Preview, Automatic MIME Preview
103 @section How to process MIME in Article Buffer
104
105 When @code{gnus-show-mime} is not @code{nil} and an article has
106 Mime-Version field in its message header, namely it is a MIME message,
107 Gnus calls @code{gnus-show-mime-method} to process MIME.@refill
108
109 When @code{gnus-strict-mime} is @code{nil} and @code{gnus-show-mime} is
110 not @code{nil}, Gnus calls @code{gnus-show-mime-method} even if an
111 message does not have Mime-Version field in its message header.@refill
112
113 Gnus 5.2 or later calls @code{gnus-show-mime-method} when
114 @code{gnus-strict-mime} is not @code{nil} and an article
115 does not have Mime-Version field.  Notice that old Gnus does not have
116 it, so it may be better to set @code{gnus-strict-mime} to
117 @code{nil}.
118
119
120 @defvar gnus-show-mime
121
122 If it is not @code{nil}, Gnus do automatic MIME preview.  Default value
123 is @code{t}.@refill
124
125 It is a variable of Gnus, so if gnus is loaded before gnus-mime is
126 loaded, default value is not guaranteed.
127
128 (cf. @ref{(gnus)Using MIME})
129 @end defvar
130
131
132 @defvar gnus-show-mime-method
133
134 Gnus calls function bound by it to process MIME.  Default value is
135 @code{gnus-article-preview-mime-message}.@refill
136
137 It is a variable of Gnus, so if gnus is loaded before gnus-mime is
138 loaded, default value is not guaranteed.
139
140 (cf. @ref{(gnus)Using MIME})
141 @end defvar
142
143
144 @defvar gnus-decode-encoded-word-method
145
146 Gnus calls function bound by it to decode encoded-words.  Default value
147 is @code{gnus-article-decode-encoded-word}.@refill
148
149 It is a variable of Gnus, so if gnus is loaded before gnus-mime is
150 loaded, default value is not guaranteed.@refill
151
152 In addition, it is not available at Gnus 5.0.* or Gnus 5.1.
153 @end defvar
154
155
156 @noindent
157 @strong{[Notice]}
158 @quotation
159
160 gnus-mime uses some variables of Gnus and defines different default
161 values by @code{defvar}.  For example, gnus-mime's default value of
162 @code{gnus-show-mime} is @code{t} instead of @code{nil}.  Or its default
163 value of @code{gnus-show-mime-method} is
164 @code{gnus-article-preview-mime-message} instead of
165 @code{metamail-buffer}.  (cf. @ref{(gnus)Using MIME}) @refill
166
167 gnus-mime uses @code{defvar} instead of @code{setq}, because of respect
168 user's setting before gnus-mime is loaded, such as using
169 @file{~/.emacs}.  But it has a problem.  If gnus is loaded before
170 gnus-mime is loaded, features of gnus-mime is not available in default
171 even if gnus-mime is loaded.  Therefore there is serious problem to load
172 gnus before gnus-mime is loaded.  In other words, setting in
173 @file{~/.gnus}, such as to load @file{gnus-mime} or @file{mime-setup},
174 is not good way.  If you want such way, please do setting for
175 @code{gnus-show-mime} and @code{gnus-show-mime-method}.
176 @end quotation
177
178
179
180 @node Two buffers for an article,  , MIME processing, Automatic MIME Preview
181 @section Mechanism of Automatic MIME preview
182 @cindex preview buffer
183 @cindex raw article buffer
184
185 Gnus 5.2 or later has two buffers for an article,
186 @code{gnus-original-article-buffer} (@code{" *Original Article*"}) and
187 @code{gnus-article-buffer} (@code{"*Article*"}).  The former is called
188 @strong{raw article buffer}, the latter is called @strong{preview buffer}.@refill
189
190 Content of raw article buffer is non-processed ``raw message''.  In
191 particular, for emacs variants includes mule (@ref{(tm-en)mule})
192 features, message is not code-converted in it.@refill
193
194 Content of preview buffer is MIME processed message to display for user.
195 In particular, for emacs variants includes mule features, non-ASCII
196 message is code-converted in it by MIME charset or default MIME charset
197 (@ref{(tm-en)MIME charset}) for selected newsgroup.@refill
198
199 Gnus 5.0.* and Gnus 5.1 don't have distinction between raw article
200 buffer and preview buffer.  So gnus-mime emulate raw article buffer.  It
201 is unnatural, so it may be better to use Gnus 5.2 or later, which are
202 designed for tm-view.@refill
203
204 (cf. @ref{(tm-view-en)Two buffers for an article})
205
206
207
208 @node mule, MIME-Edit, Automatic MIME Preview, Top
209 @chapter Internationalization
210
211 For emacs variants includes mule feature, such as MULE
212 (@ref{(tm-en)MULE}), XEmacs/mule and Emacs/mule(*1), gnus-mime supports
213 code-conversion by MIME charset (@ref{(tm-en)MIME charset}) or
214 @code{default-mime-charset} of selected newsgroup.
215
216 @noindent
217 @strong{[Memo]}
218 @quotation
219 (*1) It means next generation of Emacs includes mule features.  Now
220 (October 1996), HANDA Ken'ichi and RMS are developing it.
221 @end quotation
222
223
224 Detail of code conversion is following:
225
226 @enumerate
227 @item
228 If a newsgroup is selected, MIME charset for the newsgroup is
229 searched from @code{gnus-newsgroup-default-charset-alist}.  If
230 it is found, it is set to buffer local variable
231 @code{default-mime-charset} of Summary Buffer.  If not found,
232 global value of @code{default-mime-charset} is used.
233 @item
234 Non-ASCII characters in Summary Buffer are code-converted by
235 @code{default-mime-charset} in Summary Buffer.
236 @item
237 encoded-word (@ref{(tm-en)encoded-word}) are code-converted by their
238 specified MIME charset (@ref{(tm-en)MIME charset}).
239 @item
240 Code-conversion of articles are following:
241
242 @enumerate
243 @item
244 If a part of a MIME message has charset parameter of Content-Type field
245 (@ref{(tm-en)Content-Type field}), it is code-converted by the MIME
246 charset.
247 @item
248 When there are no specified MIME charset, such as message header
249 or non-MIME message, they are code-converted by
250 @code{default-mime-charset} in Summary Buffer.
251 @end enumerate
252 @end enumerate
253
254
255
256 @defvar gnus-newsgroup-default-charset-alist
257
258 Association-list regexp for newsgroup vs. symbol for default MIME
259 charset.@refill
260
261 Default setting are following:
262
263 @table @samp
264 @item alt.chinese.*
265 hz-gb-2312 (@ref{(tm-en)hz-gb-2312})@refill
266
267 @item alt.chinese.text.big5, hk.*, hkstar.*, tw.*
268 cn-big5 (@ref{(tm-en)cn-big5})@refill
269
270 @item fj.*
271 iso-2022-jp-2 (@ref{(tm-en)iso-2022-jp-2})@refill
272
273 @item han.*
274 euc-kr (@ref{(tm-en)euc-kr})@refill
275
276 @item relcom.*
277 koi8-r (@ref{(tm-en)koi8-r})@refill
278
279 @end table
280
281 If there is no MIME charsets for a newsgroup,
282 @code{default-mime-charset} is used as default MIME charset.
283 @end defvar
284
285
286 @defun gnus-set-newsgroup-default-charsetnewsgroup charset
287
288 Set default MIME @var{charset} of @var{newsgroup} to
289 @code{gnus-newsgroup-default-charset-alist}.@refill
290
291 @var{newsgroup} is string of newsgroup name or category, for
292 @code{"gnu.emacs.gnus"}, @code{"gnu.emacs"}, @code{"gnu"}.@refill
293
294 @var{charset} is symbol of MIME charset, for example @code{iso-8859-1},
295 @code{iso-2022-jp}.
296 @end defun
297
298
299
300 @node MIME-Edit, Concept Index, mule, Top
301 @chapter Composing MIME messages
302
303 If using mime-setup (@ref{(tm-en)mime-setup}), you can edit MIME message
304 in message-mode using tm-edit (@ref{(tm-edit-en)}).
305
306 @noindent
307 @strong{[Notice]}
308 @quotation
309
310 Default setting of mime-setup avoids automatic inserting signature
311 when sending a message.
312
313 (cf. @ref{(tm-en)mime-setup})
314 @end quotation
315
316
317 gnus-mime does not have implementation for @kbd{C-c C-x C-m}
318 (@code{mime-editor/insert-mail}).  Because gnus-mime does not know which
319 mail-reader should be used.  In addition, @kbd{C-c C-x C-y}
320 (@code{mime-editor/insert-message}) is enough to insert mail (namely to
321 select a mail group and select a message to insert, then it is available
322 to insert the mail message).@refill
323
324 However you can use @kbd{C-c C-x C-m} to specify an
325 implementation of @code{message-mode} to
326 @code{mime-editor/mail-inserter-alist}.
327
328
329 @section Example: same as @kbd{C-c C-x C-m}
330
331 @lisp
332 (set-alist 'mime-editor/mail-inserter-alist
333            'message-mode (function message-mime-insert-article))
334 @end lisp
335
336
337
338 @section Example: including from MH folder
339
340 @lisp
341 (autoload 'tm-mh-e/insert-mail "tm-mh-e")
342
343 (set-alist 'mime-editor/mail-inserter-alist
344            'message-mode (function tm-mh-e/insert-mail))
345 @end lisp
346
347
348
349 @node Concept Index, Function Index, MIME-Edit, Top
350 @chapter Concept Index
351
352 @printindex cp
353
354 @node Function Index, Variable Index, Concept Index, Top
355 @chapter Function Index
356
357 @printindex fn
358
359 @node Variable Index,  , Function Index, Top
360 @chapter Variable Index
361
362 @printindex vr
363 @bye