\input texinfo.tex
@setfilename mime-en.info
-@settitle{FLIM 1.8 Manual about MIME Features}
+@settitle{FLIM 1.9 Manual about MIME Features}
@titlepage
-@title FLIM 1.8 Manual about MIME Features
+@title FLIM 1.9 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
+@top FLIM 1.9 Manual about MIME Features
@ifinfo
@node Entity, Content-Type, How to use, Top
@chapter Message and Entity
-@cindex node-id
-@cindex entity-number
@cindex mime-entity
@cindex entity
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
+The definition of RFC 2045 indicates that a MIME message is a tree, and
+each node of the tree is an entity. Namely MIME extends message to tree
+structure.@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
+FLIM uses @strong{mime-entity} structure to represent
+information of entity. In this document, it is called simply
+`mime-entity'.
@menu
@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
+@defun mime-parse-buffer &optional buffer type
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.
+If @var{buffer} is omitted, current buffer is used.@refill
+
+@var{type} is representation-type of created
+mime-entity. (cf. @ref{mm-backend}) Default value is @var{buffer}.
@end defun
@node Entity hierarchy, Entity Attributes, Entity creation, Entity
@section Features about message tree
+@cindex node-id
+@cindex entity-number
+@cindex message
+@cindex root-entity
+
+Structure of a MIME message is tree.@refill
+
+In the tree, root node is the entity indicates all of the message. In
+this document, it is called @strong{root-entity} or @strong{message}.
+In FLIM, it is indicated by buffer local variable
+@code{mime-message-structure}.@refill
+
+Each entity except root-entity has a parent. An entity may have
+children. We can indicate an entity by relative position from a base
+entity, based on the parent-child relationship.@refill
+
+In addition, we can indicate an entity by absolute position of the
+message.@refill
+
+Each entity, which is a node of the tree, can be numbered by
+depth and left-to-right order of the depth.
+@example
+
+ +-------+
+ | nil |
+ +---+---+
+ +-------------------+-------------------+
+ +-+-+ +-+-+ +-+-+
+ | 0 | | 1 | | 2 |
+ +-+-+ +-+-+ +-+-+
+ | +---------+---------+ |
+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+
+ | 0.0 | | 1.0 | | 1.1 | | 1.2 | | 2.0 |
+ +-----+ +-----+ +-----+ +-----+ +-----+
+@end example
+
+Namely, if depth of a node is n, the node has a node-number, which is
+consists of n integers. In this document, it is called
+@strong{entity-number}. An entity-number is represented by list of
+integer, like @code{(1 2 3)}.@refill
+
+mime-entity has also @strong{node-id}. A node-id is represented by
+reversed list of entity-number. For example, node-id corresponding with
+1.2.3 is @code{(3 2 1)}.@refill
+
+Each entity can be indicated by entity-number or node-id in
+@code{mime-message-structure}.
@defvar mime-message-structure
@end defun
-@defun mime-entity-encoding entity
+@defun mime-entity-encoding entity &optional default-encoding
Return content-transfer-encoding of @var{entity}.
-(cf. @ref{Content-Transfer-Encoding})
+(cf. @ref{Content-Transfer-Encoding}) @refill
+
+If the @var{entity} does not have Content-Transfer-Encoding field, this
+function returns @var{default-encoding}. If it is nil, @code{"7bit"} is
+used as default value.
@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 entity processing 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
+Entity is an abstraction. It is designed to use various data
+representations for their purposes.@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
+Each entity has @strong{representation-type}. It must be specified when
+an entity is created. (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
+Functions about entity are implemented by request processing to the
+entity. Each entity knows its representation-type. Each entity calls
+processing function corresponding with the representation-type. Such
+kind of function is called @strong{entity processing method}. A module,
+consists of them corresponding with a representation-type, is called
+@strong{mm-backend}.@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
+Module name of each mm-backend consists of the prefix @code{mm}
+and its representation-type. The module is required automatically
+when its entity is created at first.
@menu
@defun mime-entity-send entity message &rest args
-@var{entity} \e$B$K\e(B @var{message} \e$B$rAw$k!#\e(B@refill
+Send @var{message} to @var{entity} with @var{args}, and return the
+result.@refill
-@var{args} \e$B$O\e(B @var{message} \e$B$N0z?t$G$"$k!#\e(B
+@var{args} is arguments of the @var{message}.
@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
+(It is not written yet, sorry. (^_^;)@refill
-\e$B!J$H$j$"$($:!"\e(Bmm*.el \e$B$r;29M$K$7$F$/$@$5$$!K\e(B
+(Please read mm*.el)
@node Content-Type, Content-Disposition, Entity, Top
@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
+FLIM provides parser for Content-Type field and structure
+@strong{mime-content-type} to store information of
+Content-Type field.
@menu
* Content-Type field:: Format of Content-Type field
* mime-content-type:: mime-content-type structure
-* Content-Type parser:: Parser for Content-Type field
-* Content-Type utility:: Content-Type
+* Content-Type parser:: Parser
+* Content-Type utility:: Utility functions
@end menu
@node Content-Type field, mime-content-type, Content-Type, Content-Type
@cindex subtype
@cindex type
-Content-Type \e$BMs$N7A<0$O0J2<$N$h$&$KDj5A$5$l$F$$$^$9!'\e(B
+Format of Content-Type field is defined as follows:
@quotation
``Content-Type'' ``:'' @strong{type} ``/''
@strong{subtype} *( ``;'' @strong{parameter} )
@end quotation
-\e$BNc$($P!"\e(B
+For example:
@quotation
@example
@end example
@end quotation
-@noindent
-\e$B$d\e(B
@quotation
@example
@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
+`type' and `subtype' indicate format of an entity. In this document,
+pair of them is called `media-type'. `image/jpeg' or `text/plain' is
+a media-type.
@noindent
@strong{[Memo]}
@quotation
-Content-Type \e$BMs$N$J$$\e(B entity \e$B$O\e(B
+If an entity does not have Content-Type field, it is regarded as
+following:
@quotation
@example
@end quotation
@noindent
-\e$B$H$7$F2r<a$5$l$k!#\e(B(cf. @ref{us-ascii})
+(cf. @ref{us-ascii})
@end quotation
@deffn{Structure} mime-content-type
-Content-Type \e$BMs$N>pJs$r3JG<$9$k$?$a$N9=B$BN!#\e(B@refill
+Structure to store information of a Content-Type field.@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
+Applications should use reference functions
+@code{mime-content-type-SLOT} to refer information of the
+structure.@refill
-\e$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'\e(B
+Slots of the structure are following:
@table @var
@item primary-type
-media-type \e$B$N<g7?\e(B (symbol).
+primary type of media-type (symbol).
@item subtype
-media-type \e$B$NI{7?\e(B (symbol).
+subtype of media-type (symbol).
@item parameters
-Content-Type \e$BMs$N\e(B parameter (\e$BO"A[\e(B list).
+parameters of Content-Type field (association-list).
@end table
@end deffn
@defun make-mime-content-type type subtype
&optional parameters
-content-type \e$B$N@8@.;R!#\e(B
+Constructor of content-type.
@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
+Return value of @var{parameter} of @var{content-type}.
@end defun
@node Content-Type parser, Content-Type utility, mime-content-type, Content-Type
-@section Parser for Content-Type field
+@section Parser
@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
+Parse @var{string} as field-body of Content-Type field.
@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
+Read field-body of Content-Type field from current-buffer, and return
+parsed it.@refill
-Content-Type \e$BMs$,B8:_$7$J$$>l9g$O\e(B nil \e$B$rJV$9!#\e(B
+Return @code{nil} if Content-Type field is not found.
@end defun
@node Content-Type utility, , Content-Type parser, Content-Type
-@section Content-Type
+@section Utility functions
@defun mime-type/subtype-string type &optional subtype
@cindex mime-content-disposition
@cindex RFC 2183
@cindex Standards Track
-@cindex Content-Disposition \e$BMs\e(B
+@cindex Content-Disposition field
-@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
+@strong{Content-Disposition field} is an optional field to
+specify presentation of an entity or attributes of an entity, such as
+file name.
@noindent
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
+FLIM provides parser for Content-Disposition field and structure
+@strong{mime-content-disposition} to store information of
+Content-Disposition field.
@menu
@deffn{Structure} mime-content-disposition
-Content-Disposition \e$BMs$N2r@O7k2L$r<}$a$k$?$a$N9=B$BN!#\e(B@refill
+Structure to store information of a Content-Disposition field.@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
+Applications should use reference functions
+@code{mime-content-disposition-SLOT} to refer information of the
+structure.@refill
-\e$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'\e(B
+Slots of the structure are following:
@table @var
@item disposition-type
disposition-type (symbol).
@item parameters
-Content-Disposition \e$BMs$N\e(B parameter (\e$BO"A[\e(B list).
+parameters of Content-Disposition field
+(association-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
+Return value of @var{parameter} of @var{content-disposition}.
@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
+Return filename of @var{content-disposition}.
@end defun
@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
+Parse @var{string} as field-body of Content-Disposition field, and
+return the result.
@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
+Read field-body of Content-Disposition field from current-buffer,@refill
-Content-Disposition \e$BMs$,B8:_$7$J$$>l9g$O\e(B nil \e$B$rJV$9!#\e(B
+Return nil if Content-Disposition field is not found.
@end defun
@node Content-Transfer-Encoding, encoded-word, Content-Disposition, Top
@chapter Encoding Method
-@cindex Content-Transfer-Encoding \e$BMs\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
+@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
+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
+\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:: Parser for Content-Transfer-Encoding field
+* Content-Transfer-Encoding parser:: Parser
* Region encoder/decoder:: Region encoding/decoding
* String encoder/decoder:: String encoding/decoding
* File encoder/decoder:: File encoding/decoding
@end menu
@node Content-Transfer-Encoding parser, Region encoder/decoder, Content-Transfer-Encoding, Content-Transfer-Encoding
-@section Parser for Content-Transfer-Encoding field
+@section Parser
@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
+@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
+\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
+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
@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
+@var{string} \e$(B$r\e(B @var{encoding} \e$(B$H$7$FI|9f$7$?7k2L$rJV$7$^$9!#\e(B
@end defun
@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
+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
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
+\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
+FLIM \e$(B$O$3$l$i$rId9f2=!&I|9f2=$9$k5!G=$rDs6!$7$^$9!#\e(B
@menu
@deffn{group} mime
-MIME \e$B4XO"5!G=$K4X$9$k\e(B group.@refill
+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
+@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$(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
+\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
+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
+\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 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
+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
@end example
-CVS \e$B$rMQ$$$?3+H/$K;22C$7$?$$J}$O\e(B
+CVS \e$(B$rMQ$$$?3+H/$K;22C$7$?$$J}$O\e(B
@itemize @bullet
@item
@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
+\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
+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