(base64-internal-encoding-limit): Change initial value to 70000.
[elisp/flim.git] / mime-en.texi
index f635645..f3bbf8a 100644 (file)
@@ -59,9 +59,9 @@ 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
+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
 
 FLIM uses @strong{mime-entity} structure to represent
 information of entity.  In this document, it is called simply
@@ -113,49 +113,48 @@ mime-entity. (cf. @ref{mm-backend}) Default value is @var{buffer}.
 @cindex message
 @cindex root-entity
 
-MIME message \e$B$O\e(B entity \e$B$rC10L$H$9$kLZ9=B$$K$J$C$F$$$^$9!#\e(B@refill
+Structure of a MIME message is tree.@refill
 
-\e$B$3$NLZ$K$*$$$F:,$H$J$k@a$O\e(B message \e$BA4BN$rI=$9\e(B entity \e$B$G$9!#$3$3$G$O!"$3\e(B
-\e$B$l$r\e(B @strong{root-entity} \e$B$b$7$/$O\e(B@strong{message} \e$B$H8F$S$^$9!#\e(B@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
 
-root-entity \e$B0J30$N\e(B entity \e$B$O?F$r;}$A$^$9!#$^$?!"\e(Bentity \e$B$O;R6!$r;}$D$+$b\e(B
-\e$BCN$l$^$;$s!#$3$N?F;R4X78$r9M$($k$3$H$G\e(B entity \e$B$NAjBP4X78$r07$&$3$H$,$G$-\e(B
-\e$B$^$9!#\e(B@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
 
-\e$B0lJ}!"\e(Bentity \e$B$N\e(B message \e$B$K$*$1$k0LCV$r9M$($k$3$H$b$G$-$^$9!#\e(B@refill
+In addition, we can indicate an entity by absolute position of the
+message.@refill
 
-entity \e$B$O$3$NLZ$K$*$1$k@a$H$J$j$^$9$,!"$3$NLZ$K$O?<$5$HF1$8?<$5$NCf$N\e(B
-\e$B=gHV$K=>$C$FHV9f$,IU$1$k$3$H$,$G$-$^$9!#B($A!"\e(B
+Each entity, which is a node of the tree, can be numbered by
+depth and left-to-right order of the depth.
 @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
+                              +-------+
+                              |  nil  |
+                              +---+---+
+              +-------------------+-------------------+
+            +-+-+               +-+-+               +-+-+
+            | 0 |               | 1 |               | 2 |
+            +-+-+               +-+-+               +-+-+
+              |         +---------+---------+         |
+           +--+--+   +--+--+   +--+--+   +--+--+   +--+--+
+           | 0.0 |   | 1.0 |   | 1.1 |   | 1.2 |   | 2.0 |
+           +-----+   +-----+   +-----+   +-----+   +-----+
 @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
+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
 
-\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@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
 
-@code{mime-message-structure} \e$B$r5/E@$K\e(B entity-number \e$B$d\e(B node-id 
-\e$B$G<($5$l$k\e(B entity \e$B$r<h$j=P$9$3$H$,$G$-$^$9!#\e(B
+Each entity can be indicated by entity-number or node-id in
+@code{mime-message-structure}.
 
 @defvar mime-message-structure
 
@@ -392,7 +391,7 @@ contains @var{entity}.
 @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 is an abstraction.  It is designed to use various data
@@ -401,18 +400,16 @@ representations for their purposes.@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
@@ -425,9 +422,10 @@ 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
 
 @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
 
 
@@ -435,9 +433,9 @@ 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
 @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
@@ -477,14 +475,14 @@ Content-Type field.
 @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
@@ -492,8 +490,6 @@ Content-Type: image/jpeg
 @end example
 @end quotation
 
-@noindent
-\e$B$d\e(B
 
 @quotation
 @example
@@ -501,18 +497,16 @@ 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
+`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
@@ -521,7 +515,7 @@ Content-Type: text/plain; charset=us-ascii
 @end quotation
 
 @noindent
-\e$B$H$7$F2r<a$5$l$k!#\e(B(cf. @ref{us-ascii})
+(cf. @ref{us-ascii})
 @end quotation
 
 
@@ -531,22 +525,23 @@ Content-Type: text/plain; charset=us-ascii
 
 @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
@@ -555,13 +550,13 @@ Content-Type \e$BMs$N\e(B parameter (\e$BO"A[\e(B list).
 @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
 
 
@@ -571,15 +566,16 @@ content-type \e$B$N@8@.;R!#\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
+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
 
 
@@ -599,10 +595,11 @@ Return type/subtype string from @var{type} and @var{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
@@ -613,9 +610,9 @@ 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
+FLIM provides parser for Content-Disposition field and structure
+@strong{mime-content-disposition} to store information of
+Content-Disposition field.
 
 
 @menu
@@ -628,19 +625,21 @@ FLIM \e$B$O\e(B Content-Disposition \e$BMs$r9=J82r@O$9$k4X?t$H\e(B Content-Dispositi
 
 @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
@@ -648,13 +647,13 @@ Content-Disposition \e$BMs$N\e(B parameter (\e$BO"A[\e(B list).
 
 @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
 
 
@@ -664,33 +663,33 @@ Content-Disposition \e$BMs$N\e(B parameter (\e$BO"A[\e(B list).
 
 @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 field
 
-@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 field} is a header field to indicate
+body encoding of a entity.@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
+FLIM provides parser functions for Content-Transfer-Encoding field.
+They represent information of Content-Transfer-Encoding field as
+string.@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
+In addition, FLIM provides encoder/decoder functions by
+Content-Transfer-Encoding.
 
 
 @menu