This commit was generated by cvs2svn to compensate for changes in r542,
[elisp/tm.git] / doc / tm-eng.tex,v
1 head    5.4;
2 access;
3 symbols;
4 locks; strict;
5 comment @% @;
6
7
8 5.4
9 date    94.10.17.03.05.02;      author morioka; state Exp;
10 branches;
11 next    5.2;
12
13 5.2
14 date    94.10.17.02.55.02;      author morioka; state Exp;
15 branches;
16 next    ;
17
18
19 desc
20 @@
21
22
23 5.4
24 log
25 @I added description for vm.
26 @
27 text
28 @\documentstyle{report}
29
30 \title{tm Reference Manual (English Edition)}
31 \author{{\Large Morioka Tomohiko} \\
32   {\normalsize $<$morioka@@jaist.ac.jp$>$}\\
33   \\
34   {\large translated by \Large Ueno Hiroshi} \\
35   {\normalsize $<$jl07715@@yamato.ibm.co.jp$>$}
36   }
37 \date{\verb$Id: tm-eng.tex,v 5.2 1994/10/17 02:55:02 morioka Exp morioka $}
38
39 \begin{document}
40
41 \maketitle
42 \tableofcontents
43
44 \chapter{Overview}
45
46 The tm package is a set of modules to enjoy MIME on GNU Emacs.  Using tm,
47 you can
48
49 \begin{itemize}
50 \item playback or view the MIME messages using new mime/viewer-mode
51 \item encode and decode the multi-lingual headers
52 \item use the enhanced MIME functions with mh-e, GNUS, and RMAIL
53 \end{itemize}
54
55 \noindent and more.
56
57
58 \section{Module List}
59
60 The tm package includes the modules listed below.
61
62 \begin{itemize}
63 \item {\bf tiny-mime} : MIME header encoder/decoder
64 \item {\bf tm-view} : MIME message viewer
65 \item {\bf tm-misc} : common part of tm-MUAs
66 \item {\bf tm-MUAs} : MIME function enhancer for MUAs
67   \begin{itemize}
68   \item {\bf tm-mh-e} : tm-MUA for mh-e
69   \item {\bf tm-gnus} : tm-MUA for GNUS
70   \item {\bf tm-rmail} : tm-MUA for RMAIL
71   \item {\bf tm-vm} : tm-MUA for vm
72   \end{itemize}
73 \item {\bf tm-setup} tm-MUA setup module
74 \item {\bf mime-setup} MIME setup module
75 \end{itemize}
76
77
78 \chapter{Considerations for Each Version of Emacs}
79
80 \section{Emacs (original)}
81
82 A single character set can be used if you use the original Emacs.
83
84 \section{NEmacs, NEpoch}
85
86 ISO-2022-JP and US-ASCII can be used if you use NEmacs.
87
88
89 \section{Mule}
90
91 Mule can handle the multi-lingual text.  With Mule, tiny-mime supports
92 ISO-2022-JP, ISO-2022-JP-2, US-ASCII, ISO-8859-1..9, ISO-2022-CN,
93 ISO-2022-KR, EUC-KR, etc.  You can also add or change
94 encoding/decoding for character sets by mime/set-charset-and-encoding
95 function.
96
97
98 \chapter{Installation and Setup}
99
100 \section{Installation}
101
102 You can install tm by following the procedures below.
103
104 \begin{enumerate}
105 \item modify bindir definition in Makefile according to your build
106   environment.
107 \item modify the method scripts in methods/ directory so that it
108   can work in your environment.  Refer to \ref{sec:method} section
109   for how you can suit the method scripts to your environment.
110 \item make all
111 \item make install
112 \item copy all files with .el suffix into the directory pointed by Emacs
113   load-path variable.
114 \end{enumerate}
115
116 \noindent{\bf [Notes]}
117 \begin{itemize}
118 \item Make sure mh-e version 3.x has been loaded before byte-compiling
119   tm-mh-e3.el.
120 \item Make sure GNUS 3 has been loaded before byte-compiling tm-gnus3.el.
121 \item Use Emacs 18 when you byte-compile tl-18.el.
122 \item Use the original Emacs when you byte-compile tl-orig.el.
123 \item Use NEmacs when you byte-compile tl-nemacs.el.
124 \item Use Mule when you byte-compile tl-mule.el.
125 \item Modules byte-compiled by Emacs 19 do not work with Emacs 18.
126 \end{itemize}
127
128
129 \section{Setup}
130
131 In the tm package, two files, mime-setup.el and tm-setup.el, are provided
132 to ease the setup. A mime-setup.el is used for the whole MIME related
133 setup including MIME encoding, while tm-setup is used to set up tm-MUA
134 only.
135
136
137 \subsection{mime-setup}
138
139 \begin{verbatim}
140 (load "mime-setup")
141 \end{verbatim}
142
143 \noindent will perform various settings of MIME.  As mime-setup loads
144 tm-setup, you do not need to load tm-setup when you use mime-setup.
145
146 You can also set up the "automatic signature selection tool" using
147 mime-setup.  If you want to automatically select the signature file
148 depending on how the message headers show, add lines like shown below
149 to your .emacs (Refer to the reference manual of signature.el for
150 more details).
151
152 \begin{verbatim}
153 (setq signature-file-alist
154       '((("Newsgroups" . "jokes")       . "~/.signature-jokes")
155         (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun")
156         (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun")
157         (("To" . "tea")                 . "~/.signature-jokes")
158         (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal")
159         ))
160 \end{verbatim}
161
162 mime-setup requires mime.el. if you set up SuperCite via mime-setup,
163 you need the SuperCite package also.
164
165
166 \subsection{tm-setup}
167
168 tm-setup only sets up tm-MUAs.  You do not need to explicitly load
169 tm-setup if you are using mime-setup for your setup.  tm-setup is useful
170 when you do not want to use mime-setup but want to set up tm-MUAs.
171
172 \begin{verbatim}
173 (load "tm-setup")
174 \end{verbatim}
175
176
177 \subsection{vm}
178
179 If you want use vm, please insert following in .vm or .emacs:
180
181 \begin{verbatim}
182 (load "tm-vm")
183 \end{verbatim}
184
185
186 \subsection{setting up without loading provided setup files}
187
188 You may find the valuable hints in tm-setup.el if you want to set up
189 MIME environment without loading the tm-provided setup files.
190
191
192 \subsection{setting up MH}
193
194 If you are using MH-6.8JP2, add the following lines to your
195 .mh\_profile.
196
197 \begin{verbatim}
198 scan:   -form scan.mime
199 inc:    -form inc.mime
200 repl:   -form replcomps.mime
201 showproc: mhl
202 \end{verbatim}
203
204 \noindent Emacs will handle the most part of MH processing.  You
205 should not specify further options in your MH profile to avoid any
206 possible conflict between MH and Emacs.
207
208
209
210 \chapter{tm-MUA}
211
212 ``tm-MUA'' is a generic name of the modules which enhance the MIME
213 functions of MUA like mh-e, GNUS, and RMAIL etc.
214
215 The current version of tm provides the following tm-MUA.
216
217 \begin{itemize}
218 \item {\bf tm-mh-e} : tm-MUA for mh-e
219 \item {\bf tm-gnus} : tm-MUA for GNUS
220 \item {\bf tm-rmail} : tm-MUA for RAMIL
221 \end{itemize}
222
223 \noindent You can find the detailed explanations of these modules in
224 the following sections.
225
226
227 \section{Summary Mode}
228
229 If you are using tm-MUA, the following functions are added to the Summary
230 mode of the MUA.
231
232 \medskip
233 \begin{center}
234   \begin{tabular}{|l|l|}\hline
235     key & function \\ \hline
236     M-t & toggles decoding of MIME headers \\
237     v   & enters mime/view-mode \\ \hline
238   \end{tabular}
239 \end{center}
240 \medskip
241
242
243 \section{mime/viewer-mode}
244 \label{sec:mime/viewer-mode}
245
246 If you are using tm-MUA, mime/viewer-mode becomes active by pressing
247 {\bf v} key in the Summary mode.  In mime/viewer-mode, you can manipulate
248 the MIME messages by the simple key operations.  The following list shows
249 the functions and their key bindings which can be used in mime/viewer-mode.
250
251 \medskip
252 \begin{center}
253   \begin{tabular}{|l|l|}\hline
254     key     & function \\ \hline
255     u       & goes to the upper content \\
256             & returns to the Summary mode if the cursor is sitting on
257               the top content (*1) \\
258     p       & goes to the previous content \\
259     n       & goes to the next content \\
260     SPC     & scrolls up \\
261     M-SPC   & scrolls down \\
262     DEL     & scrolls down \\
263     RET     & goes to the next line \\
264     M-RET   & goes to the previous line \\
265     v       & playbacks a content            (*2) \\
266     e       & extracts a file from a content (*2) \\
267     C-c C-p & prints a content               (*2) \\ \hline
268   \end{tabular}
269 \end{center}
270 \medskip
271
272 \bigskip
273
274 \newcounter{asteriskcount}
275 \noindent{\bf \e$B!N\e(BNote\e$B!O\e(B}
276 \vspace{-1ex}
277 {\list{(*\arabic{asteriskcount})}{\usecounter{asteriskcount}\leftmargin=8ex}
278 \item Not return to the Summary mode unless tm-view has been setup using
279 tm-mh-e, tm-gnus, tm-rmail etc.
280 \item Actual playback/extract/print will be performed by a method.
281 \endlist}
282
283
284 \section{Customizing tm-gnus}
285
286 \subsection{saving articles without decoding}
287
288 By default, The articles will be saved as they appear in the buffer
289 at that time.
290
291 You can save the articles always without decoding by setting a
292 tm-gnus/set-mime-header-decoding-mode variable to nil then call a
293 function which saves the articles.
294
295 The following example shows how you can save an article without
296 decoding, preserving the current MIME header decoding mode.
297
298 \begin{verbatim}
299         (let ((mm mime/header-decoding-mode))
300           (tm-gnus/set-mime-header-decoding-mode nil)
301           (article save function)
302           (tm-gnus/set-mime-header-decoding-mode mm)
303           )
304 \end{verbatim}
305
306 The following is an example that saves the articles to a folder
307 of mh-e.
308
309 \begin{verbatim}
310 (add-hook 'gnus-Startup-hook
311           (function
312            (lambda ()
313              (setq gnus-default-article-saver
314                    (function
315                     (lambda ()
316                       (interactive)
317                       (let ((mm mime/header-decoding-mode))
318                         (tm-gnus/set-mime-header-decoding-mode nil)
319                         (gnus-Subject-save-in-folder)
320                         (tm-gnus/set-mime-header-decoding-mode mm)
321                         )))))))
322 (add-hook 'gnus-startup-hook
323           (function
324            (lambda ()
325              (setq gnus-default-article-saver
326                    (function
327                     (lambda ()
328                       (interactive)
329                       (let ((mm mime/header-decoding-mode))
330                         (tm-gnus/set-mime-header-decoding-mode nil)
331                         (gnus-summary-save-in-folder)
332                         (tm-gnus/set-mime-header-decoding-mode mm)
333                         )))))))
334 \end{verbatim}
335
336 \subsection{replying with encoded subject to an article with encoded subject}
337
338 When you reply to an article, you may want to encode the Subject field only
339 when the original article has an encoded Subject.  It can be done by
340 defining a hook as shown below.
341
342 \begin{verbatim}
343 (add-hook 'gnus-article-prepare-hook
344           (function
345            (lambda ()
346              (if (mime/exist-encoded-word-in-subject)
347                  (setq mime/no-encoding-header-fields '("X-Nsubject"))
348                (setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
349                ))))
350 \end{verbatim}
351
352
353 \chapter{tm-view}
354
355 tm-view is a module which is used to examine the MIME messages.
356 It provides a mime/viewer-mode for that purpose.
357
358 Regarding the functions of mime/viewer-mode, refer to
359 \ref{sec:mime/viewer-mode} section.
360
361 \section{Defining Conditions of Decoding}
362
363 A mime/content-decoding-condition variable is used to define the methods
364 which will be called at decoding.  It replaces a
365 mime/content-decoding-method-alist variable of tm-view version 4.x.
366
367 A mime/content-decoding-method-alist only allowed you to define a
368 method used for each content-type/subtype.  Now a 
369 mime/content-decoding-condition variable allows you to write more
370 complicated statements to describe the more detailed conditions to determine 
371 which method is to be use.
372
373 A mime/content-decoding-condition variable is defined as a list with the
374 following syntax.
375
376 \begin{eqnarray*}
377   (condition_1 \;\; condition_2 \;\; ...)
378 \end{eqnarray*}
379
380 \noindent Each condition is an association list with the following 
381 syntax.
382
383 \begin{eqnarray*}
384   ((field-type_1 \; . \; value_1) \;\;
385   (field-type_2 \; . \; value_2) \;\; ...)
386 \end{eqnarray*}
387
388 \noindent 
389
390 For example, if you want to call the external method named tm-plain
391 to decode every text/plain type content, you can define the condition like
392
393 \begin{quote}
394   ((type . "text/plain")
395   (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
396 \end{quote}
397
398 \noindent As you notice, now you can define the arguments to pass to a
399 external method.  Refer to \ref{sec:method-arguments} section for more
400 explanation.
401
402 This condition definition will match all contents whose types are text/plain.
403 Here is an another example.
404
405 \begin{quote}
406   ((type . "text/plain")
407   (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
408   (mode . "play"))
409 \end{quote}
410
411 \noindent This will match the content whose type is text/plain and
412 the mode is play.
413
414
415 \begin{quote}
416   ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
417   (mode . "play"))
418 \end{quote}
419
420 \noindent This will match all contents which have a mode of play.
421
422 The conditions defined in a mime/content-decoding-condition variable
423 are examined from top to bottom.  The first matching condition
424 becomes valid and the method specified in that condition definition
425 will be executed.
426
427
428 \subsection{arguments of method}
429 \label{sec:method-arguments}
430
431 You can specify the method field of the condition definition in two 
432 different ways.
433
434 \begin{eqnarray*}
435   (method \; . \; SYMBOL)
436 \end{eqnarray*}
437
438 \noindent or
439
440 \begin{eqnarray*}
441   (method \; STRING \; FLAG \; ARGUMENT_1 \; ARGUMENT_2 \; ...)
442 \end{eqnarray*}
443
444 \noindent can be accepted.
445
446 When a symbol is specified in the method field, it will be called as
447 an internal method.
448
449 When a list is specified in the method field, it will be called as an
450 external method.  The list below shows the meaning of the parameters 
451 when the external method is specified in the method field.
452
453 \begin{description}
454 \item [STRING] name of an external method
455 \item [FLAG] if t, both the content header and the content body are
456   passed to an external method. if nil, only the content body is
457   passed to an external method.
458 \item [ARGUMENT$_x$] list of arguments passed to an external method
459 \end{description}
460
461 An argument passed to an external method can be in one of the following
462 formats.
463
464 \begin{quote}
465   \begin{tabular}{lcl}
466     STRING&:&string itself \\
467     'SYMBOL&:&value gotten using SYMBOL as a key (see below) \\
468     'STRING&:&value gotten using STRING as a key (see below)
469   \end{tabular}
470 \end{quote}
471
472 'SYMBOL can be one of the following.
473
474 \begin{quote}
475   \begin{tabular}{lcl}
476     'file&:&name of a file holding the original content \\
477     'type&:&content-type/sub-type \\
478     'encoding&:&content-transfer-encoding \\
479     'mode&:&decoding mode \\
480     'name&:&name of a file created by decode operation
481   \end{tabular}
482 \end{quote}
483
484 \noindent 'STRING is used to search a parameter of the Content-Type
485 field whose name matches with it, and pass the value of that parameter
486 to the external method. 
487
488
489 \subsection{examples}
490
491 The default definition of a mime/content-decoding-condition variable is
492 shown below.
493
494 \begin{verbatim}
495 (defvar mime/content-decoding-condition
496   '(((type . "text/plain")
497      (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
498     ((type . "text/x-latex")
499      (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
500     ((type . "audio/basic")
501      (method "tm-au"    nil 'file 'type 'encoding 'mode 'name))
502     ((type . "image/gif")
503      (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
504     ((type . "image/jpeg")
505      (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
506     ((type . "image/tiff")
507      (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
508     ((type . "image/x-tiff")
509      (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
510     ((type . "image/x-xbm")
511      (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
512     ((type . "image/x-pic")
513      (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
514     ((type . "video/mpeg")`
515      (method "tm-mpeg"  nil 'file 'type 'encoding 'mode 'name))
516     ((type . "application/octet-stream")
517      (method "tm-file"  nil 'file 'type 'encoding 'mode 'name))
518     ((type . "message/partial")
519      (method . mime/decode-message/partial-region))
520     ((method "metamail" t
521              "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
522     ))
523 \end{verbatim}
524
525 For example, if you want to use metamail to decode any contents,
526
527 \begin{verbatim}
528 (setq mime/content-decoding-condition
529       '(
530         ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
531        ))
532 \end{verbatim}
533
534 \noindent will work.
535
536 A mime/content-decoding-condition variable provides you of very flexible
537 way to define the conditions of decoding.  It can be simple if you only
538 need the a few decoding methods, while it can be very complicated if you
539 want to use the separate decoding method for each type/mode combination.
540
541
542 \section{Method Script}
543 \label{sec:method}
544
545 The methods are written in shell script.  The arguments passed from tm-view.el
546 to each method can be customized using mime/content-decoding-condition
547 variable.  If you use the tm-provided setting of
548 mime/content-decoding-condition variable, the following arguments are
549 passed to the method.
550
551 \medskip
552 \begin{center}
553   \begin{tabular}{|c|l|} \hline
554     argument & \multicolumn{1}{|c|}{ meaning }\\ \hline
555     \$1      & file name before decoded     \\
556     \$2      & Content-Type (type/sub-type) \\
557     \$3      & encoding
558     \{7bit / quoted-printable / base64 / 8bit / binary / ...\}\\
559     \$4      & decoding-mode \{play / extract / print\}           \\
560     \$5      & file name after decoded                            \\ \hline
561   \end{tabular}
562 \end{center}
563 \medskip
564
565 Exceptionally, no method is used to restore message/partial messages
566 into one message.  It is done by tm-view.el itself.
567
568
569 \section{Changing Appearance}
570
571 Each content in the preview buffer is shown in the following format.
572
573 \begin{verbatim}
574 [1 (text/plain)]
575
576 body
577 \end{verbatim}
578
579 \noindent tm-view shows one content in three separate portions.
580
581 \begin{itemize}
582 \item content subject
583 \item content header
584 \item content body
585 \end{itemize}
586
587 \noindent
588
589
590 \subsection{content subject}
591
592 A content subject indicates the beginning of a content in the preview
593 buffer.  By default, it will be shown as below.
594
595 \begin{quote}
596   [cid title (type)]
597 \end{quote}
598
599 \noindent The cid field shows the position of a content in the message.
600 It can be considered as the chapter number in the message.  The title
601 field is composed of the text string from the Subject and the
602 Content-Description field.  The type field is a copy of a
603 text string specified in the type/subtype field of the content.
604
605 You can customize how the content subject appears in the preview
606 buffer by modifying a definition of mime/make-content-subject-function
607 variable.  The tm-view provides a following definition as a default.
608
609 \begin{verbatim}
610 (defvar mime/make-content-subject-function
611   (function
612    (lambda (cid subj ctype)
613      (insert
614       (format "[%s %s (%s)]\n"
615               (if (listp cid)
616                   (mapconcat (function
617                               (lambda (num)
618                                 (format "%s" (+ num 1))
619                                 ))
620                              cid ".")
621                 "0")
622               subj (car ctype)))
623      )))
624 \end{verbatim}
625
626 \noindent The following is an example of the customization.
627
628 \begin{verbatim}
629 (setq mime/make-content-subject-function
630       (function
631        (lambda (cid subj ctype)
632          (if (not (member (car ctype) mime/default-showing-Content-Type-list))
633              (insert
634               (format "[%s %s (%s)]\n"
635                       (if (listp cid)
636                           (mapconcat (function
637                                       (lambda (num)
638                                         (format "%s" (+ num 1))
639                                         ))
640                                      cid ".")
641                         "0")
642                       subj (car ctype))))
643          )))
644 \end{verbatim}
645
646 \noindent This will show the content subjects only for the contents whose body
647 portions are to be hidden.
648
649
650 \subsection{content header}
651
652 A content header shows the header portion of a content in the preview
653 buffer.  The default setup will show no content headers.
654
655 You can customize how the content header appears in the preview
656 buffer by modifying a definition of mime/make-content-header-filter
657 variable.  The tm-view provides a following default definition.
658
659
660 \begin{verbatim}
661 (defvar mime/make-content-header-filter
662   (function
663    (lambda (cid)
664      (if (listp cid)
665          (delete-region (goto-char (point-min))
666                         (or (and (re-search-forward "^$" nil t)
667                                  (match-end 0))
668                             (point-max))
669                         )
670        )
671      )))
672 \end{verbatim}
673
674 \noindent The default setting removes all content headers
675 until it detects a blank line delimiting the headers and the body.
676 If you change a mime/make-content-header-filter variable like
677
678 \begin{verbatim}
679 (setq mime/make-content-header-filter
680   (function
681    (lambda (cid)
682     )))
683 \end{verbatim}
684
685 \noindent you will see all headers in the content header portion.
686
687
688 \subsection{content body}
689
690 According to the type of content, the body portion of the content
691 is managed by tm-view using
692
693 \begin{enumerate}
694 \item Hide
695 \item Process
696 \end{enumerate}
697
698 \noindent techniques before it is put in the preview buffer.
699
700 'Hide' is performed to prevent showing the non-text type content body
701 in the preview buffer. A mime/default-showing-Content-Type-list
702 variable defines which type of contents will NOT be hidden.  It has
703 the following default value.
704
705 \begin{verbatim}
706 (defvar mime/default-showing-Content-Type-list
707   '("text/plain" "text/richtext" "text/enriched" "text/x-latex" nil))
708 \end{verbatim}
709
710 \noindent All contents are hidden except text/plain, text/richtext,
711 text/enriched, text/x-latex, and non-MIME contents.
712
713 A content body which was not "hidden" is then "processed".  A list
714 in a mime/content-filter-alist variable will be searched looking up
715 an entry which matches with the content-type of a content.  If a matching
716 entry is found, the function defined in that entry will be called
717 to "process" a content body.
718
719 A mime/content-filter-alist variable has nil as a default value.  It
720 will have non-nil after loading tm-rich.el which contains the following
721 lines.
722
723 \begin{verbatim}
724 (aput 'mime/content-filter-alist
725       "text/enriched" (function mime/decode-text/enriched-body))
726 \end{verbatim}
727
728 \noindent This is defining a process to be done to the text/enriched
729 type content body.  A function mime/decode-text/enriched-body will
730 be called if a text/enriched body need to be "processed".
731
732
733 \section{Restrictions}
734
735 A decode-b.c file in the tm package is the source of the BASE64
736 decoder.  As it was not thoroughly tested, it may not work for you.
737 But at least you can see what it wants to do so that you can correct
738 errors in the source code. (\verb+^+\_\verb+^+;
739
740 Or you can use mmencode in the metamail package to decode the BASE64
741 encoded messages.
742
743 Use mmencode to decode the Quoted-Printable messages.  The tm package
744 does not include the decoder for Quoted-Printable.
745
746
747 \chapter{tiny-mime}
748
749 tiny-mime is a multi-lingual MIME style message header
750 encoder/decoder based on RFC 1522 for Mule, NEmacs, and NEpoch. It
751 is based on Mr. Enami's ISO-2022-JP Base64 MIME header decoder which
752 could decode only ISO-2022-JP Base64-encoded headers.   The following list 
753 shows some of the functional enhancemets I made in tiny-mime.
754
755 \begin{itemize}
756 \item unfolding at decoding
757 \item encoding/decoding multilingual character sets, such as,
758   ISO-2022-JP, ISO-2022-JP-2, ISO-2022-CN, ISO-2022-KR, ISO-8859-*,
759   US-ASCII, EUC-KR
760 \item Q-encoding
761 \item compliance with RFC 1522
762 \end{itemize}
763
764 \noindent and more.
765
766 tiny-mime is a MIME headers encoder/decoder in the tm package and used
767 by tm-view and tm-MUAs.
768
769
770 \section{mime/decode-message-header}
771
772 {\tt mime/decode-message-header} is a command to decode the MIME headers.
773 You need to load tiny-mime before you can use this command.
774
775 {\list{}{\leftmargin=8ex}\item[]
776 \par
777 M-x {\tt mime/decode-message-header}
778 \endlist}
779
780 \noindent will decode the MIME headers in the current buffer.
781
782 tm-MUAs and tm-view use this command to decode the MIME headers.
783 Therefore, it may not be required to explicitly execute this command if
784 you are using them.
785
786
787 \section{mime/decode-region}
788
789 You can decode the MIME messages within the specified region by executing
790
791 {\list{}{\leftmargin=8ex}\item[]
792 \par
793 M-x {\tt mime/decode-region}
794 \endlist}
795
796 \noindent This is useful when you want to decode the MIME headers
797 which are yanked from the referenced article.
798
799
800 \chapter{Reporting Bugs}
801
802 Please report tm bugs you find to fj.editor.emacs or send a mail to
803 tm ML, $<$tm@@chamonix.jaist.ac.jp$>$.
804
805 Via tm ML, You can report bugs of tm, obtain the latest release of tm
806 package, and discuss the future enhancements to tm.  To join tm ML,
807 send a mail to
808
809 \begin{center}
810   tm-admin@@chamonix.jaist.ac.jp
811 \end{center}
812
813 \noindent Since the user registration is manually done, please write
814 the mail body in human-recognizable language (\verb+^+\_\verb+^+).
815
816 \end{document}
817 @
818
819
820 5.2
821 log
822 @*** empty log message ***
823 @
824 text
825 @d10 1
826 a10 1
827 \date{\verb$Id: tm-eng.tex,v 5.2 1994/10/11 17:17:05 morioka Exp $}
828 d44 1
829 d147 9
830 @