(eword-decode-string, eword-decode-region): Mention language info in doc string.
[elisp/flim.git] / mime-ja.texi
index 33c14b3..c7520bd 100644 (file)
@@ -1,21 +1,22 @@
 \input texinfo.tex
+@c Generated automatically from mime-ja.sgml by sinfo 3.7.
 @setfilename mime-ja.info
-@settitle{FLIM 1.6 MIME \e$B5!G=@bL@=q\e(B}
+@settitle{FLIM 1.14 MIME \e$B5!G=@bL@=q\e(B}
 @titlepage
-@title FLIM 1.6 MIME \e$B5!G=@bL@=q\e(B
+@title FLIM 1.14 MIME \e$B5!G=@bL@=q\e(B
 @author \e$B<i2,\e(B \e$BCNI'\e(B <morioka@@jaist.ac.jp>
-@subtitle 1998/06/23
+@subtitle 1999-01-27
 @end titlepage
 @node Top, Introduction, (dir), (dir)
-@top FLIM 1.6 MIME \e$B5!G=@bL@=q\e(B
+@top FLIM 1.14 MIME \e$B5!G=@bL@=q\e(B
 
 @ifinfo
 
-This file documents MIME features of FLIM, a Internet message
-parsing/encoding library for GNU Emacs.@refill
+This file documents MIME features of FLIM, a fundamental library to
+process Internet Messages for GNU Emacsen.@refill
 
-GNU Emacs \e$BMQ$N\e(B Internet Message \e$B$N2r@O$dId9f2=$K4X$9$k\e(B library \e$B$G$"$k\e(B 
-FLIM \e$B$N\e(B MIME \e$B5!G=$K4X$7$F@bL@$7$^$9!#\e(B
+GNU Emacsen \e$BMQ$N\e(B Internet Message \e$B=hM}$N$?$a$N4pAC\e(B library \e$B$G$"$k\e(B FLIM 
+\e$B$N\e(B MIME \e$B5!G=$K4X$7$F@bL@$7$^$9!#\e(B
 @end ifinfo
 
 @menu
@@ -55,8 +56,6 @@ FLIM \e$B$NDs6!$9$k\e(B MIME \e$B5!G=$r;H$&$?$a$K$O\e(B
 
 @node Entity, Content-Type, How to use, Top
 @chapter Message \e$B$H\e(B Entity
-@cindex node-id
-@cindex entity-number
 @cindex mime-entity
 @cindex entity
 
@@ -66,16 +65,73 @@ field \e$B$HFbMF$r;X$9!W$H$J$C$F$$$^$9!#$3$3$G$O!"\e(BMIME \e$B$GDj5A$5$l$?\e(B head
 field \e$B0J30$NA4$F$N\e(B header \e$B$H\e(B body \e$B$r;X$98l$H$7$F\e(B @strong{entity}\e$B$rMQ$$$k\e(B
 \e$B$3$H$K$7$^$9!#\e(B@refill
 
-RFC 2045 \e$B$NDj5A$O!"\e(BMIME message \e$B$,\e(B entity \e$B$rC10L$H$9$kLZ9=B$$G$"$k$3$H$r\e(B
-\e$B<($7$F$$$^$9!#\e(Bmessage \e$B$O2<?^$G<($9$h$&$JLZ$H$J$j!"\e(Bentity \e$B$O$3$NLZ$K$*$1\e(B
-\e$B$k@a$H$J$j$^$9!#$D$^$j!"\e(BMIME \e$B$O\e(B message \e$B$rLZ9=B$$K3HD%$7$?Lu$G$9!#\e(B
-@refill
+RFC 2045 \e$B$NDj5A$O!"\e(BMIME message \e$B$,\e(B entity \e$B$r@a$H$9$kLZ9=B$$G$"$k$3$H$r<(\e(B
+\e$B$7$F$$$^$9!#$D$^$j!"\e(BMIME \e$B$O\e(B message \e$B$rLZ9=B$$K3HD%$7$?Lu$G$9!#\e(B@refill
+
+FLIM \e$B$O\e(B entity \e$B$N>pJs$rI=8=$9$k$?$a$K\e(B@strong{mime-entity} \e$B9=\e(B
+\e$BB$BN$rMQ$$$^$9!#0J2<$G$OC1$K\e(B mime-entity \e$B$H8F$V$3$H$K$7$^$9!#\e(B
+
+
+@menu
+* Entity creation::             Entity \e$B$N@8@.\e(B
+* Entity hierarchy::            Entity \e$B3,AX\e(B
+* Entity Search::               Entity \e$B$N8!:w\e(B
+* Entity Attributes::           Entity \e$B$NB0@-\e(B
+* Entity-header::               Entity header \e$B$N>pJs\e(B
+* entity formatting::           Entity \e$B$NJ8;zI=8=\e(B
+* Entity-content::              Entity \e$B$NFbMF\e(B
+* Entity-network-representation::  Entity \e$B$N%M%C%H%o!<%/I=8=\e(B
+* Entity buffer::               Entity \e$B$N\e(B buffer \e$B$K$h$kI=8=\e(B
+* mm-backend::                  Entity \e$B$NI=8=$H<B8=\e(B
+@end menu
+
+@node Entity creation, Entity hierarchy, Entity, Entity
+@section Entity \e$B$N@8@.\e(B
+
+@defun mime-open-entity type location
+
+Entity \e$B$r3+$$$F!"$=$l$rJV$7$^$9!#\e(B@refill
+
+@var{type} \e$B$O\e(B representation-type \e$B$G$9!#\e(B(cf. @ref{mm-backend}) @refill
+
+@var{location} \e$B$O\e(B entity \e$B$N0LCV$G$9!#;XDjJ}K!$O\e(B
+representation-type \e$B$K0M$C$FJQ$o$j$^$9!#\e(B
+@end defun
+
+
+@defun mime-parse-buffer &optional  buffer type
+
+@var{buffer} \e$B$r\e(B message \e$B$H$7$F9=J82r@O$7!"$=$N7k2L$N\e(B mime-entity \e$B$r\e(B 
+@var{buffer} \e$B$N\e(B@code{mime-message-structure} \e$B$K3JG<$9$k!#\e(B@refill
 
-FLIM \e$B$O\e(B entity \e$B$N>pJs$rI=8=$9$k$?$a$K\e(B@strong{mime-entity} \e$B9=B$BN$rMQ$$$^\e(B
-\e$B$9!#0J2<$G$OC1$K\e(B mime-entity \e$B$H8F$V$3$H$K$7$^$9!#\e(B@refill
+@var{buffer} \e$B$,>JN,$5$l$?>l9g!"8=:_$N\e(B buffer \e$B$r9=J82r@O$9$k!#\e(B@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
+@var{type} \e$B$,;XDj$5$l$?>l9g!"$=$NCM$r@8@.$5$l$k\e(B mime-entity \e$B$NI=>]7?$H$7\e(B
+\e$B$FMQ$$$k!#>JN,$5$l$?>l9g$O\e(B @var{buffer} \e$B$H$J$k!#\e(B(cf. @ref{mm-backend})
+@end defun
+
+
+
+@node Entity hierarchy, Entity Search, Entity creation, Entity
+@section Entity \e$B3,AX\e(B
+@cindex node-id
+@cindex entity-number
+@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
+
+\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
+
+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
+
+\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
+
+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
 @example
 
                               \e$B(#(!(!(!($\e(B
@@ -102,183 +158,125 @@ 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
-* mime-entity::                 mime-entity \e$B9=B$BN\e(B
-* Message parser::              Message \e$B$N2r@O4o\e(B
-* Entity as node in message::   Entity \e$B$N0LCV4X78$K4X$9$k5!G=\e(B
-* Entity-header::               Entity header \e$B$N>pJs\e(B
-* Entity-content::              Entity \e$B$NFbMF\e(B
-@end menu
+local \e$BJQ?t\e(B @code{mime-message-structure} \e$B$K3JG<$9$k$3$H$K$7$^$9!#\e(B@refill
 
-@node mime-entity, Message parser, Entity, Entity
-@section mime-entity \e$B9=B$BN\e(B
+@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
 
-@deffn{Structure} mime-entity
-
-entity \e$B$K4X$9$k>pJs$r<}$a$k9=B$BN!#\e(B@refill
-
-\e$B$3$N9=B$BN$r;2>H$9$k$K$O\e(B @code{mime-entity-\e$BMWAGL>\e(B} \e$B$H$$$&L>A0$N;2>H4X?t\e(B
-\e$B$rMQ$$$k!#\e(B@refill
-
-\e$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'\e(B
-
-@table @var
-@item buffer
-entity \e$B$,B8:_$9$k\e(B buffer (buffer)
-
-@item header-start
-entity \e$B$NB8:_$9$k\e(B buffer \e$B$K$*$1$k\e(B header \e$B$N@hF,0LCV\e(B
-(point)
-
-@item header-end
-entity \e$B$NB8:_$9$k\e(B buffer \e$B$K$*$1$k\e(B header \e$B$NKvHx0LCV\e(B
-(point)
-
-@item body-start
-entity \e$B$NB8:_$9$k\e(B buffer \e$B$K$*$1$k\e(B body \e$B$N@hF,0LCV\e(B
-(point)
+@defvar mime-message-structure
 
-@item body-end
-entity \e$B$NB8:_$9$k\e(B buffer \e$B$K$*$1$k\e(B body \e$B$NKvHx0LCV\e(B
-(point)
+\e$B8=:_$N\e(B buffer \e$B$K$*$1$k\e(B message \e$BA4BN$N\e(B mime-entity \e$B9=B$BN$r3JG<$9$k\e(Bbuffer
+local \e$BJQ?t!#\e(B
+@end defvar
 
-@item node-id
-entity \e$B$N\e(B node-id (\e$B@0?t$N\e(B list)
 
-@item content-type
-Content-Type (@ref{Content-Type}) \e$BMs$N>pJs\e(B(mime-content-type)
+@defun mime-entity-children entity
 
-@item content-disposition
-Content-Disposition (@ref{Content-Disposition}) \e$BMs$N>pJs\e(B
-(mime-content-disposition)
+@var{entity} \e$B$K4^$^$l$k\e(B entity \e$B$N\e(B list \e$B$rJV$9!#\e(B
+@end defun
 
-@item encoding
-entity \e$B$N\e(B Content-Transfer-Encoding (@ref{Content-Transfer-Encoding})
-(\e$BJ8;zNs\e(B)
 
-@item children
-entity \e$B$K4^$^$l$k\e(B entity \e$B$N\e(B list (mime-entity \e$B$N\e(B 
-list)
+@defun mime-entity-parent entity  &optional  message
 
-@end table
+@var{entity} \e$B$N?F$N\e(B entity \e$B$rJV$9!#\e(B@refill
 
+@var{message} \e$B$,;XDj$5$l$?>l9g!"$3$l$r:,$H8+Jo$9!#\e(B
+@end defun
 
-\e$B$^$?!"2a5n$H$N8_49@-$N$?$a!"0J2<$NMWAGL>$N;2>H4X?t$bMxMQ2DG=$G$"$k!#\e(B
 
-@table @var
-@item type/subtype
-entity \e$B$N\e(B type/subtype (\e$BJ8;zNs\e(B)
+@defun mime-root-entity-p entity
 
-@item media-type
-entity \e$B$N\e(B media-primary-type (symbol)
+@var{entity} \e$B$,:,!JB($A!"\e(Bmessage \e$BA4BN!K$G$"$k>l9g$K!"Hs\e(B-@code{nil} \e$B$rJV\e(B
+\e$B$9!#\e(B
+@end defun
 
-@item media-subtype
-entity \e$B$N\e(B media-subtype (symbol)
 
-@item parameters
-entity \e$B$N\e(B Content-Type \e$BMs$N\e(B parameter (\e$BO"A[\e(B list)
+@defun mime-entity-node-id entity
 
-@end table
-@end deffn
+@var{entity} \e$B$N\e(B node-id \e$B$rJV$9!#\e(B
+@end defun
 
 
-@defun make-mime-entity buffer header-start header-end body-start body-end
-          &optional  node-id content-type content-disposition encoding
-         children
+@defun mime-entity-number entity
 
-entity \e$B$N@8@.;R!#\e(B
+@var{entity} \e$B$N\e(B entity-number \e$B$rJV$9!#\e(B
 @end defun
 
 
-@defun mime-entity-point-min entity
 
-entity \e$B$NB8:_$9$k\e(B buffer \e$B$K$*$1$k\e(B entity \e$B$N@hF,0LCV$rJV$9!#\e(B
-@end defun
+@node Entity Search, Entity Attributes, Entity hierarchy, Entity
+@section Entity \e$B$N8!:w\e(B
 
+@defun mime-find-entity-from-number entity-number  &optional  message
 
-@defun mime-entity-point-max entity
+@var{message} \e$B$+$i!"\e(B@var{enity-number} \e$B$N\e(B entity \e$B$rJV$7$^$9!#\e(B@refill
 
-entity \e$B$NB8:_$9$k\e(B buffer \e$B$K$*$1$k\e(B entity \e$B$NKvHx0LCV$rJV$9!#\e(B
+@var{message} \e$B$,;XDj$5$l$F$$$J$$>l9g$O!"\e(B
+@code{mime-message-structrue} \e$B$,;H$o$l$^$9!#\e(B
 @end defun
 
 
+@defun mime-find-entity-from-node-id entity-node-id  &optional  message
 
-@node Message parser, Entity as node in message, mime-entity, Entity
-@section Message \e$B$N2r@O4o\e(B
-
-@defun mime-parse-message &optional  default-ctl default-encoding node-id
+@var{message} \e$B$+$i!"\e(B@var{entity-node-id} \e$B$N\e(B entity \e$B$rJV$7$^$9!#\e(B@refill
 
-\e$B8=:_$N\e(B buffer \e$B$r9=J82r@O$7$?7k2L$rJV$9!#\e(B
+@var{message} \e$B$,;XDj$5$l$F$$$J$$>l9g$O!"\e(B
+@code{mime-message-structure} \e$B$,;H$o$l$^$9!#\e(B
 @end defun
 
 
-@defun mime-parse-buffer &optional  buffer
+@defun mime-find-entity-from-content-id cid  &optional  message
 
-@var{buffer} \e$B$r9=J82r@O$7!"$=$N7k2L$r\e(B @var{buffer} \e$B$N\e(B
-@code{mime-message-structure} \e$B$K3JG<$9$k!#\e(B@refill
+@var{message} \e$B$+$i!"\e(B@var{cid} \e$B$N\e(B entity \e$B$rJV$7$^$9!#\e(B@refill
 
-@var{buffer} \e$B$,>JN,$5$l$?>l9g!"8=:_$N\e(B buffer \e$B$r9=J82r@O$9$k!#\e(B
+@var{message} \e$B$,;XDj$5$l$F$$$J$$>l9g$O!"\e(B
+@code{mime-message-structure} \e$B$,;H$o$l$^$9!#\e(B
 @end defun
 
 
 
-@node Entity as node in message, Entity-header, Message parser, Entity
-@section Entity \e$B$N0LCV4X78$K4X$9$k5!G=\e(B
-
-@defvar mime-message-structure
-
-\e$B8=:_$N\e(B buffer \e$B$K$*$1$k\e(B message \e$BA4BN$N\e(B mime-entity \e$B9=B$BN$r3JG<$9$k\e(Bbuffer
-local \e$BJQ?t!#\e(B
-@end defvar
+@node Entity Attributes, Entity-header, Entity Search, Entity
+@section Entity \e$B$NB0@-\e(B
 
+@defun mime-entity-content-type entity
 
-@defun mime-entity-number entity
-
-@var{entity} \e$B$N\e(B entity-number \e$B$rJV$9!#\e(B
+@var{entity} \e$B$N\e(B content-type \e$B$rJV$9!#\e(B(cf. @ref{mime-content-type})
 @end defun
 
 
-@defun mime-find-entity-from-number entity-number  &optional  message
-
-Return entity from @var{entity-number} in @var{message}.@refill
+@defun mime-entity-content-disposition entity
 
-If @var{message} is not specified, @code{mime-message-structure} is
-used.
+@var{entity} \e$B$N\e(B content-disposition \e$B$rJV$9!#\e(B
+(cf. @ref{mime-content-disposition})
 @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
+@defun mime-entity-filename entity
 
-If @var{message} is not specified, @code{mime-message-structure} is
-used.
+@var{entity} \e$B$N\e(B file \e$BL>$rJV$9!#\e(B
 @end defun
 
 
-@defun mime-entity-parent entity  &optional  message
+@defun mime-entity-encoding entity  &optional  default-encoding
 
-@var{entity} \e$B$N?F$N\e(B entity \e$B$rJV$9!#\e(B@refill
+@var{entity} \e$B$N\e(B content-transfer-encoding \e$B$rJV$9!#\e(B
+(cf. @ref{Content-Transfer-Encoding}) @refill
 
-@var{message} \e$B$,;XDj$5$l$?>l9g!"$3$l$r:,$H8+Jo$9!#\e(B
+\e$B$b$7!"\e(B@var{entity} \e$B$K\e(B Content-Transfer-Encoding \e$BMs$,B8:_$7$J$$>l9g$O!"\e(B
+@var{default-encoding} \e$B$rJV$9!#$3$l$,;XDj$5$l$J$$>l9g$O!"\e(B@code{"7bit"} 
+\e$B$rMQ$$$k!#\e(B
 @end defun
 
 
-@defun mime-root-entity-p entity
+@defun mime-entity-cooked-p entity
 
-@var{entity} \e$B$,:,!JB($A!"\e(Bmessage \e$BA4BN!K$G$"$k>l9g$K!"Hs\e(B-@code{nil} \e$B$rJV\e(B
-\e$B$9!#\e(B
+@var{entity} \e$B$NFbMF$,4{$K%3!<%IJQ49$5$l$F$$$k>l9g$O\e(B nil \e$B$GL5$$CM\e(B
+\e$B$rJV$9!#\e(B
 @end defun
 
 
 
-@node Entity-header, Entity-content, Entity as node in message, Entity
+@node Entity-header, entity formatting, Entity Attributes, Entity
 @section Entity header \e$B$N>pJs\e(B
 
 @defun mime-fetch-field field-name  &optional  entity
@@ -290,7 +288,7 @@ used.
 @var{entity} \e$B$,>JN,$5$l$?>l9g$O!"\e(B@code{mime-message-structure} \e$B$NCM$rMQ\e(B
 \e$B$$$k!#\e(B@refill
 
-@var{field-name} \e$BMs$,B8:_$7$J$$>l9g$O\e(B nil \e$B$rJV$9!#\e(B
+@var{field-name} \e$BMs$,B8:_$7$J$$>l9g$O\e(B @code{nil} \e$B$rJV$9!#\e(B
 @end defun
 
 
@@ -311,8 +309,11 @@ used.
 @end defun
 
 
-@defun mime-insert-decoded-header entity  &optional  invisible-fields visible-fields
-           code-conversion
+
+@node entity formatting, Entity-content, Entity-header, Entity
+@section Entity \e$B$NJ8;zI=8=\e(B
+
+@defun mime-insert-header entity  &optional  invisible-fields visible-fields
 
 \e$B8=:_0LCV$K\e(B @var{entity} \e$B$NI|9f$7$?\e(B header \e$B$rA^F~$9$k!#\e(B@refill
 
@@ -322,11 +323,34 @@ used.
 
 @var{invisible-fields} \e$B$NMWAG$N$I$l$+$K\e(B match \e$B$7!"$+$D!"\e(B
 @var{visible-fields} \e$B$NMWAG$N$I$l$K$b\e(B match \e$B$7$J$$Ms$OI=<($5$l$J$$!#\e(B
+@refill
+
+encoded-word (@ref{encoded-word}) \e$B$OI|9f$5$l$k!#!X@8$NHs\e(B us-ascii \e$BJ8;z!Y\e(B
+\e$B$O\e(B @code{default-mime-charset} \e$B$H$7$F2r<a$5$l$k!#\e(B
+@end defun
+
+
+@defun mime-insert-text-content entity
+
+point \e$B$NA0$K\e(B @var{entity} \e$B$r\e(B text entity \e$B$H$7$FA^F~$7$^$9!#\e(B@refill
+
+@var{entity} \e$B$NFbMF$O\e(B @ref{MIME charset} \e$B$H$7$FI|9f2=$5$l\e(B
+\e$B$^$9!#\e(B@var{entity} \e$B$N\e(B Content-Type field \e$B$K\e(B charset paramter \e$B$,L5\e(B
+\e$B$$$H!"\e(B@code{default-mime-charset} \e$B$,=i4|CM$H$7$F;H$o$l$^$9!#\e(B
 @end defun
 
 
+@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
+
+
 
-@node Entity-content,  , Entity-header, Entity
+@node Entity-content, Entity-network-representation, entity formatting, Entity
 @section Entity \e$B$NFbMF\e(B
 
 @defun mime-entity-content entity
@@ -335,6 +359,174 @@ used.
 @end defun
 
 
+@defun mime-insert-entity-content entity
+
+point \e$B$N0LCV$K\e(B @var{entity} \e$B$NFbMF$rA^F~$7$^$9!#\e(B
+@end defun
+
+
+@defun mime-write-entity-content entity filename
+
+@var{entity} \e$B$NFbMF$r\e(B @var{filename} \e$B$K=q$-9~$_$^$9!#\e(B
+@end defun
+
+
+
+@node Entity-network-representation, Entity buffer, Entity-content, Entity
+@section Entity \e$B$N%M%C%H%o!<%/I=8=\e(B
+
+@defun mime-insert-entity entity
+
+@var{entity} \e$B$N\e(B header \e$B$H\e(B body \e$B$r\e(B point \e$B$N$H$3$m$KA^F~$7$^$9!#\e(B
+@end defun
+
+
+@defun mime-write-entity entity filename
+
+@var{entity} \e$B$NI=8=$r\e(B @var{filename} \e$B$K=q$-9~$_$^$9!#\e(B
+@end defun
+
+
+@defun mime-write-entity-body entity filename
+
+@var{entity} \e$B$N\e(B body \e$B$r\e(B @var{filename} \e$B$K=q$-9~$_$^$9!#\e(B
+@end defun
+
+
+
+@node Entity buffer, mm-backend, Entity-network-representation, Entity
+@section Entity \e$B$N\e(B buffer \e$B$K$h$kI=8=\e(B
+
+@defun mime-entity-buffer entity
+
+@var{entity} \e$B$,B8:_$9$k\e(B buffer \e$B$rJV$9!#\e(B
+@end defun
+
+
+@defun mime-entity-point-min entity
+
+@var{entity} \e$B$,B8:_$9$k\e(B buffer \e$B$K$*$1$k!"\e(B@var{entity} \e$B$,@j$a$kNN0h$N@hF,\e(B
+\e$B0LCV$rJV$9!#\e(B
+@end defun
+
+
+@defun mime-entity-point-max entity
+
+@var{entity} \e$B$,B8:_$9$k\e(B buffer \e$B$K$*$1$k!"\e(B@var{entity} \e$B$,@j$a$kNN0h$NKvHx\e(B
+\e$B0LCV$rJV$9!#\e(B
+@end defun
+
+
+@defun mime-entity-header-start entity
+
+@var{entity} \e$B$,B8:_$9$k\e(B buffer \e$B$K$*$1$k!"\e(Bheader \e$B$,@j$a$kNN0h$N@hF,0LCV$r\e(B
+\e$BJV$9!#\e(B
+@end defun
+
+
+@defun mime-entity-header-end entity
+
+@var{entity} \e$B$,B8:_$9$k\e(B buffer \e$B$K$*$1$k!"\e(Bheader \e$B$,@j$a$kNN0h$NKvHx0LCV$r\e(B
+\e$BJV$9!#\e(B
+@end defun
+
+
+@defun mime-entity-body-start entity
+
+@var{entity} \e$B$,B8:_$9$k\e(B buffer \e$B$K$*$1$k!"\e(Bbody \e$B$,@j$a$kNN0h$N@hF,0LCV$rJV\e(B
+\e$B$9!#\e(B
+@end defun
+
+
+@defun mime-entity-body-end entity
+
+@var{entity} \e$B$,B8:_$9$k\e(B buffer \e$B$K$*$1$k!"\e(Bbody \e$B$,@j$a$kNN0h$NKvHx0LCV$rJV\e(B
+\e$B$9!#\e(B
+@end defun
+
+
+
+@node mm-backend,  , Entity buffer, Entity
+@section Entity \e$B$NI=8=$H<B8=\e(B
+@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::          Entity \e$B$X$NJX$j\e(B
+* mm-backend module::           mm-backend \e$B$N:n$jJ}\e(B
+@end menu
+
+@node Request for entity, mm-backend module, mm-backend, mm-backend
+@subsection Entity \e$B$X$NJX$j\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
+
+@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 mm-backend \e$B$N:n$jJ}\e(B
+
+@defmac mm-define-backend type &optional  parents
+
+@var{type} \e$B$r\e(B mm-backend \e$B$H$7$FDj5A$7$^$9!#\e(B@refill
+
+@var{PARENTS} \e$B$,;XDj$5$l$F$$$k>l9g$O!"\e(B@var{type} \e$B$O\e(B prents
+\e$B$r7Q>5$7$^$9!#$=$l$>$l$N\e(B parent \e$B$O\e(B representation-type \e$B$G$"$kI,MW$,$"\e(B
+\e$B$j$^$9!#\e(B
+
+\e$BNc\e(B:@refill
+
+@lisp
+(mm-define-backend chao (generic))
+@end lisp
+@end defmac
+
+
+@defmac mm-define-method name args  &rest  body
+
+@var{name} \e$B$r\e(B (nth 1 (car @var{args})) backend \e$B$N\e(B method \e$B4X\e(B
+\e$B?t$H$7$FDj5A$7$^$9!#\e(B@refill
+
+@var{args} \e$B$O\e(B lambda \e$B$N0z?t%j%9%H$N$h$&$J$b$N$G$9$,!"\e(B(car
+@var{args}) \e$B$O;XDj$5$l$?\e(B parameter \e$B$G$"$kI,MW$,$"$j$^$9!#\e(B(car
+(car @var{args})) \e$B$OJQ?t$NL>A0$G!"\e(B(nth 1 (car @var{args}))
+\e$B$O\e(B backend \e$B$NL>A0\e(B (representation-type) \e$B$G$9!#\e(B@refill
+
+\e$BNc\e(B:@refill
+
+@lisp
+(mm-define-method entity-cooked-p ((entity chao)) nil)
+@end lisp
+@end defmac
+
+
 
 @node Content-Type, Content-Disposition, Entity, Top
 @chapter Content-Type \e$BMs$N>pJs\e(B
@@ -590,12 +782,13 @@ FLIM \e$B$G$O\e(B Content-Transfer-Encoding \e$BMs$r9=J82r@O$9$k4X?t$rDs6!$7$^$9!#$
 
 @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
+* encoder/decoder::             \e$BId9f2=!&I|9f2=\e(B
+* Encoding information::        Other utilities
+* mel-backend::                 How to write encoder/decoder module
+* generic function for mel-backend::  How to add encoding/decoding service
 @end menu
 
-@node Content-Transfer-Encoding parser, Region encoder/decoder, Content-Transfer-Encoding, Content-Transfer-Encoding
+@node Content-Transfer-Encoding parser, 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
@@ -615,100 +808,142 @@ Content-Transfer-Encoding \e$BMs$,B8:_$7$J$$>l9g$O\e(B@var{default-encoding} \e$B$r
 
 
 
-@node Region encoder/decoder, String encoder/decoder, Content-Transfer-Encoding parser, Content-Transfer-Encoding
-@section \e$BNN0h$NId9f2=!&I|9f2=\e(B
+@node encoder/decoder, Encoding information, Content-Transfer-Encoding parser, Content-Transfer-Encoding
+@section \e$BId9f2=!&I|9f2=\e(B
 
 @defun mime-encode-region start end encoding
 
-Encode region @var{start} to @var{end} of current buffer using
-@var{encoding}.
+\e$B8=:_$N\e(B buffer \e$B$N\e(B @var{start} \e$B$+$i\e(B @var{end} \e$B$^$G$N\e(B region \e$B$r\e(B
+@var{encoding} \e$B$r;H$C$FId9f2=$7$^$9!#\e(B
 @end defun
 
 
 @defun mime-decode-region start end encoding
 
-Decode region @var{start} to @var{end} of current buffer using
-@var{encoding}.
+\e$B8=:_$N\e(B buffer \e$B$N\e(B @var{start} \e$B$+$i\e(B @var{end} \e$B$^$G$N\e(B region \e$B$r\e(B
+@var{encoding} \e$B$r;H$C$FI|9f2=$7$^$9!#\e(B
 @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
+@defun mime-decode-string string encoding
 
+@var{string} \e$B$r\e(B @var{encoding} \e$B$H$7$FI|9f$7$?7k2L$rJV$9!#\e(B
+@end defun
 
-@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
+@defun mime-insert-encoded-file filename encoding
 
+@var{ENCODING} format \e$B$GId9f2=$5$l$?\e(B file @var{FILENAME} \e$B$r\e(B
+\e$BA^F~$9$k!#\e(B
+@end defun
 
 
-@node String encoder/decoder, File encoder/decoder, Region encoder/decoder, Content-Transfer-Encoding
-@section \e$BJ8;zNs$NId9f2=!&I|9f2=\e(B
+@defun mime-write-decoded-region start end filename encoding
 
-@defun mime-decode-string string encoding
+@var{encoding} \e$B$GId9f2=$5$l$?8=:_$N\e(B region \e$B$rI|9f2=$7$F\e(B
+@var{filename}\e$B$K=q$-9~$_$^$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
+<var>start<var> \e$B$H\e(B @var{end} \e$B$O\e(B buffer \e$B$N0LCV$G$9!#\e(B
 @end defun
 
 
-@defvar mime-string-decoding-method-alist
 
-Alist of encoding vs. corresponding method to decode string.@refill
+@node Encoding information, mel-backend, encoder/decoder, Content-Transfer-Encoding
+@section Other utilities
 
-Each element looks like @code{(STRING . FUNCTION)}.  STRING is
-content-transfer-encoding.  FUNCTION is string decoder.
-@end defvar
+@defun mime-encoding-list &optional  SERVICE
 
+Content-Transfer-Encoding \e$B$N\e(B list \e$B$rJV$7$^$9!#\e(B@refill
 
+@var{service} \e$B$,;XDj$5$l$F$$$k$H!"$=$l$KBP$9$k\e(B
+Content-Transfer-Encoding \e$B$rJV$7$^$9!#\e(B
+@end defun
 
-@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
+@defun mime-encoding-alist &optional  SERVICE
+
+\e$BJd40$N$?$a$N\e(B Content-Transfer-Encoding \e$B$NI=$rJV$7$^$9!#\e(B@refill
 
-Insert file @var{FILENAME} encoded by @var{ENCODING} format.
+@var{service} \e$B$,;XDj$5$l$F$$$k>l9g$O$=$l$KBP$9$k\e(B
+Content-Transfer-Encoding \e$B$N\e(B list \e$B$rJV$7$^$9!#\e(B
 @end defun
 
 
-@defun mime-write-decoded-region start end filename encoding
 
-Decode and write current region encoded by @var{encoding} into
-@var{filename}.@refill
+@node mel-backend, generic function for mel-backend, Encoding information, Content-Transfer-Encoding
+@section How to write encoder/decoder module
 
-@var{start} and @var{end} are buffer positions.
-@end defun
+@defmac mel-define-method name args  &rest  body
 
+@var{name} \e$B$r\e(B (nth 1 (car (last @var{args}))) backend \e$B$N\e(B
+method \e$B4X?t$H$7$FDj5A$7$^$9!#\e(B
 
-@defvar mime-file-encoding-method-alist
+@var{args} \e$B$O\e(B lambda \e$B$N0z?t\e(B list \e$B$H;w$F$$$^$9$,!"\e(B(car (last
+@var{args})) \e$B$O;XDj$5$l$?\e(B parameter \e$B$G$"$kI,MW$,$"$j$^$9!#\e(B(car
+(car (last @var{args}))) \e$B$OJQ?t$NL>A0$G!"\e(B(nth 1 (car (last
+@var{args}))) \e$B$O\e(B backend \e$B$NL>A0\e(B (encoding) \e$B$G$9!#\e(B@refill
 
-Alist of encoding vs. corresponding method to insert encoded
-file.@refill
+\e$BNc\e(B:@refill
 
-Each element looks like @code{(STRING . FUNCTION)}.  STRING is
-content-transfer-encoding.  FUNCTION is function to insert encoded file.
-@end defvar
+@lisp
+(mel-define-method mime-write-decoded-region (start end filename
+                                                   (nil "base64"))
+  "Decode and write current region encoded by base64 into FILENAME.
+START and END are buffer positions."
+  (interactive
+   (list (region-beginning) (region-end)
+        (read-file-name "Write decoded region to file: ")))
+  (let ((str (buffer-substring start end)))
+    (with-temp-buffer
+      (insert (decode-base64-string str))
+      (write-region-as-binary (point-min) (point-max) filename)
+      )))
+@end lisp
+@end defmac
 
 
-@defvar mime-file-decoding-method-alist
+@defmac mel-define-method-function spec function
 
-Alist of encoding vs. corresponding method to write decoded region to
-file.@refill
+@var{spec} \e$B$N4X?tDj5A$r\e(B @var{function} \e$B$K@_Dj$7$^$9!#\e(B@refill
 
-Each element looks like @code{(STRING . FUNCTION)}.  STRING is
-content-transfer-encoding.  FUNCTION is function to write decoded region
-to file.
-@end defvar
+@var{spec} \e$B$N:G=i$NMWAG$O\e(B service \e$B$G$9!#\e(B@refill
+
+@var{args} \e$B$N;D$j$O\e(B lambda \e$B$N0z?t\e(B list \e$B;w$F$$$^$9$,!"\e(B(car (last
+@var{args})) \e$B$O;XDj$5$l$?\e(B parameter \e$B$G$"$kI,MW$,$"$j$^$9!#\e(B(car
+(car (last @var{args}))) \e$B$OJQ?t$NL>A0$G!"\e(B(nth 1 (car (last
+@var{args}))) \e$B$O\e(B backend \e$B$NL>A0\e(B (encoding) \e$B$G$9!#\e(B@refill
+
+\e$BNc\e(B:@refill
+
+@lisp
+(mel-define-method-function (mime-encode-string string (nil "base64"))
+                           'encode-base64-string)
+@end lisp
+@end defmac
+
+
+
+@node generic function for mel-backend,  , mel-backend, Content-Transfer-Encoding
+@section \e$BId9f2=\e(B/\e$BI|9f2=\e(B service \e$B$rDI2C$9$kJ}K!\e(B
+
+@defmac mel-define-service name &optional  args doc-string
+
+@var{name} \e$B$r\e(B Content-Transfer-Encoding \e$B$N\e(B service \e$B$H$7$FDj5A$7$^\e(B
+\e$B$9!#\e(B@refill
+
+@var{args} \e$B$,;XDj$5$l$F$$$k$H!"\e(B@var{name} \e$B$O\e(B service \e$B$N\e(B
+generic function \e$B$H$7$FDj5A$5$l$^$9!#\e(B@refill
+
+\e$BNc\e(B:@refill
+
+@lisp
+(mel-define-service encoded-text-encode-string (string encoding)
+  "Encode STRING as encoded-text using ENCODING.
+ENCODING must be string.")
+@end lisp
+@end defmac
 
 
 
@@ -743,59 +978,58 @@ FLIM \e$B$O$3$l$i$rId9f2=!&I|9f2=$9$k5!G=$rDs6!$7$^$9!#\e(B
 @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
+@defun eword-decode-header &optional  code-conversion separator
 
-Decode MIME encoded-words in header fields.@refill
+Header \e$BCf$N\e(B encoded-word \e$B$rI|9f$9$k!#\e(B@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
+\e$B$b$7\e(B @var{code-conversion} \e$B$,\e(B @code{nil} \e$B$J$i!"\e(Bencoded-word \e$B$@$1$,I|9f$5\e(B
+\e$B$l$k!#$b$7!"\e(B@var{code-conversion} \e$B$,\e(B MIME charset (@ref{MIME charset}) 
+\e$B$J$i!"Hs\e(B ASCII bit patterns \e$B$O$=$N\e(B MIME charset \e$B$H$7$FI|9f$5$l$k!#$3$l0J\e(B
+\e$B30$N>l9g!"Hs\e(B ASCII bit patterns \e$B$O\e(B@code{default-mime-charset}. \e$B$H$7$FI|\e(B
+\e$B9f$5$l$k!#\e(B(cf. @ref{entity formatting}) @refill
 
-If @var{separator} is not nil, it is used as header separator.
+\e$B$b$7\e(B @var{separator} \e$B$,\e(B @code{nil} \e$B$G$J$1$l$P!"$=$NCM$,\e(Bheader separator 
+\e$B$H$7$FMQ$$$i$l$k!#\e(B
 @end defun
 
 
 @defun eword-encode-header &optional  code-conversion
 
-Encode header fields to network representation, such as MIME
-encoded-word.@refill
+Header \e$B$r\e(B network \e$BI=8=$KId9f2=$9$k!#\e(B@refill
 
-It refer variable @code{eword-field-encoding-method-alist}.
+\e$B3F\e(B field \e$B$O\e(B @code{mime-field-encoding-method-alist} \e$B$G;XDj$5$l$?J}<0$G\e(B
+\e$BId9f2=$5$l$k!#\e(B
 @end defun
 
 
+@defvar mime-field-encoding-method-alist
 
-@node custom, Appendix, encoded-word, Top
-@chapter \e$B0lHL@_Dj\e(B
+Field \e$B$rId9f2=$9$kJ}K!$r;XDj$9$kO"A[\e(B list\e$B!#3F\e(B element \e$B$O\e(B (FIELD
+. METHOD) \e$B$NMM$K$J$C$F$$$k!#\e(B@refill
 
-@deffn{group} mime
+METHOD \e$B$,\e(B @code{mime} \e$B$G$"$l$P!"\e(BFIELD \e$B$O\e(B MIME format \e$B$KId9f2=$5\e(B
+\e$B$l$k\e(B (encoded-word)\e$B!#\e(B
 
-MIME \e$B4XO"5!G=$K4X$9$k\e(B group.@refill
+METHOD \e$B$,\e(B @code{nil} \e$B$G$"$l$P!"\e(BFIELD \e$B$OId9f2=$5$l$J$$!#\e(B
 
-@code{mail} \e$B$H\e(B @code{news} \e$B$KB0$9$k!#\e(B
-@end deffn
-
-
-@defvar default-mime-charset
+METHOD \e$B$,\e(B MIME charset \e$B$G$"$l$P!"\e(BFIELD \e$B$O%M%C%H%o!<%/%3!<%I$KJQ49$7$J\e(B
+\e$B$1$l$P$J$i$J$$$H$-$K\e(B charset \e$B$KId9f2=$5$l$k!#\e(B@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$B$=$&$G$J$1$l$P!"\e(BFIELD \e$B$O%M%C%H%o!<%/%3!<%I$KJQ49$7$J$1$l$P$J$i$J$$$H$-\e(B
+\e$B$K\e(B \e$BJQ?t\e(B @code{default-mime-charset} \e$B$GId9f2=$5$l$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
+@node custom, Appendix, encoded-word, Top
+@chapter \e$B0lHL@_Dj\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
+@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
 
 
 @node Appendix, Concept Index, custom, Top
@@ -816,10 +1050,10 @@ directory.@refill
 @menu
 * 7bit::                        
 * 8bit::                        
-* Base64::                      
 * ASCII::                       
-* Coded character set::         Coded character set\e$B!JId9f2=J8;z=89g!K\e(B, Character code\e$B!JJ8;zId9f!K\e(B
+* Base64::                      
 * binary::                      
+* Coded character set::         Coded character set\e$B!JId9f2=J8;z=89g!K\e(B, Character code\e$B!JJ8;zId9f!K\e(B
 * media-type::                  
 * message::                     
 * MIME::                        
@@ -861,7 +1095,7 @@ byte \e$B0JFb$G$"$k$3$H$r5a$a$F$$$k!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-$N\e(B
 encode\e$B$9$kI,MQ$,$"$k!#\e(B
 
 
-@node 8bit, Base64, 7bit, Glossary
+@node 8bit, ASCII, 7bit, Glossary
 @subsection 8bit
 @cindex binary
 
@@ -900,23 +1134,7 @@ data \e$B$O\e(B @strong{binary} (@ref{binary}) \e$B$H8F$V$3$H$K$9$k!#\e(B@refill
 \e$B$"$k!#\e(B
 
 
-@node Base64, ASCII, 8bit, Glossary
-@subsection Base64
-@cindex pad
-
-RFC 2045 (@ref{RFC 2045}) \e$B$GDj5A$5$l$F$$$k\e(B MIME (@ref{MIME}) \e$B$K$*$1$k\e(B 
-binary data (@ref{binary}) \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B@refill
-
-\e$B!X\e(B64 \e$B?J?t!Y$H$$$&0UL#$G!"\e(B3 byte \e$B$N\e(B data \e$B$r\e(B 0 \e$B$+$i\e(B 63 \e$B$N?t$rI=$9\e(B ASCII
-(@ref{ASCII}) 4 \e$BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"\e(B4 \e$BJ8;z$K$J$i$J$1$l$P\e(B 
-@strong{pad} \e$B$H8F$P$l$k5M$aJ*$r$7$FD9$5$rD4@0$9$k!K\e(B@refill
-
-\e$B$3$N\e(B 65 \e$B<oN`$NJ8;z$O\e(B ASCII \e$B$H\e(B EBCDIC \e$B$N6&DLItJ,$+$iA*$P$l$F$*$j!"\e(B
-Internet \e$B0J30$N\e(B network \e$B$r7PM3$9$k>l9g$G$b0BA4$KE>Aw$G$-$k$h$&$K@_7W$5\e(B
-\e$B$l$F$$$k!#\e(B
-
-
-@node ASCII, Coded character set, Base64, Glossary
+@node ASCII, Base64, 8bit, Glossary
 @subsection ASCII
 @cindex ANSI X3.4:1986
 @cindex ASCII
@@ -934,13 +1152,23 @@ Interchange'', ANSI X3.4:1986.
 
 
 
-@node Coded character set, binary, ASCII, Glossary
-@subsection Coded character set\e$B!JId9f2=J8;z=89g!K\e(B, Character code\e$B!JJ8;zId9f!K\e(B
+@node Base64, binary, ASCII, Glossary
+@subsection Base64
+@cindex pad
 
-\e$BJ8;z$H\e(B byte \e$BNs$H#1BP#1$KBP1~IU$1$k[#Kf$G$J$$5,B'$N=89g!#\e(B
+RFC 2045 (@ref{RFC 2045}) \e$B$GDj5A$5$l$F$$$k\e(B MIME (@ref{MIME}) \e$B$K$*$1$k\e(B 
+binary data (@ref{binary}) \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B@refill
+
+\e$B!X\e(B64 \e$B?J?t!Y$H$$$&0UL#$G!"\e(B3 byte \e$B$N\e(B data \e$B$r\e(B 0 \e$B$+$i\e(B 63 \e$B$N?t$rI=$9\e(B ASCII
+(@ref{ASCII}) 4 \e$BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"\e(B4 \e$BJ8;z$K$J$i$J$1$l$P\e(B 
+@strong{pad} \e$B$H8F$P$l$k5M$aJ*$r$7$FD9$5$rD4@0$9$k!K\e(B@refill
 
+\e$B$3$N\e(B 65 \e$B<oN`$NJ8;z$O\e(B ASCII \e$B$H\e(B EBCDIC \e$B$N6&DLItJ,$+$iA*$P$l$F$*$j!"\e(B
+Internet \e$B0J30$N\e(B network \e$B$r7PM3$9$k>l9g$G$b0BA4$KE>Aw$G$-$k$h$&$K@_7W$5\e(B
+\e$B$l$F$$$k!#\e(B
 
-@node binary, media-type, Coded character set, Glossary
+
+@node binary, Coded character set, Base64, Glossary
 @subsection binary
 @cindex binary data
 @cindex binary
@@ -957,7 +1185,13 @@ Interchange'', ANSI X3.4:1986.
 \e$B$H$,$"$k!#\e(B
 
 
-@node media-type, message, binary, Glossary
+@node Coded character set, media-type, binary, Glossary
+@subsection Coded character set\e$B!JId9f2=J8;z=89g!K\e(B, Character code\e$B!JJ8;zId9f!K\e(B
+
+\e$BJ8;z$H\e(B byte \e$BNs$H#1BP#1$KBP1~IU$1$k[#Kf$G$J$$5,B'$N=89g!#\e(B
+
+
+@node media-type, message, Coded character set, Glossary
 @subsection media-type
 @cindex x-token
 @cindex primary-type/subtype
@@ -974,7 +1208,7 @@ Interchange'', ANSI X3.4:1986.
 MIME (@ref{MIME}) \e$B$K$*$1$k\e(B entity (@ref{entity}) \e$B$N<oN`!#\e(B
 @strong{primary-type} \e$B$H\e(B @strong{subtype} \e$B$+$i$J$k!#\e(BRFC 2046 (@ref{RFC 2046}) \e$B$GDj5A$5$l$F$$$k!#\e(B@refill
 
-type \e$B$OI8=`$G$O\e(B
+primary-type \e$B$OI8=`$G$O\e(B
 
 @itemize @bullet
 @item
@@ -1238,7 +1472,7 @@ Standards Track (obsolete RFC 1521, 1522, 1590).
 
 ASCII (@ref{ASCII}) \e$B$N$_$+$i$J$j\e(B ISO 2022 \e$B$K$h$kId9f3HD%$O5v$5$l$J$$!#\e(B
 
-Internet message \e$B$K$*$1$kI8=`$NId9f2=J8;z=89g\e(B(@ref{Coded character set})
+Internet message \e$B$K$*$1$kI8=`$NId9f2=J8;z=89g\e(B(@ref{Coded character set}) 
 \e$B$G$"$j!"L@<(E*$K\e(B MIME charset \e$B$,<($5$l$J$$>l9g$O86B'$H$7$F\e(B 
 @strong{us-ascii} \e$B$,;H$o$l$k!#\e(B@refill
 
@@ -1252,9 +1486,9 @@ FLIM \e$B$N%P%0$r8+$D$1$?$i!"0J2<$N\e(B address \e$B$K\e(B mail \e$B$rAw$C$F$/$@$5$$!
 
 @itemize @bullet
 @item
\e$BF|K\8l\e(B <bug-tm-ja@@chamonix.jaist.ac.jp>
\e$B1Q8l\e(B <emacs-mime-en@@m17n.org>
 @item
\e$B1Q8l\e(B <bug-tm-en@@chamonix.jaist.ac.jp>
\e$BF|K\8l\e(B <emacs-mime-ja@@m17n.org>
 @end itemize
 
 
@@ -1272,14 +1506,14 @@ FLIM \e$B$N%P%0$r8+$D$1$?$i!"0J2<$N\e(B address \e$B$K\e(B mail \e$B$rAw$C$F$/$@$5$$!
 \e$B$r2?DL$b=q$/1)L\$K$J$j$^$9!#$@$+$i!"I,$:\e(B bug \e$BJs9p$O>e5-$N\e(B address \e$B$KAw$C\e(B
 \e$B$F$/$@$5$$!#\e(B
 
-tm ML \e$B$G$O\e(B FLIM \e$B$N%P%0>pJs$N8r49$d:G?7HG$NG[I[!"\e(BFLIM \e$B$N2~NI$K4X$9$k5D\e(B
-\e$BO@$r9T$J$C$F$$$^$9!#\e(Btm ML \e$B$K;22C$7$?$$J}$O\e(B
+EMACS-MIME ML \e$B$G$O\e(B FLIM \e$B$N%P%0>pJs$N8r49$d:G?7HG$NG[I[!"\e(BFLIM \e$B$N2~NI$K\e(B
+\e$B4X$9$k5DO@$r9T$J$C$F$$$^$9!#\e(BEMACS-MIME ML \e$B$K;22C$7$?$$J}$O\e(B
 
 @itemize @bullet
 @item
\e$BF|K\8l\e(B <tm-ja-help@@chamonix.jaist.ac.jp>
\e$B1Q8l\e(B <emacs-mime-en-ctl@@m17n.org>
 @item
\e$B1Q8l\e(B <tm-en-help@@chamonix.jaist.ac.jp>
\e$BF|K\8l\e(B <emacs-mime-ja-ctl@@m17n.org>
 @end itemize
 
 @noindent
@@ -1295,15 +1529,14 @@ 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
 @example
 (0) cvs login
 
-    % cvs -d :pserver:anonymous@@chamonix.jaist.ac.jp:/hare/cvs/root \
-       login
+    % cvs -d :pserver:anonymous@@cvs.m17n.org:/cvs/root login
 
     CVS password: [CR] # NULL string
 
 (1) checkout
 
-    % cvs -d :pserver:anonymous@@chamonix.jaist.ac.jp:/hare/cvs/root \
-       checkout [-r TAG] gnus
+    % cvs -d :pserver:anonymous@@cvs.m17n.org:/cvs/root checkout
+       checkout [-r TAG] flim
 @end example
 
 
@@ -1311,18 +1544,18 @@ CVS \e$B$rMQ$$$?3+H/$K;22C$7$?$$J}$O\e(B
 
 @itemize @bullet
 @item
- <cvs@@chamonix.jaist.ac.jp>
+ <cvs@@cvs.m17n.org>
 @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!"%"%+%&%s%HL>$H\e(B ssh \e$B$N8x3+80$rAw$C$F$/$@$5$$!#\e(Bssh \e$B7PM3$G$O!"\e(B
+cvsroot \e$B$O\e(B :ext:cvs@@cvs.m17n.org:/cvs/root \e$B$H$J$j$^$9!#\e(B
 
 
 @node History,  , CVS, Appendix
 @section \e$BNr;K\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
+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
 
@@ -1366,7 +1599,7 @@ 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<BA
 
 \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
+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