New file.
authormorioka <morioka>
Sat, 4 Jul 1998 11:33:41 +0000 (11:33 +0000)
committermorioka <morioka>
Sat, 4 Jul 1998 11:33:41 +0000 (11:33 +0000)
mime-en.texi [new file with mode: 0644]

diff --git a/mime-en.texi b/mime-en.texi
new file mode 100644 (file)
index 0000000..2e589fb
--- /dev/null
@@ -0,0 +1,1472 @@
+\input texinfo.tex
+@setfilename mime-en.info
+@settitle{FLIM 1.8 Manual about MIME Features}
+@titlepage
+@title FLIM 1.8 Manual about MIME Features
+@author MORIOKA Tomohiko <morioka@@jaist.ac.jp>
+@subtitle 1998/07/01
+@end titlepage
+@node Top, Introduction, (dir), (dir)
+@top FLIM 1.8 Manual about MIME Features
+
+@ifinfo
+
+This file documents MIME features of FLIM, a Internet message
+parsing/encoding library for GNU Emacs.
+@end ifinfo
+
+@menu
+* Introduction::                What is FLIM?
+* How to use::                  How to use MIME features
+* Entity::                      Message and Entity
+* Content-Type::                Information of Content-Type field
+* Content-Disposition::         Content-Disposition \e$BMs$N>pJs\e(B
+* Content-Transfer-Encoding::   \e$BId9f2=K!\e(B
+* encoded-word::                Header \e$B$N\e(B network \e$BI=8=\e(B
+* custom::                      \e$B0lHL@_Dj\e(B
+* Appendix::                    
+* Concept Index::               
+* Function Index::              
+* Variable Index::              
+@end menu
+
+@node Introduction, How to use, Top, Top
+@chapter What is FLIM?
+
+FLIM is a library to provide basic features about message
+representation or encoding.
+
+
+@node How to use, Entity, Introduction, Top
+@chapter How to use MIME features
+
+Please eval following to use MIME features provided by FLIM:
+
+@lisp
+(require 'mime)
+@end lisp
+
+
+
+@node Entity, Content-Type, How to use, Top
+@chapter Message and Entity
+@cindex node-id
+@cindex entity-number
+@cindex mime-entity
+@cindex entity
+
+According to RFC 2045 (@ref{RFC 2045}), `The term ``entity'', refers
+specifically to the MIME-defined header fields and contents of either a
+message or one of the parts in the body of a multipart entity.'  In this
+document, the term @strong{entity} indicates all of header fields and
+body.@refill
+
+The definition of RFC 2045 indicates that a MIME message is a tree.  An
+message is a tree, each node is an entity, like following figure.
+Namely MIME extends message to tree structure.@refill
+
+FLIM uses @strong{mime-entity} structure to represent information of
+entity.  In this document, it is called simply `mime-entity'.@refill
+
+\e$BA0=R$N$h$&$K!"\e(Bmessage \e$BCf$N3F\e(B entity \e$B$OLZ$N@a$KEv$?$j$^$9$,!"$3$NLZ$K$O\e(B
+\e$B?<$5$HF1$8?<$5$NCf$N=gHV$K=>$C$FHV9f$,IU$1$k$3$H$,$G$-$^$9!#B($A!"\e(B
+@example
+
+                              \e$B(#(!(!(!($\e(B
+                              \e$B("\e(B  nil \e$B("\e(B
+                              \e$B(&(!(((!(%\e(B
+              \e$B(#(!(!(!(!(!(!(!(!(!(+(!(!(!(!(!(!(!(!(!($\e(B
+            \e$B(#(*($\e(B              \e$B(#(*($\e(B              \e$B(#(*($\e(B
+            \e$B("#0("\e(B              \e$B("#1("\e(B              \e$B("#2("\e(B
+            \e$B(&(((%\e(B              \e$B(&(((%\e(B              \e$B(&(((%\e(B
+              \e$B("\e(B        \e$B(#(!(!(!(!(+(!(!(!(!($\e(B        \e$B("\e(B
+          \e$B(#(!(*(!($(#(!(*(!($(#(!(*(!($(#(!(*(!($(#(!(*(!($\e(B
+          \e$B("\e(B \e$B#0\e(B.\e$B#0("("\e(B \e$B#1\e(B.\e$B#0("("\e(B \e$B#1\e(B.\e$B#1("("\e(B \e$B#1\e(B.\e$B#2("("\e(B \e$B#2\e(B.\e$B#0("\e(B
+          \e$B(&(!(!(!(%(&(!(!(!(%(&(!(!(!(%(&(!(!(!(%(&(!(!(!(%\e(B
+@end example
+
+@noindent
+\e$B$N$h$&$K?<$5\e(B n \e$B$N@a$K$OD9$5\e(B n \e$B$N@0?tNs$N@aHV9f$,?6$l$^$9!#$3$l\e(B
+\e$B$r\e(B @strong{entity-number} \e$B$H8F$S$^$9!#\e(Bentity-number \e$B$O\e(B S \e$B<0$H\e(B
+\e$B$7$F$O\e(B @code{(1 2 3)} \e$B$N$h$&$J@0?t$N%j%9%H$H$7$FI=8=$5$l$^$9!#\e(B
+
+mime-entity \e$B$G$O!"$3$l$HF1MM$N\e(B @strong{node-id} \e$B$rMQ$$$^$9!#\e(Bnode-id \e$B$O$A$g\e(B
+\e$B$&$I\e(B entity-number \e$B$r5U$K$7$?%j%9%H$G!"\e(Bentity-number 1.2.3 \e$B$KBP1~$9$k\e(B 
+node-id \e$B$O\e(B @code{(3 2 1)} \e$B$G$9!#\e(B@refill
+
+\e$BA0=R$N$h$&$K!"\e(BMIME message \e$B$O\e(B entity \e$B$rC10L$H$7$?LZ9=B$$K$J$C$F$$$k$N$G!"\e(B
+\e$B$3$N:,$G$"$k\e(B message \e$BA4BN$b\e(B mime-entity \e$B$GI=8=$9$k$3$H$,$G$-!"\e(Bbuffer
+local \e$BJQ?t\e(B @code{mime-message-structure} \e$B$K3JG<$9$k$3$H$K$7$^$9!#\e(B
+\e$B$=$7$F!"\e(Bentity-number \e$B$d\e(B node-id \e$B$rMQ$$$k$3$H$G\e(B 
+@code{mime-message-structure} \e$B$K$*$1$k\e(B entity \e$B$NAjBPE*$J0LCV4X78$r\e(B
+\e$B07$&$3$H$,$G$-$^$9!#\e(B
+
+
+@menu
+* Entity creation::             Functions to create mime-entity
+* Entity hierarchy::            Features about message tree
+* Entity Attributes::           Functions about attributes of mime-entity
+* Entity-header::               Information of entity header
+* Entity-content::              Contents of Entity
+* Entity buffer::               Entity as buffer representation
+* mm-backend::                  Entity representations and implementations
+@end menu
+
+@node Entity creation, Entity hierarchy, Entity, Entity
+@section Functions to create mime-entity
+
+@defun mime-open-entity &optional  type location
+
+Open an entity and return it.@refill
+
+@var{type} is representation-type. (cf. @ref{mm-backend}) @refill
+
+@var{location} is location of entity.  Specification of it is depended
+on representation-type.
+@end defun
+
+
+@defun mime-parse-message &optional  default-ctl node-id
+
+Parse current buffer as message, and return the result as mime-entity.
+@end defun
+
+
+@defun mime-parse-buffer &optional  buffer
+
+Parse @var{buffer} as message, and set the result to buffer local
+variable @code{mime-message-structure} of @var{buffer} as
+mime-entity.@refill
+
+If @var{buffer} is omitted, current buffer is used.
+@end defun
+
+
+
+@node Entity hierarchy, Entity Attributes, Entity creation, Entity
+@section Features about message tree
+
+@defvar mime-message-structure
+
+Buffer local variable to store mime-entity structure of message.
+@end defvar
+
+
+@defun mime-entity-children entity
+
+Return list of entities included in the @var{entity}.
+@end defun
+
+
+@defun mime-entity-parent entity  &optional  message
+
+Return parent entity of the @var{entity}.@refill
+
+If @var{message} is specified, it is regarded as root instead of
+@code{mime-message-structure}.
+@end defun
+
+
+@defun mime-root-entity-p entity
+
+Return non-@code{nil} if @var{entity} is root entity (message).
+@end defun
+
+
+@defun mime-entity-node-id entity
+
+Return node-id of @var{entity}.
+@end defun
+
+
+@defun mime-entity-number entity
+
+Return entity-number of @var{entity}.
+@end defun
+
+
+@defun mime-find-entity-from-number entity-number  &optional  message
+
+Return entity from @var{entity-number} in @var{message}.@refill
+
+If @var{message} is not specified, @code{mime-message-structure} is
+used.
+@end defun
+
+
+@defun mime-find-entity-from-node-id entity-node-id  &optional  message
+
+Return entity from @var{entity-node-id} in @var{message}.@refill
+
+If @var{message} is not specified, @code{mime-message-structure} is
+used.
+@end defun
+
+
+
+@node Entity Attributes, Entity-header, Entity hierarchy, Entity
+@section Functions about attributes of mime-entity
+
+@defun mime-entity-content-type entity
+
+Return content-type of @var{entity}.  (cf. @ref{mime-content-type})
+@end defun
+
+
+@defun mime-entity-content-disposition entity
+
+Return content-disposition of
+@var{entity}. (cf. @ref{mime-content-disposition})
+@end defun
+
+
+@defun mime-entity-filename entity
+
+Return file name of @var{entity}.
+@end defun
+
+
+@defun mime-entity-encoding entity
+
+Return content-transfer-encoding of @var{entity}.
+(cf. @ref{Content-Transfer-Encoding})
+@end defun
+
+
+@defun mime-entity-cooked-p entity
+
+Return non-nil if contents of @var{entity} has been already
+code-converted.
+@end defun
+
+
+
+@node Entity-header, Entity-content, Entity Attributes, Entity
+@section Information of entity header
+
+@defun mime-fetch-field field-name  &optional  entity
+
+Return field-body of @var{field-name} field in header of
+@var{entity}.@refill
+
+The results is network representation.@refill
+
+If @var{entity} is omitted, @code{mime-message-structure} is used as
+default value.@refill
+
+If @var{field-name} field is not found, this function returns
+@code{nil}.
+@end defun
+
+
+@defun mime-read-field field-name  &optional  entity
+
+Parse @var{field-name} field in header of @var{entity}, and return the
+result.@refill
+
+Format of result is depended on kind of field.  For non-structured
+field, this function returns string.  For structured field, it returns
+list corresponding with structure of the field.@refill
+
+Strings in the result will be converted to internal representation of
+Emacs.@refill
+
+If @var{entity} is omitted, @code{mime-message-structure} is used as
+default value.@refill
+
+If @var{field-name} field is not found, this function returns
+@code{nil}.
+@end defun
+
+
+@defun mime-insert-decoded-header entity  &optional  invisible-fields visible-fields
+
+Insert before point a decoded contents of header of @var{entity}.@refill
+
+@var{invisible-fields} is list of regexps to match field-name to hide.
+@var{visible-fields} is list of regexps to match field-name to
+hide.@refill
+
+If a field-name is matched with some elements of @var{invisible-fields}
+and matched with none of @var{visible-fields}, this function don't
+insert the field.
+@end defun
+
+
+
+@node Entity-content, Entity buffer, Entity-header, Entity
+@section Contents of Entity
+
+@defun mime-entity-content entity
+
+Return content of @var{entity} as byte sequence.
+@end defun
+
+
+@defun mime-write-entity-content entity filename
+
+Write content of @var{entity} into @var{filename}.
+@end defun
+
+
+@defun mime-write-entity entity filename
+
+Write representation of @var{entity} into @var{filename}.
+@end defun
+
+
+@defun mime-write-entity-body entity filename
+
+Write body of @var{entity} into @var{filename}.
+@end defun
+
+
+
+@node Entity buffer, mm-backend, Entity-content, Entity
+@section Entity as buffer representation
+
+@defun mime-entity-buffer entity
+
+Return buffer, which contains @var{entity}.
+@end defun
+
+
+@defun mime-entity-point-min entity
+
+Return the start point of @var{entity} in the buffer which contains
+@var{entity}.
+@end defun
+
+
+@defun mime-entity-point-max entity
+
+Return the end point of @var{entity} in the buffer which contains
+@var{entity}.
+@end defun
+
+
+@defun mime-entity-header-start entity
+
+Return the start point of header of @var{entity} in the buffer which
+contains @var{entity}.
+@end defun
+
+
+@defun mime-entity-header-end entity
+
+Return the end point of header of @var{entity} in the buffer which
+contains @var{entity}.
+@end defun
+
+
+@defun mime-entity-body-start entity
+
+Return the start point of body of @var{entity} in the buffer which
+contains @var{entity}.
+@end defun
+
+
+@defun mime-entity-body-end entity
+
+Return the end point of body of @var{entity} in the buffer which
+contains @var{entity}.
+@end defun
+
+
+
+@node mm-backend,  , Entity buffer, Entity
+@section Entity representations and implementations
+@cindex mm-backend
+@cindex entity \e$B=hM}\e(B method
+@cindex representation-type
+
+Entity \e$B$OCj>]2=$5$l$?%G!<%?I=8=$G!"<B:]$N%G!<%?I=8=$H$7$F$OMQES$K1~$8$F\e(B
+\e$B$5$^$6$^$J$b$N$,MxMQ$G$-$k$h$&$K@_7W$5$l$F$$$^$9!#\e(B@refill
+
+\e$B$3$3$G!"\e(Bentity \e$B$,$I$&$$$&<oN`$NI=8=$r9T$C$F$$$k$+$r<($9$N$,\e(B
+@strong{representation-type} \e$B$G!"\e(Bentity \e$B$r@8@.$9$k;~$K$O$3$l$r;XDj$7$^$9!#\e(B
+(cf. @ref{Entity Creation}) @refill
+
+\e$BA0@a$^$G$K=R$Y$FMh$?\e(B entity \e$B$KBP$9$k=hM}$O!"\e(Bentity \e$B$KBP$7$F$=$N=hM}$r0M\e(B
+\e$BMj$9$k$3$H$K$h$C$F<B8=$5$l$F$$$^$9!#\e(BEntity \e$B$O<+J,$N\e(B representation-type 
+\e$B$rCN$C$F$*$j!"$=$N\e(B representation-type \e$B$K1~$8$F<B:]$N=hM}$r9T$&4X?t$r8F\e(B
+\e$B$S=P$7$^$9!#$3$N$h$&$J4X?t$r\e(B @strong{entity \e$B=hM}\e(Bmethod} \e$B$H8F$S$^$9!#$^$?!"\e(B
+representation-type \e$BKh$K$3$N$h$&$J4X?t$r$^$H$a$?$b$N$r\e(B 
+@strong{mm-backend} \e$B$H8F$S$^$9!#\e(B@refill
+
+mm-backend \e$B$O\e(B representation-type \e$B$NL>A0$N@hF,$K\e(B @code{mm} \e$B$H$$$&\e(B
+\e$B@\F,<-$rIU$1$?4X?tL>$+$i$J$k\e(B module \e$B$G!"$=$N\e(B module \e$BL>$OF1MM$K\e(B
+representation-type \e$B$NL>A0$N@hF,$K\e(B @code{mm} \e$B$rIU$1$?$b$N$K$J$C$F\e(B
+\e$B$$$^$9!#$3$N\e(B module \e$B$O\e(B representation-type \e$B$N\e(B entity \e$B$,:G=i$K@8@.$5$l$k\e(B
+\e$B;~$K<+F0E*$K\e(B require \e$B$5$l$^$9!#\e(B
+
+
+@menu
+* Request for entity::          Message-passing for entity
+* mm-backend module::           How to make mm-backend
+@end menu
+
+@node Request for entity, mm-backend module, mm-backend, mm-backend
+@subsection Message-passing for entity
+
+@defun mime-entity-send entity message  &rest  args
+
+@var{entity} \e$B$K\e(B @var{message} \e$B$rAw$k!#\e(B@refill
+
+@var{args} \e$B$O\e(B @var{message} \e$B$N0z?t$G$"$k!#\e(B
+@end defun
+
+
+
+@node mm-backend module,  , Request for entity, mm-backend
+@subsection How to make mm-backend
+
+\e$B!J$9$_$^$;$s!#$=$N$&$A=q$-$^$9\e(B (^_^;\e$B!K\e(B@refill
+
+\e$B!J$H$j$"$($:!"\e(Bmm*.el \e$B$r;29M$K$7$F$/$@$5$$!K\e(B
+
+
+@node Content-Type, Content-Disposition, Entity, Top
+@chapter Information of Content-Type field
+@cindex mime-content-type
+@cindex Content-Type field
+
+@strong{Content-Type field} is a field to indicate kind of contents or
+data format, such as media-type (@ref{media-type}) and MIME charset.  It
+is defined in RFC 2045 (@ref{RFC 2045}).
+
+@noindent
+@strong{[Memo]}
+@quotation
+
+Historically, Content-Type field was proposed in RFC 1049.  In it,
+Content-Type did not distinguish type and subtype, and there are no
+mechanism to represent kind of character code like MIME charset.
+@end quotation
+
+
+FLIM \e$B$O\e(B Content-Type \e$BMs$r9=J82r@O$9$k4X?t$H\e(B Content-Type \e$BMs$N2r@O7k2L$r\e(B
+\e$B3JG<$9$k9=B$BN\e(B @strong{mime-content-type} \e$B$rDs6!$7$^$9!#\e(B
+
+
+@menu
+* Content-Type field::          Format of Content-Type field
+* mime-content-type::           mime-content-type structure
+* Content-Type parser::         Content-Type \e$BMs$N2r@O4o\e(B
+* Content-Type utility::        Content-Type \e$B$K4X$9$kM-MQ$J4X?t\e(B
+@end menu
+
+@node Content-Type field, mime-content-type, Content-Type, Content-Type
+@section Format of Content-Type field
+@cindex parameter
+@cindex subtype
+@cindex type
+
+Content-Type \e$BMs$N7A<0$O0J2<$N$h$&$KDj5A$5$l$F$$$^$9!'\e(B
+
+@quotation
+``Content-Type'' ``:'' @strong{type} ``/''
+@strong{subtype} *( ``;'' @strong{parameter} )
+@end quotation
+
+\e$BNc$($P!"\e(B
+
+@quotation
+@example
+Content-Type: image/jpeg
+@end example
+@end quotation
+
+@noindent
+\e$B$d\e(B
+
+@quotation
+@example
+Content-Type: text/plain; charset=iso-2022-jp
+@end example
+@end quotation
+
+@noindent
+\e$B$J$I$N$h$&$KMQ$$$i$l$^$9!#\e(B
+
+\e$B$3$3$G!"\e(B`type' \e$B$H\e(B `subtype' \e$B$O\e(B entity \e$B$N7A<0$r<($9$b$N$G!"N><T$rAm>N$7\e(B
+\e$B$F!"\e(B`media-type' \e$B$H8F$V$3$H$K$7$^$9!#>e5-$NNc$K$*$1$k\e(B `image/jpeg' \e$B$d\e(B
+`text/plain' \e$B$O\e(B media-type \e$B$N#1$D$G$9!#\e(B
+
+@noindent
+@strong{[Memo]}
+@quotation
+
+Content-Type \e$BMs$N$J$$\e(B entity \e$B$O\e(B
+
+@quotation
+@example
+Content-Type: text/plain; charset=us-ascii
+@end example
+@end quotation
+
+@noindent
+\e$B$H$7$F2r<a$5$l$k!#\e(B(cf. @ref{us-ascii})
+@end quotation
+
+
+
+@node mime-content-type, Content-Type parser, Content-Type field, Content-Type
+@section mime-content-type structure
+
+@deffn{Structure} mime-content-type
+
+Content-Type \e$BMs$N>pJs$r3JG<$9$k$?$a$N9=B$BN!#\e(B@refill
+
+\e$B$3$N9=B$BN$r;2>H$9$k$K$O\e(B @code{mime-content-type-\e$BMWAGL>\e(B} \e$B$H$$$&L>A0$N;2\e(B
+\e$B>H4X?t$rMQ$$$k!#\e(B@refill
+
+\e$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'\e(B
+
+@table @var
+@item primary-type
+media-type \e$B$N<g7?\e(B (symbol).
+
+@item subtype
+media-type \e$B$NI{7?\e(B (symbol).
+
+@item parameters
+Content-Type \e$BMs$N\e(B parameter (\e$BO"A[\e(B list).
+
+@end table
+@end deffn
+
+
+@defun make-mime-content-type type subtype
+          &optional  parameters
+
+content-type \e$B$N@8@.;R!#\e(B
+@end defun
+
+
+@defun mime-content-type-parameter content-type parameter
+
+@var{content-type} \e$B$N\e(B @var{parameter} \e$B$NCM$rJV$9!#\e(B
+@end defun
+
+
+
+@node Content-Type parser, Content-Type utility, mime-content-type, Content-Type
+@section Content-Type \e$BMs$N2r@O4o\e(B
+
+@defun mime-parse-Content-Type string
+
+@var{string} \e$B$r\e(B content-type \e$B$H$7$F2r@O$7$?7k2L$rJV$9!#\e(B
+@end defun
+
+
+@defun mime-read-Content-Type
+
+\e$B8=:_$N\e(B buffer \e$B$N\e(B Content-Type \e$BMs$rFI$_<h$j!"2r@O$7$?7k2L$rJV$9!#\e(B@refill
+
+Content-Type \e$BMs$,B8:_$7$J$$>l9g$O\e(B nil \e$B$rJV$9!#\e(B
+@end defun
+
+
+
+@node Content-Type utility,  , Content-Type parser, Content-Type
+@section Content-Type \e$B$K4X$9$kM-MQ$J4X?t\e(B
+
+@defun mime-type/subtype-string type  &optional  subtype
+
+@var{type} \e$B$H\e(B @var{subtype} \e$B$+$i\e(B type/subtype \e$B7A<0$NJ8;zNs$rJV$9!#\e(B
+@end defun
+
+
+
+@node Content-Disposition, Content-Transfer-Encoding, Content-Type, Top
+@chapter Content-Disposition \e$BMs$N>pJs\e(B
+@cindex mime-content-disposition
+@cindex RFC 2183
+@cindex Standards Track
+@cindex Content-Disposition \e$BMs\e(B
+
+@strong{Content-Disposition \e$BMs\e(B} \e$B$O\e(B entity \e$B$NI=<($d\e(B file \e$BL>$J$I\e(B
+\e$B$NB0@-$K$J$I$K4X$9$k>pJs$r5-=R$9$k$?$a$N$b$N$G$9!#\e(B
+
+
+@noindent
+[RFC 2183]
+@quotation
+S. Dorner, K. Moore and R. Troost, ``Communicating Presentation
+Information in Internet Messages: The Content-Disposition Header'',
+August 1997, Standards Track.
+@end quotation
+
+FLIM \e$B$O\e(B Content-Disposition \e$BMs$r9=J82r@O$9$k4X?t$H\e(B Content-Disposition 
+\e$BMs$N2r@O7k2L$r3JG<$9$k9=B$BN\e(B 
+@strong{mime-content-disposition} \e$B$rDs6!$7$^$9!#\e(B
+
+
+@menu
+* mime-content-disposition::    mime-content-disposition \e$B9=B$BN\e(B
+* Content-Disposition parser::  Content-Disposition \e$BMs$N2r@O4o\e(B
+@end menu
+
+@node mime-content-disposition, Content-Disposition parser, Content-Disposition, Content-Disposition
+@section mime-content-disposition \e$B9=B$BN\e(B
+
+@deffn{Structure} mime-content-disposition
+
+Content-Disposition \e$BMs$N2r@O7k2L$r<}$a$k$?$a$N9=B$BN!#\e(B@refill
+
+\e$B$3$N9=B$BN$r;2>H$9$k$K$O\e(B @code{mime-content-disposition-\e$BMWAGL>\e(B} \e$B$H$$$&L>\e(B
+\e$BA0$N;2>H4X?t$rMQ$$$k!#\e(B@refill
+
+\e$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'\e(B
+
+@table @var
+@item disposition-type
+disposition-type (symbol).
+
+@item parameters
+Content-Disposition \e$BMs$N\e(B parameter (\e$BO"A[\e(B list).
+
+@end table
+@end deffn
+
+
+@defun mime-content-disposition-parameter content-disposition parameter
+
+@var{content-disposition} \e$B$N\e(B @var{parameter} \e$B$NCM$rJV$9!#\e(B
+@end defun
+
+
+@defun mime-content-disposition-filename content-disposition
+
+@var{content-disposition} \e$B$N\e(B filename \e$B$NCM$rJV$9!#\e(B
+@end defun
+
+
+
+@node Content-Disposition parser,  , mime-content-disposition, Content-Disposition
+@section Content-Disposition \e$BMs$N2r@O4o\e(B
+
+@defun mime-parse-Content-Disposition string
+
+@var{string} \e$B$r\e(B content-disposition \e$B$H$7$F2r@O$7$?7k2L$rJV$9!#\e(B
+@end defun
+
+
+@defun mime-read-Content-Disposition
+
+\e$B8=:_$N\e(B buffer \e$B$N\e(B Content-Disposition \e$BMs$rFI$_<h$j!"2r@O$7$?7k2L$rJV$9!#\e(B
+@refill
+
+Content-Disposition \e$BMs$,B8:_$7$J$$>l9g$O\e(B nil \e$B$rJV$9!#\e(B
+@end defun
+
+
+
+@node Content-Transfer-Encoding, encoded-word, Content-Disposition, Top
+@chapter \e$BId9f2=K!\e(B
+@cindex Content-Transfer-Encoding \e$BMs\e(B
+
+@strong{Content-Transfer-Encoding \e$BMs\e(B} \e$B$O\e(B entity \e$B$NId9f2=K!$r5-=R$9$k$?$a\e(B
+\e$B$N$b$N$G$9!#\e(B@refill
+
+FLIM \e$B$G$O\e(B Content-Transfer-Encoding \e$BMs$r9=J82r@O$9$k4X?t$rDs6!$7$^$9!#$3\e(B
+\e$B$l$i$N4X?t$O\e(B Content-Transfer-Encoding \e$BMs$N>pJs$OJ8;zNs$GI=8=$7$^$9!#\e(B
+@refill
+
+\e$B$^$?!"\e(BContent-Transfer-Encoding \e$B$K4p$E$$$FId9f2=!&I|9f2=$r9T$&4X?t$bDs\e(B
+\e$B6!$5$l$^$9!#\e(B
+
+
+@menu
+* Content-Transfer-Encoding parser::  Content-Transfer-Encoding \e$BMs$N2r@O4o\e(B
+* Region encoder/decoder::      \e$BNN0h$NId9f2=!&I|9f2=\e(B
+* String encoder/decoder::      \e$BJ8;zNs$NId9f2=!&I|9f2=\e(B
+* File encoder/decoder::        File \e$B$NId9f2=!&I|9f2=\e(B
+@end menu
+
+@node Content-Transfer-Encoding parser, Region encoder/decoder, Content-Transfer-Encoding, Content-Transfer-Encoding
+@section Content-Transfer-Encoding \e$BMs$N2r@O4o\e(B
+
+@defun mime-parse-Content-Transfer-Encoding string
+
+@var{string} \e$B$r\e(B content-transfer-encoding \e$B$H$7$F2r@O$7$?7k2L$rJV$9!#\e(B
+@end defun
+
+
+@defun mime-read-Content-Transfer-Encoding &optional default-encoding
+
+\e$B8=:_$N\e(B buffer \e$B$N\e(B Content-Transfer-Encoding \e$BMs$rFI$_<h$j!"2r@O$7$?7k2L$r\e(B
+\e$BJV$9!#\e(B@refill
+
+Content-Transfer-Encoding \e$BMs$,B8:_$7$J$$>l9g$O\e(B@var{default-encoding} \e$B$r\e(B
+\e$BJV$9!#\e(B
+@end defun
+
+
+
+@node Region encoder/decoder, String encoder/decoder, Content-Transfer-Encoding parser, Content-Transfer-Encoding
+@section \e$BNN0h$NId9f2=!&I|9f2=\e(B
+
+@defun mime-encode-region start end encoding
+
+Encode region @var{start} to @var{end} of current buffer using
+@var{encoding}.
+@end defun
+
+
+@defun mime-decode-region start end encoding
+
+Decode region @var{start} to @var{end} of current buffer using
+@var{encoding}.
+@end defun
+
+
+@defvar mime-encoding-method-alist
+
+Alist of encoding vs. corresponding method to encode region.@refill
+
+Each element looks like @code{(STRING . FUNCTION)} or @code{(STRING
+. nil)}.  @var{string} is content-transfer-encoding.  @code{function} is
+region encoder and @code{nil} means not to encode.
+@end defvar
+
+
+@defvar mime-decoding-method-alist
+
+Alist of encoding vs. corresponding method to decode region.@refill
+
+Each element looks like @code{(STRING . FUNCTION)} or @code{(STRING
+. nil)}.  @var{string} is content-transfer-encoding.  @code{function} is
+region decoder and @code{nil} means not to decode.
+@end defvar
+
+
+
+@node String encoder/decoder, File encoder/decoder, Region encoder/decoder, Content-Transfer-Encoding
+@section \e$BJ8;zNs$NId9f2=!&I|9f2=\e(B
+
+@defun mime-decode-string string encoding
+
+@var{string} \e$B$r\e(B @var{encoding} \e$B$H$7$FI|9f$7$?7k2L$rJV$7$^$9!#\e(B
+@end defun
+
+
+@defvar mime-string-decoding-method-alist
+
+Alist of encoding vs. corresponding method to decode string.@refill
+
+Each element looks like @code{(STRING . FUNCTION)}.  STRING is
+content-transfer-encoding.  FUNCTION is string decoder.
+@end defvar
+
+
+
+@node File encoder/decoder,  , String encoder/decoder, Content-Transfer-Encoding
+@section File \e$B$NId9f2=!&I|9f2=\e(B
+
+@defun mime-insert-encoded-file filename encoding
+
+Insert file @var{FILENAME} encoded by @var{ENCODING} format.
+@end defun
+
+
+@defun mime-write-decoded-region start end filename encoding
+
+Decode and write current region encoded by @var{encoding} into
+@var{filename}.@refill
+
+@var{start} and @var{end} are buffer positions.
+@end defun
+
+
+@defvar mime-file-encoding-method-alist
+
+Alist of encoding vs. corresponding method to insert encoded
+file.@refill
+
+Each element looks like @code{(STRING . FUNCTION)}.  STRING is
+content-transfer-encoding.  FUNCTION is function to insert encoded file.
+@end defvar
+
+
+@defvar mime-file-decoding-method-alist
+
+Alist of encoding vs. corresponding method to write decoded region to
+file.@refill
+
+Each element looks like @code{(STRING . FUNCTION)}.  STRING is
+content-transfer-encoding.  FUNCTION is function to write decoded region
+to file.
+@end defvar
+
+
+
+@node encoded-word, custom, Content-Transfer-Encoding, Top
+@chapter Header \e$B$N\e(B network \e$BI=8=\e(B
+@cindex RFC 2047
+@cindex Standards Track
+@cindex RFC 2047
+
+encoded-word \e$B$O\e(B header \e$B$GHs\e(B ASCII (@ref{ASCII}) \e$BJ8;z$rI=8=$9$k$?$a$N7A<0\e(B
+\e$B$G!"\e(B@strong{RFC 2047} \e$B$GDj5A$5$l$F$$$^$9!#\e(B@refill
+
+
+@noindent
+[RFC 2047]
+@quotation
+K. Moore, ``MIME (Multipurpose Internet Mail Extensions) Part Three:
+Message Header Extensions for Non-ASCII Text'', November 1996, Standards
+Track (obsolete RFC 1521,1522,1590).
+@end quotation
+
+\e$B$^$?!"9T57$N0-$$$3$H$@$H8@$($^$9$,!"\e(Bencoded-word \e$B$rMQ$$$:$KHs\e(B ASCII
+(@ref{ASCII}) \e$BJ8;z$r\e(B header \e$B$KF~$l$?5-;v$bB8:_$7$^$9!#\e(B@refill
+
+FLIM \e$B$O$3$l$i$rId9f2=!&I|9f2=$9$k5!G=$rDs6!$7$^$9!#\e(B
+
+
+@menu
+* Header encoder/decoder::      Header \e$B$NId9f2=!&I|9f2=\e(B
+@end menu
+
+@node Header encoder/decoder,  , encoded-word, encoded-word
+@section Header \e$B$NId9f2=!&I|9f2=\e(B
+
+@defun eword-encode-header &optional  code-conversion separator
+
+Decode MIME encoded-words in header fields.@refill
+
+If @var{code-conversion} is @code{nil}, it decodes only encoded-words.
+If it is mime-charset, it decodes non-ASCII bit patterns as the
+mime-charset.  Otherwise it decodes non-ASCII bit patterns as the
+default-mime-charset.@refill
+
+If @var{separator} is not nil, it is used as header separator.
+@end defun
+
+
+@defun eword-encode-header &optional  code-conversion
+
+Encode header fields to network representation, such as MIME
+encoded-word.@refill
+
+It refer variable @code{eword-field-encoding-method-alist}.
+@end defun
+
+
+
+@node custom, Appendix, encoded-word, Top
+@chapter \e$B0lHL@_Dj\e(B
+
+@deffn{group} mime
+
+MIME \e$B4XO"5!G=$K4X$9$k\e(B group.@refill
+
+@code{mail} \e$B$H\e(B @code{news} \e$B$KB0$9$k!#\e(B
+@end deffn
+
+
+@defvar default-mime-charset
+
+\e$BE,@Z$J\e(B MIME charset (@ref{MIME charset}) \e$B$,8+$D$+$i$J$+$C$?>l9g$KMQ$$$i\e(B
+\e$B$l$k\e(BMIME charset.@refill
+
+\e$BK\Mh$O\e(B APEL \e$B$NJQ?t$G$"$k!#\e(B
+@end defvar
+
+
+@defvar mime-temp-directory
+
+MIME \e$B5!G=$K4X$9$k<BAu$,0l;~E*$K;HMQ$9$k\e(B file \e$B$r:n@.$9$k\e(B 
+directory.@refill
+
+\e$B4D6-JQ?t\e(B @code{MIME_TMP_DIR}, @code{TM_TMP_DIR}, @code{TMPDIR},
+@code{TMP} \e$B$b$7$/$O\e(B @code{TEMP} \e$B$,@_Dj$5$l$F$$$?>l9g!"$=$l$r=i4|CM$H$7$F\e(B
+\e$BMQ$$$k!#2?$b@_Dj$5$l$F$$$J$$>l9g!"\e(B@code{"/tmp/"} \e$B$rMQ$$$k!#\e(B
+@end defvar
+
+
+
+@node Appendix, Concept Index, custom, Top
+@chapter Appendix
+
+
+@menu
+* Glossary::                    
+* Bug report::                  How to report bugs
+* CVS::                         CVS based development
+* History::                     History of FLIM
+@end menu
+
+@node Glossary, Bug report, Appendix, Appendix
+@section Glossary
+
+
+@menu
+* 7bit::                        
+* 8bit::                        
+* ASCII::                       
+* Base64::                      
+* binary::                      
+* coded character set::         Coded character set, Character code
+* media-type::                  
+* message::                     
+* MIME::                        
+* MIME charset::                
+* MTA::                         
+* MUA::                         
+* Quoted-Printable::            
+* RFC 822::                     
+* RFC 1036::                    
+* RFC 2045::                    
+* RFC 2046::                    
+* RFC 2048::                    
+* RFC 2049::                    
+* plain text::                  
+* us-ascii::                    
+@end menu
+
+@node 7bit, 8bit, Glossary, Glossary
+@subsection 7bit
+@cindex 7bit (textual) string
+@cindex 7bit data
+@cindex 7bit
+
+@strong{7bit} means any integer between 0 .. 127.@refill
+
+Any data represented by 7bit integers is called @strong{7bit data}.@refill
+
+Textual string consisted of Control characters between 0 .. 31 and 127,
+and space represented by 32, and graphic characters between 33 .. 236
+are called @strong{7bit (textual) string}.@refill
+
+Conventional Internet MTA (@ref{MTA}) can translate 7bit data, so it is
+no need to translate by Quoted-Printable (@ref{Quoted-Printable}) or
+Base64 (@ref{Base64}) for 7bit data.@refill
+
+However if there are too long lines, it can not translate by 7bit MTA
+even if it is 7bit data.  RFC 821 (@ref{RFC 821}) and RFC 2045 (@ref{RFC 2045}) require lines in 7bit data must be less than 998 bytes.  So if a
+``7bit data'' has a line more than 999 bytes, it is regarded as binary
+(@ref{binary}).  For example, Postscript file should be encoded by
+Quoted-Printable.
+
+
+@node 8bit, ASCII, 7bit, Glossary
+@subsection 8bit
+@cindex 8bit (textual) string
+@cindex 8bit data
+@cindex 8bit
+
+@strong{8bit} means any integer between 0 .. 255.@refill
+
+Any data represented by 8bit integers is called @strong{8bit data}.@refill
+
+Textual string consisted of Control characters between 0 .. 31, 127, and
+128 .. 159, and space represented by 32, and graphic characters between
+33 .. 236 and 160 .. 255 are called @strong{8bit (textual) string}.@refill
+
+For example, iso-8859-1 (@ref{iso-8859-1}) or euc-kr (@ref{euc-kr}) are
+coded-character-set represented by 8bit textual string.@refill
+
+Traditional Internet MTA (@ref{MTA}) can translate only 7bit
+(@ref{7bit}) data, so if a 8bit data will be translated such MTA, it
+must be encoded by Quoted-Printable (@ref{Quoted-Printable}) or Base64
+(@ref{Base64}).@refill
+
+However 8bit MTA are increasing today.@refill
+
+However if there are too long lines, it can not translate by 8bit MTA
+even if it is 8bit data.  RFC 2045 (@ref{RFC 2045}) require lines in
+8bit data must be less than 998 bytes.  So if a ``8bit data'' has a line
+more than 999 bytes, it is regarded as binary (@ref{binary}), so it must
+be encoded by Base64 or Quoted-Printable.
+
+
+@node ASCII, Base64, 8bit, Glossary
+@subsection ASCII
+@cindex ANSI X3.4:1986
+@cindex ASCII
+@cindex ASCII
+
+@strong{ASCII} is a 94-character set contains primary latin characters
+(A-Z, a-z), numbers and some characters.  It is a standard of the United
+States of America.  It is a variant of ISO 646 (@ref{ISO 646}).
+
+
+@noindent
+[ASCII]
+@quotation
+``Coded Character Set -- 7-Bit American Standard Code for Information
+Interchange'', ANSI X3.4:1986.
+@end quotation
+
+
+
+@node Base64, binary, ASCII, Glossary
+@subsection Base64
+@cindex pad
+@cindex Base64
+
+@strong{Base64} is a transfer encoding method of MIME (@ref{MIME})
+defined in RFC 2045 (@ref{RFC 2045}).@refill
+
+The encoding process represents 24-bit groups of input bits as output
+strings of 4 encoded characters.  Encoded characters represent integer 0
+.. 63 or @strong{pad}.  Base64 data must be 4 * n bytes, so pad is used
+to adjust size.@refill
+
+These 65 characters are subset of all versions of ISO 646, including
+US-ASCII, and all versions of EBCDIC.  So it is safe even if it is
+translated by non-Internet gateways.
+
+
+@node binary, coded character set, Base64, Glossary
+@subsection binary
+@cindex binary
+
+Any byte stream is called @strong{binary}.@refill
+
+It does not require structureof lines.  It differs from from 8bit
+(@ref{8bit}).@refill
+
+In addition, if line structured data contain too long line (more than
+998 bytes), it is regarded as binary.
+
+
+@node coded character set, media-type, binary, Glossary
+@subsection Coded character set, Character code
+
+A set of unambiguous rules that establishes a character set and the
+one-to-one relationship between the characters of the set and their
+bit combinations.
+
+
+@node media-type, message, coded character set, Glossary
+@subsection media-type
+@cindex x-token
+@cindex message
+@cindex multipart
+@cindex application
+@cindex video
+@cindex audio
+@cindex image
+@cindex text
+@cindex subtype
+@cindex type
+@cindex media-type
+
+@strong{media-type} specifies the nature of the data in the body of MIME
+(@ref{MIME}) entity (@ref{entity}).  It consists of @strong{type} and
+@strong{subtype}.  It is defined in RFC 2046 (@ref{RFC 2046}).@refill
+
+Currently there are following standard primary-types:
+
+@itemize @bullet
+@item
+@strong{text}
+@item
+@strong{image}
+@item
+@strong{audio}
+@item
+@strong{video}
+@item
+@strong{application}
+@item
+@strong{multipart} (@ref{multipart})
+@item
+@strong{message}
+@end itemize
+
+
+And there are various subtypes, for example, application/octet-stream,
+audio/basic, image/jpeg, multipart/mixed (@ref{multipart/mixed}),
+text/plain (@ref{text/plain}), video/mpeg...  @refill
+
+You can refer registered media types at MEDIA TYPES
+(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types).@refill
+
+In addition, you can use private type or subtype using @strong{x-token},
+which as the prefix `x-'.  However you can not use them in
+public.@refill
+
+(cf. @ref{Content-Type field})
+
+
+
+@node message, MIME, media-type, Glossary
+@subsection message
+
+In this document, it means mail defined in RFC 822 (@ref{RFC 822}) and
+news message defined in RFC 1036 (@ref{RFC 1036}).
+
+
+@node MIME, MIME charset, message, Glossary
+@subsection MIME
+@cindex Multipurpose Internet Mail Extensions
+
+MIME stands for @strong{Multipurpose Internet Mail Extensions}, it is an
+extension for RFC 822 (@ref{RFC 822}).@refill
+
+According to RFC 2045:@refill
+
+STD 11, RFC 822, defines a message representation protocol specifying
+considerable detail about US-ASCII message headers, and leaves the
+message content, or message body, as flat US-ASCII text.  This set of
+documents, collectively called the Multipurpose Internet Mail
+Extensions, or MIME, redefines the format of messages to allow for
+
+@enumerate
+@item
+textual message bodies in character sets other than US-ASCII,
+@item
+an extensible set of different formats for non-textual message
+bodies,
+@item
+multi-part message bodies, and
+@item
+textual header information in character sets other than US-ASCII.
+@end enumerate
+
+
+It is defined in RFC 2045 (@ref{RFC 2045}), RFC 2046 (@ref{RFC 2046}),
+RFC 2047 (@ref{encoded-word}), RFC 2048 (@ref{RFC 2048}) and RFC 2049
+(@ref{RFC 2049}).
+
+
+@node MIME charset, MTA, MIME, Glossary
+@subsection MIME charset
+
+Coded character set (@ref{coded character set}) used in Content-Type
+field (@ref{Content-Type field}) or charset parameter of encoded-word
+(@ref{encoded-word}).@refill
+
+It is defined in RFC 2045 (@ref{RFC 2045}).@refill
+
+iso-2022-jp (@ref{iso-2022-jp}) or euc-kr (@ref{euc-kr}) are kinds of
+it.  (In this document, MIME charsets are written by small letters to
+distinguish graphic character set (@ref{graphic character set}).  For
+example, ISO 8859-1 is a graphic character set, and iso-8859-1 is a MIME
+charset)
+
+
+@node MTA, MUA, MIME charset, Glossary
+@subsection MTA
+@cindex Message Transfer Agent
+
+@strong{Message Transfer Agent}.  It means mail transfer programs
+(ex. sendmail) and news servers.@refill
+
+(cf. @ref{MUA})
+
+
+
+@node MUA, Quoted-Printable, MTA, Glossary
+@subsection MUA
+@cindex Message User Agent
+
+@strong{Message User Agent}.  It means mail readers and news
+readers.@refill
+
+(cf. @ref{MTA})
+
+
+
+@node Quoted-Printable, RFC 822, MUA, Glossary
+@subsection Quoted-Printable
+@cindex Quoted-Printable
+
+@strong{Quoted-Printable} is a transfer encoding method of MIME
+(@ref{MIME}) defined in RFC 2045 (@ref{RFC 2045}).@refill
+
+If the data being encoded are mostly US-ASCII text, the encoded form of
+the data remains largely recognizable by humans.@refill
+
+(cf. @ref{Base64})
+
+
+
+@node RFC 822, RFC 1036, Quoted-Printable, Glossary
+@subsection RFC 822
+@cindex RFC 822
+@cindex STD 11
+@cindex Internet mail
+@cindex Internet message
+@cindex message header
+
+A RFC defines format of Internet mail message, mainly @strong{message header}.
+
+@noindent
+@strong{[Memo]}
+@quotation
+
+news message is based on RFC 822, so @strong{Internet message} may be
+more suitable than @strong{Internet mail} .
+@end quotation
+
+
+
+@noindent
+[RFC 822]
+@quotation
+D. Crocker, ``Standard for the Format of ARPA Internet Text Messages'',
+August 1982, STD 11.
+@end quotation
+
+
+
+@node RFC 1036, RFC 2045, RFC 822, Glossary
+@subsection RFC 1036
+@cindex RFC 1036
+@cindex USENET
+
+A RFC defines format of USENET message.  It is a subset of RFC 822
+(@ref{RFC 822}).  It is not Internet standard, but a lot of netnews
+excepting Usenet uses it.
+
+
+@noindent
+[USENET: RFC 1036]
+@quotation
+M. Horton and R. Adams, ``Standard for Interchange of USENET Messages'',
+December 1987, (obsolete RFC 850).
+@end quotation
+
+
+
+@node RFC 2045, RFC 2046, RFC 1036, Glossary
+@subsection RFC 2045
+@cindex RFC 2045
+@cindex Standards Track
+
+
+@noindent
+[RFC 2045]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part One: Format of Internet Message Bodies'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2046, RFC 2048, RFC 2045, Glossary
+@subsection RFC 2046
+@cindex RFC 2046
+@cindex Standards Track
+
+
+@noindent
+[RFC 2046]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part Two: Media Types'', November 1996, Standards Track (obsolete
+RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2048, RFC 2049, RFC 2046, Glossary
+@subsection RFC 2048
+@cindex RFC 2048
+@cindex Standards Track
+
+
+@noindent
+[RFC 2048]
+@quotation
+N. Freed, J. Klensin and J. Postel, ``Multipurpose Internet Mail
+Extensions (MIME) Part Four: Registration Procedures'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2049, plain text, RFC 2048, Glossary
+@subsection RFC 2049
+@cindex RFC 2049
+@cindex Standards Track
+
+
+@noindent
+[RFC 2049]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part Five: Conformance Criteria and Examples'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node plain text, us-ascii, RFC 2049, Glossary
+@subsection plain text
+
+A textual data represented by only coded character set (@ref{coded character set}).  It does not have information about font or
+typesetting.  (cf. @ref{text/plain})
+
+
+
+@node us-ascii,  , plain text, Glossary
+@subsection us-ascii
+@cindex ASCII
+@cindex us-ascii
+
+A MIME charset (@ref{MIME charset}) for primary Latin script mainly
+written by English or other languages.@refill
+
+It is a 7bit coded character set (@ref{coded character set}) based on
+ISO 2022 (@ref{ISO 2022}), it contains only ASCII (@ref{ASCII}) and code
+extension (@ref{code extension}) is not allowed.@refill
+
+It is standard coded character set of Internet mail.  If MIME charset is
+not specified, @strong{us-ascii} is used as default.@refill
+
+In addition, @strong{ASCII} of RFC 822 (@ref{RFC 822}) should be
+interpreted as us-ascii.
+
+
+@node Bug report, CVS, Glossary, Appendix
+@section How to report bugs
+@cindex good bug report
+
+If you write bug-reports and/or suggestions for improvement, please
+send them to the tm Mailing List:
+
+@itemize @bullet
+@item
+ Japanese <bug-tm-ja@@chamonix.jaist.ac.jp>
+@item
+ English <bug-tm-en@@chamonix.jaist.ac.jp>
+@end itemize
+
+
+Notice that, we do not welcome bug reports about too old version.  Bugs
+in old version might be fixed.  So please try latest version at
+first.@refill
+
+You should write @strong{good bug report}.  If you write only ``FLIM
+does not work'', we can not find such situations.  At least, you should
+write name, type, variants and version of OS, emacs, APEL, FLIM, SEMI
+and MUA, and setting.  In addition, if error occurs, to send backtrace
+is very important. (cf. @ref{(emacs)Bugs}) @refill
+
+Bug may not appear only your environment, but also in a lot of
+environment (otherwise it might not bug).  Therefor if you send mail
+to author directly, we must write a lot of mails.  So please send mail
+to address for tm bugs instead of author.
+
+Via the tm ML, you can report FLIM bugs, obtain the latest release of
+FLIM, and discuss future enhancements to FLIM.  To join the tm ML,
+send empty e-mail to:
+
+@itemize @bullet
+@item
+ Japanese <tm-ja-help@@chamonix.jaist.ac.jp>
+@item
+ English  <tm-en-help@@chamonix.jaist.ac.jp>
+@end itemize
+
+
+
+@node CVS, History, Bug report, Appendix
+@section CVS based development
+
+FLIM \e$B$N\e(B file \e$B$O\e(B CVS \e$B$r;H$C$F4IM}$5$l$F$$$^$9!#$3$N$?$a!"0J2<$NJ}K!$G:G\e(B
+\e$B?7$N\e(B FLIM \e$B$rF~<j$9$k$3$H$,$G$-$^$9!'\e(B
+
+@example
+(0) cvs login
+
+    % cvs -d :pserver:anonymous@@chamonix.jaist.ac.jp:/hare/cvs/root \
+       login
+
+    CVS password: [CR] # NULL string
+
+(1) checkout
+
+    % cvs -d :pserver:anonymous@@chamonix.jaist.ac.jp:/hare/cvs/root \
+       checkout [-r TAG] flim
+@end example
+
+
+CVS \e$B$rMQ$$$?3+H/$K;22C$7$?$$J}$O\e(B
+
+@itemize @bullet
+@item
+ <cvs@@chamonix.jaist.ac.jp>
+@end itemize
+
+@noindent
+\e$B$^$G!"\e(Baccount \e$BL>$H\e(B UNIX \e$B$N\e(B passwd \e$B$HF1$87A<0$N\e(B crypt \e$B2=$5$l$?\e(B password
+\e$B$r1h$($F8fO"Mm$/$@$5$$!#\e(B
+
+
+@node History,  , CVS, Appendix
+@section History of FLIM
+
+FLIM \e$B$N\e(B code \e$B$N:G8E$NItJ,$O\e(B \e$B1]JB\e(B \e$B;LCR\e(B \e$B;a$,=q$$$?\e(B @file{mime.el}\e$B$K5/8;$7\e(B
+\e$B$^$9!#$3$N>.$5$J\e(B program \e$B$O\e(B Nemacs \e$B$GF0:n$9$k\e(B iso-2022-jp \e$B$N\e(B B-encoding 
+\e$B@lMQ$N\e(B encoded-word \e$B$NI|9f2=%W%m%0%i%`$G$7$?!#\e(B@refill
+
+\e$B$=$N8e!"<i2,\e(B \e$BCNI'\e(B \e$B$O\e(B @file{mime.el} \e$B$r85$K\e(B@file{tiny-mime.el} \e$B$H$$$&%W%m\e(B
+\e$B%0%i%`$r=q$-$^$9!#$3$l$O!"\e(BNemacs \e$B$H\e(B Mule \e$B$GF0:n$9$k\e(B encoded-word \e$B$NId9f\e(B
+\e$B2=!&I|9f2=%W%m%0%i%`$G$7$?!#\e(B@file{tiny-mime.el} \e$B$O\e(B B-encoding \e$B$@$1$G$J$/\e(B 
+Q-encoding \e$B$b\e(Bsupport \e$B$7!"$^$?!"\e(BMULE \e$B$G07$&$3$H$,$G$-$k$5$^$6$^$J\e(B MIME
+charset (@ref{MIME charset}) \e$B$rF1;~$K;H$&$3$H$,$G$-$^$7$?!#$3$N;~!"\e(B
+Nemacs \e$B$H\e(B Mule \e$B$NAPJ}$r\e(B support \e$B$9$k$?$a$KMQ$$$i$l$?%F%/%K%C%/$O8e$K\e(B emu
+package \e$B$K$^$H$a$i$l$^$9!#\e(B@refill
+
+\e$B$3$N:"!"<i2,\e(B \e$BCNI'\e(B \e$B$O\e(B @file{tiny-mime.el} \e$B$r$5$^$6$^$J\e(B MUA \e$B$G;H$&$?$a$N@_\e(B
+\e$BDj=8$bG[I[$7$F$$$^$7$?$,!"$=$l$i$O8e$K\e(B@file{tiny-mime.el} \e$B$H$H$b$K#1$D$N\e(B 
+package \e$B$K$^$H$a$i$l!"\e(Btm \e$B$H$$$&L>A0$GG[I[$5$l$^$9!#\e(B@refill
+
+\e$B<i2,\e(B \e$BCNI'\e(B \e$B$O$d$,$F!"\e(BMIME message \e$B$r1\Mw$9$k$?$a$N%W%m%0%i%`$G$"$k\e(B
+@file{tm-body.el} \e$B$r=q$-$^$9!#$3$l$O!"$9$0$K\e(B@file{tm-view.el} \e$B$H$$$&L>A0\e(B
+\e$B$KJQ$o$j$^$7$?$,!"$d$,$F!"$3$l$,\e(B@file{tiny-mime.el} \e$B$KBe$o$C$F!"\e(Btm \e$B$NCf\e(B
+\e$B3K$H$J$j$^$9!#\e(B@refill
+
+@file{tm-view.el} \e$B$OEvA3!"\e(BContent-Transfer-Encoding \e$B$r07$&I,MW$,$"$j$^$9!#\e(B
+\e$B$3$NL\E*$N$?$a$K!"\e(BMEL \e$B$,@0Hw$5$l$O$8$a$^$7$?!#\e(BBase64 \e$B$K4X$7$F$O\e(B 
+@file{tiny-mime.el} \e$B$N\e(B code \e$B$,0\$5$l!"$^$?!"?7$?$K\e(BQuoted-Printable \e$B$N\e(B 
+code \e$B$,DI2C$5$l$^$7$?!#$3$l$i$,\e(B@file{mel-b.el} \e$B$H\e(B @file{mel-q.el} \e$B$K$J$j\e(B
+\e$B$^$7$?!#\e(B@refill
+
+\e$B$^$?!"8e$K!"<i2,\e(B \e$BCNI'\e(B \e$B$K$h$C$F\e(B uuencode \e$BMQ$N\e(B @file{mel-u.el} \e$B$,DI2C$5$l!"\e(B
+\e$B$=$N8e$K!">.NS\e(B \e$B=$J?\e(B \e$B;a$K$h$C$F\e(B x-gzip64 \e$BMQ$N\e(B@file{mel-g.el} \e$B$,DI2C$5$l$^\e(B
+\e$B$7$?!#\e(B@refill
+
+tm \e$B$G$O8e$K!"<i2,\e(B \e$BCNI'\e(B \e$B$K$h$C$F\e(B @file{tiny-mime.el} \e$B$N:F<BAu$,9T$o$l!"$3\e(B
+\e$B$N2aDx$G!"\e(BSTD 11 \e$B$N\e(B parser \e$B$,=q$+$l$^$7$?!#$3$l$O!"8=:_$N\e(B 
+@file{std11.el} \e$B$KEv$?$j$^$9!#$^$?!"$3$N2aDx$G\e(B @file{tiny-mime.el} \e$B$OI|\e(B
+\e$B9f2=$r9T$&\e(B @file{tm-ew-d.el} \e$B$HId9f2=$r9T$&\e(B @file{tm-ew-e.el} \e$B$KJ,$1$i$l\e(B
+\e$B$^$7$?!#$3$NN><T$,8=:_$N\e(B @file{eword-decode.el} \e$B$H\e(B 
+@file{eword-encode.el} \e$B$N@hAD$KEv$?$j$^$9!#\e(B@refill
+
+\e$B8e$K!"<i2,\e(B \e$BCNI'\e(B \e$B$i$K$h$C$F\e(B tm \e$B$NA4LL=q$-49$(:n6H$,9T$o$l!"$3$N2aDx$G!"\e(Btm 
+\e$B$O\e(B APEL, MEL, SEMI, EMH, RMAIL-MIME, Gnus-MIME \e$B$J$I$KJ,$1$i$l$^$7$?!#$3\e(B
+\e$B$N$&$A$N\e(B MEL \e$B$,\e(B FLIM \e$B$ND>@\$N@hAD$KEv$?$j$^$9!#\e(B@refill
+
+\e$B8e$K!"\e(BAPEL \e$B$+$i\e(B @file{std11.el} \e$B$,0\$5$l!"$^$?!"\e(B@file{mailcap.el},
+@file{eword-decode.el} \e$B$*$h$S\e(B @file{eword-encode.el} \e$B$,\e(B SEMI \e$B$+$i0\$5$l!"\e(B
+package \e$B$NL>A0$,\e(B FLIM\e$B$H$J$j$^$9!#\e(B@refill
+
+\e$B$3$ND>A0$+$iEDCf\e(B \e$BE/\e(B \e$B;a$,$h$j\e(B RFC \e$B$KCi<B$J<BAu$r=q$-;O$a!"$3$l$O!"8=:_!"\e(B
+FLIM \e$B$N;^$G$"$k\e(B ``FLIM-FLAM'' \e$B$H$J$C$F$$$^$9!#\e(B
+
+
+@node Concept Index, Function Index, Appendix, Top
+@chapter Concept Index
+
+@printindex cp
+
+@node Function Index, Variable Index, Concept Index, Top
+@chapter Function Index
+
+@printindex fn
+
+@node Variable Index,  , Function Index, Top
+@chapter Variable Index
+
+@printindex vr
+@bye