X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mime-ja.sgml;h=e68a09eeceb1dc41f127ac6acf23f260d7aa3729;hb=f766c2ec0f3945c50b14e1e3661c139af8b9ced8;hp=5e64b3335f0e127493a5c9da3317ba4a77be309b;hpb=61ea091087a55c7c12a7d09dae44baa3a4e4d3ed;p=elisp%2Fflim.git diff --git a/mime-ja.sgml b/mime-ja.sgml index 5e64b33..e68a09e 100644 --- a/mime-ja.sgml +++ b/mime-ja.sgml @@ -1,8 +1,8 @@ -FLIM 1.7 MIME $B5!G=@bL@=q(B +<title>FLIM 1.14 MIME $B5!G=@bL@=q(B <author>$B<i2,(B $BCNI'(B <mail>morioka@jaist.ac.jp</mail> -<date>1998/06/23 +<date>1999-01-27 <toc> </head> @@ -11,11 +11,11 @@ <abstract> <p> -This file documents MIME features of FLIM, a Internet message -parsing/encoding library for GNU Emacs. +This file documents MIME features of FLIM, a fundamental library to +process Internet Messages for GNU Emacsen. <p> -GNU Emacs $BMQ$N(B Internet Message $B$N2r@O$dId9f2=$K4X$9$k(B library $B$G$"$k(B -FLIM $B$N(B MIME $B5!G=$K4X$7$F@bL@$7$^$9!#(B +GNU Emacsen $BMQ$N(B Internet Message $B=hM}$N$?$a$N4pAC(B library $B$G$"$k(B FLIM +$B$N(B MIME $B5!G=$K4X$7$F@bL@$7$^$9!#(B </abstract> @@ -47,15 +47,58 @@ field $B$HFbMF$r;X$9!W$H$J$C$F$$$^$9!#$3$3$G$O!"(BMIME $B$GDj5A$5$l$?(B head field $B0J30$NA4$F$N(B header $B$H(B body $B$r;X$98l$H$7$F(B <concept>entity</concept>$B$rMQ$$$k$3$H$K$7$^$9!#(B <p> -RFC 2045 $B$NDj5A$O!"(BMIME message $B$,(B entity $B$rC10L$H$9$kLZ9=B$$G$"$k$3$H$r(B -$B<($7$F$$$^$9!#(Bmessage $B$O2<?^$G<($9$h$&$JLZ$H$J$j!"(Bentity $B$O$3$NLZ$K$*$1(B -$B$k@a$H$J$j$^$9!#$D$^$j!"(BMIME $B$O(B message $B$rLZ9=B$$K3HD%$7$?Lu$G$9!#(B +RFC 2045 $B$NDj5A$O!"(BMIME message $B$,(B entity $B$r@a$H$9$kLZ9=B$$G$"$k$3$H$r(B +$B<($7$F$$$^$9!#$D$^$j!"(BMIME $B$O(B message $B$rLZ9=B$$K3HD%$7$?Lu$G$9!#(B <p> FLIM $B$O(B entity $B$N>pJs$rI=8=$9$k$?$a$K(B<concept>mime-entity</concept> $B9=(B $BB$BN$rMQ$$$^$9!#0J2<$G$OC1$K(B mime-entity $B$H8F$V$3$H$K$7$^$9!#(B + + +<h2> Entity $B$N@8@.(B +<node> Entity creation +<p> +<defun name="mime-open-entity"> + <opts> type location +<p> +Entity $B$r3+$$$F!"$=$l$rJV$7$^$9!#(B +<p> +<var>type</var> $B$O(B representation-type $B$G$9!#(B <cf node="mm-backend"> +<p> +<var>location</var> $B$O(B entity $B$N0LCV$G$9!#;XDjJ}K!$O(B +representation-type $B$K0M$C$FJQ$o$j$^$9!#(B +</defun> + +<defun name="mime-parse-buffer"> + <opts> buffer type +<p> +<var>buffer</var> $B$r(B message $B$H$7$F9=J82r@O$7!"$=$N7k2L$N(B mime-entity +$B$r(B <var>buffer</var> $B$N(B<code>mime-message-structure</code> $B$K3JG<$9$k!#(B +<p> +<var>buffer</var> $B$,>JN,$5$l$?>l9g!"8=:_$N(B buffer $B$r9=J82r@O$9$k!#(B +<p> +<var>type</var> $B$,;XDj$5$l$?>l9g!"$=$NCM$r@8@.$5$l$k(B mime-entity $B$NI=(B +$B>]7?$H$7$FMQ$$$k!#>JN,$5$l$?>l9g$O(B <var>buffer</var> $B$H$J$k!#(B<cf +node="mm-backend"> +</defun> + + +<h2> Entity $B3,AX(B +<node> Entity hierarchy +<p> +MIME message $B$O(B entity $B$rC10L$H$9$kLZ9=B$$K$J$C$F$$$^$9!#(B +<p> +$B$3$NLZ$K$*$$$F:,$H$J$k@a$O(B message $BA4BN$rI=$9(B entity $B$G$9!#$3$3$G$O!"(B +$B$3$l$r(B <concept>root-entity</concept> $B$b$7$/$O(B +<concept>message</concept> $B$H8F$S$^$9!#(B +<p> +root-entity $B0J30$N(B entity $B$O?F$r;}$A$^$9!#$^$?!"(Bentity $B$O;R6!$r;}$D$+(B +$B$bCN$l$^$;$s!#$3$N?F;R4X78$r9M$($k$3$H$G(B entity $B$NAjBP4X78$r07$&$3$H$,(B +$B$G$-$^$9!#(B +<p> +$B0lJ}!"(Bentity $B$N(B message $B$K$*$1$k0LCV$r9M$($k$3$H$b$G$-$^$9!#(B <p> -$BA0=R$N$h$&$K!"(Bmessage $BCf$N3F(B entity $B$OLZ$N@a$KEv$?$j$^$9$,!"$3$NLZ$K$O(B -$B?<$5$HF1$8?<$5$NCf$N=gHV$K=>$C$FHV9f$,IU$1$k$3$H$,$G$-$^$9!#B($A!"(B +entity $B$O$3$NLZ$K$*$1$k@a$H$J$j$^$9$,!"$3$NLZ$K$O?<$5$HF1$8?<$5$NCf$N(B +$B=gHV$K=>$C$FHV9f$,IU$1$k$3$H$,$G$-$^$9!#B($A!"(B <verb> $B(#(!(!(!($(B @@ -83,112 +126,10 @@ node-id $B$O$A$g$&$I(B entity-number $B$r5U$K$7$?%j%9%H$G!"(Bentity-number $BA0=R$N$h$&$K!"(BMIME message $B$O(B entity $B$rC10L$H$7$?LZ9=B$$K$J$C$F$$$k$N$G!"(B $B$3$N:,$G$"$k(B message $BA4BN$b(B mime-entity $B$GI=8=$9$k$3$H$,$G$-!"(Bbuffer local $BJQ?t(B <code>mime-message-structure</code> $B$K3JG<$9$k$3$H$K$7$^$9!#(B -$B$=$7$F!"(Bentity-number $B$d(B node-id $B$rMQ$$$k$3$H$G(B -<code>mime-message-structure</code> $B$K$*$1$k(B entity $B$NAjBPE*$J0LCV4X78$r(B -$B07$&$3$H$,$G$-$^$9!#(B - - -<!-- <h2> mime-entity $B9=B$BN(B --> -<!-- <node> mime-entity --> -<!-- <p> --> -<!-- <define type="Structure" name="mime-entity"> --> -<!-- <p> --> -<!-- entity $B$K4X$9$k>pJs$r<}$a$k9=B$BN!#(B --> -<!-- <p> --> -<!-- $B$3$N9=B$BN$r;2>H$9$k$K$O(B <code>mime-entity-$BMWAGL>(B</code> $B$H$$$&L>A0$N;2(B --> -<!-- $B>H4X?t$rMQ$$$k!#(B --> -<!-- <p> --> -<!-- $B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'(B --> - -<!-- <vl> --> -<!-- <dt>buffer<dd>entity $B$,B8:_$9$k(B buffer (buffer) --> -<!-- </dd> --> -<!-- <dt>header-start<dd>entity $B$NB8:_$9$k(B buffer $B$K$*$1$k(B header $B$N@hF,0LCV(B --> -<!-- (point) --> -<!-- </dd> --> -<!-- <dt>header-end<dd>entity $B$NB8:_$9$k(B buffer $B$K$*$1$k(B header $B$NKvHx0LCV(B --> -<!-- (point) --> -<!-- </dd> --> -<!-- <dt>body-start<dd>entity $B$NB8:_$9$k(B buffer $B$K$*$1$k(B body $B$N@hF,0LCV(B --> -<!-- (point) --> -<!-- </dd> --> -<!-- <dt>body-end<dd>entity $B$NB8:_$9$k(B buffer $B$K$*$1$k(B body $B$NKvHx0LCV(B --> -<!-- (point) --> -<!-- </dd> --> -<!-- <dt>node-id<dd>entity $B$N(B node-id ($B@0?t$N(B list) --> -<!-- </dd> --> -<!-- <dt>content-type<dd><dref>Content-Type</dref> $BMs$N>pJs(B --> -<!-- (mime-content-type) --> -<!-- </dd> --> -<!-- <dt>content-disposition<dd><dref>Content-Disposition</dref> $BMs$N>pJs(B --> -<!-- (mime-content-disposition) --> -<!-- </dd> --> -<!-- <dt>encoding<dd>entity $B$N(B <dref>Content-Transfer-Encoding</dref> ($BJ8;zNs(B) --> -<!-- </dd> --> -<!-- <dt>children<dd>entity $B$K4^$^$l$k(B entity $B$N(B list (mime-entity $B$N(B --> -<!-- list) --> -<!-- </dd> --> -<!-- </vl> --> - -<!-- <p> --> -<!-- $B$^$?!"2a5n$H$N8_49@-$N$?$a!"0J2<$NMWAGL>$N;2>H4X?t$bMxMQ2DG=$G$"$k!#(B --> - -<!-- <vl> --> -<!-- <dt>type/subtype<dd>entity $B$N(B type/subtype ($BJ8;zNs(B) --> -<!-- </dd> --> -<!-- <dt>media-type<dd>entity $B$N(B media-primary-type (symbol) --> -<!-- </dd> --> -<!-- <dt>media-subtype<dd>entity $B$N(B media-subtype (symbol) --> -<!-- </dd> --> -<!-- <dt>parameters<dd>entity $B$N(B Content-Type $BMs$N(B parameter ($BO"A[(B list) --> -<!-- </dd> --> -<!-- </vl> --> -<!-- </define> --> - -<!-- <defun name="make-mime-entity"> --> -<!-- <args> buffer header-start header-end body-start body-end --> -<!-- <opts> node-id content-type content-disposition encoding --> -<!-- children --> -<!-- <p> --> -<!-- entity $B$N@8@.;R!#(B --> -<!-- </defun> --> - -<!-- <defun name="mime-entity-point-min"> --> -<!-- <args> entity --> -<!-- <p> --> -<!-- entity $B$NB8:_$9$k(B buffer $B$K$*$1$k(B entity $B$N@hF,0LCV$rJV$9!#(B --> -<!-- </defun> --> - -<!-- <defun name="mime-entity-point-max"> --> -<!-- <args> entity --> -<!-- <p> --> -<!-- entity $B$NB8:_$9$k(B buffer $B$K$*$1$k(B entity $B$NKvHx0LCV$rJV$9!#(B --> -<!-- </defun> --> - - -<h2> Message $B$N2r@O4o(B -<node> Message parser -<p> -<defun name="mime-parse-message"> - <opts> default-ctl default-encoding node-id -<p> -$B8=:_$N(B buffer $B$r(B message $B$H$7$F9=J82r@O$7!"$=$N7k2L$N(B mime-entity $B$rJV(B -$B$9!#(B -</defun> - -<defun name="mime-parse-buffer"> - <opts> buffer <p> -<var>buffer</var> $B$r(B message $B$H$7$F9=J82r@O$7!"$=$N7k2L$N(B mime-entity -$B$r(B <var>buffer</var> $B$N(B<code>mime-message-structure</code> $B$K3JG<$9$k!#(B -<p> -<var>buffer</var> $B$,>JN,$5$l$?>l9g!"8=:_$N(B buffer $B$r9=J82r@O$9$k!#(B -</defun> - +<code>mime-message-structure</code> $B$r5/E@$K(B entity-number $B$d(B node-id +$B$G<($5$l$k(B entity $B$r<h$j=P$9$3$H$,$G$-$^$9!#(B -<h2> Entity $B3,AX(B -<node> Entity hierarchy -<p> <defvar name="mime-message-structure"> <p> $B8=:_$N(B buffer $B$K$*$1$k(B message $BA4BN$N(B mime-entity $B9=B$BN$r3JG<$9$k(B @@ -216,80 +157,90 @@ buffer local $BJQ?t!#(B $BHs(B-<code>nil</code> $B$rJV$9!#(B </defun> +<defun name="mime-entity-node-id"> + <args> entity +<p> +<var>entity</var> $B$N(B node-id $B$rJV$9!#(B +</defun> + <defun name="mime-entity-number"> <args> entity <p> <var>entity</var> $B$N(B entity-number $B$rJV$9!#(B </defun> + +<h2> Entity $B$N8!:w(B +<node> Entity Search +<p> <defun name="mime-find-entity-from-number"> <args> entity-number <opts> message <p> -Return entity from <var>entity-number</var> in <var>message</var>. +<var>message</var> $B$+$i!"(B<var>enity-number</var> $B$N(B entity $B$rJV$7$^$9!#(B <p> -If <var>message</var> is not specified, -<code>mime-message-structure</code> is used. +<var>message</var> $B$,;XDj$5$l$F$$$J$$>l9g$O!"(B +<code>mime-message-structrue</code> $B$,;H$o$l$^$9!#(B </defun> <defun name="mime-find-entity-from-node-id"> <args> entity-node-id <opts> message <p> -Return entity from <var>entity-node-id</var> in <var>message</var>. +<var>message</var> $B$+$i!"(B<var>entity-node-id</var> $B$N(B entity $B$rJV$7$^(B +$B$9!#(B <p> -If <var>message</var> is not specified, -<code>mime-message-structure</code> is used. +<var>message</var> $B$,;XDj$5$l$F$$$J$$>l9g$O!"(B +<code>mime-message-structure</code> $B$,;H$o$l$^$9!#(B </defun> - -<h2> Entity $B$N(B buffer $B$K$h$kI=8=(B -<node> Entity buffer +<defun name="mime-find-entity-from-content-id"> + <args> cid <opts> message <p> -<defun name="mime-entity-buffer"> - <args> entity +<var>message</var> $B$+$i!"(B<var>cid</var> $B$N(B entity $B$rJV$7$^$9!#(B <p> -<var>entity</var> $B$,B8:_$9$k(B buffer $B$rJV$9!#(B +<var>message</var> $B$,;XDj$5$l$F$$$J$$>l9g$O!"(B +<code>mime-message-structure</code> $B$,;H$o$l$^$9!#(B </defun> -<defun name="mime-entity-point-min"> - <args> entity -<p> -<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(B<var>entity</var> $B$,@j$a$k(B -$BNN0h$N@hF,0LCV$rJV$9!#(B -</defun> -<defun name="mime-entity-point-max"> +<h2> Entity $B$NB0@-(B +<node> Entity Attributes +<p> +<defun name="mime-entity-content-type"> <args> entity <p> -<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(B<var>entity</var> $B$,@j$a$k(B -$BNN0h$NKvHx0LCV$rJV$9!#(B +<var>entity</var> $B$N(B content-type $B$rJV$9!#(B<cf +node="mime-content-type"> </defun> -<defun name="mime-entity-header-start"> +<defun name="mime-entity-content-disposition"> <args> entity <p> -<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bheader $B$,@j$a$kNN0h$N@hF,(B -$B0LCV$rJV$9!#(B +<var>entity</var> $B$N(B content-disposition $B$rJV$9!#(B<cf +node="mime-content-disposition"> </defun> -<defun name="mime-entity-header-end"> +<defun name="mime-entity-filename"> <args> entity <p> -<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bheader $B$,@j$a$kNN0h$NKvHx(B -$B0LCV$rJV$9!#(B +<var>entity</var> $B$N(B file $BL>$rJV$9!#(B </defun> -<defun name="mime-entity-body-start"> - <args> entity +<defun name="mime-entity-encoding"> + <args> entity <opts> default-encoding <p> -<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bbody $B$,@j$a$kNN0h$N@hF,0L(B -$BCV$rJV$9!#(B +<var>entity</var> $B$N(B content-transfer-encoding $B$rJV$9!#(B<cf +node="Content-Transfer-Encoding"> +<p> +$B$b$7!"(B<var>entity</var> $B$K(B Content-Transfer-Encoding $BMs$,B8:_$7$J$$>l(B +$B9g$O!"(B<var>default-encoding</var> $B$rJV$9!#$3$l$,;XDj$5$l$J$$>l9g$O!"(B +<code>"7bit"</code> $B$rMQ$$$k!#(B </defun> -<defun name="mime-entity-body-end"> +<defun name="mime-entity-cooked-p"> <args> entity <p> -<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bbody $B$,@j$a$kNN0h$NKvHx0L(B -$BCV$rJV$9!#(B +<var>entity</var> $B$NFbMF$,4{$K%3!<%IJQ49$5$l$F$$$k>l9g$O(B nil $B$GL5$$CM(B +$B$rJV$9!#(B </defun> @@ -306,7 +257,7 @@ If <var>message</var> is not specified, <var>entity</var> $B$,>JN,$5$l$?>l9g$O!"(B <code>mime-message-structure</code> $B$NCM$rMQ$$$k!#(B <p> -<var>field-name</var> $BMs$,B8:_$7$J$$>l9g$O(B nil $B$rJV$9!#(B +<var>field-name</var> $BMs$,B8:_$7$J$$>l9g$O(B <code>nil</code> $B$rJV$9!#(B </defun> <defun name="mime-read-field"> @@ -326,9 +277,12 @@ If <var>message</var> is not specified, <var>field-name</var> $BMs$,B8:_$7$J$$>l9g$O(B nil $B$rJV$9!#(B </defun> -<defun name="mime-insert-decoded-header"> + +<h2> Entity $B$NJ8;zI=8=(B +<node> entity formatting +<p> +<defun name="mime-insert-header"> <args> entity <opts> invisible-fields visible-fields - code-conversion <p> $B8=:_0LCV$K(B <var>entity</var> $B$NI|9f$7$?(B header $B$rA^F~$9$k!#(B <p> @@ -337,51 +291,203 @@ list $B$G!"$=$l$>$l!"I=<($7$?$/$J$$(B field $BL>$HI=<($7$?$$MsL>$rI=8=$7$?$b$ $B$G$"$k!#(B <p> <var>invisible-fields</var> $B$NMWAG$N$I$l$+$K(B match $B$7!"$+$D!"(B -<var>visible-fields</var> $B$NMWAG$N$I$l$K$b(B match $B$7$J$$Ms$OI=<($5$l$J$$!#(B +<var>visible-fields</var> $B$NMWAG$N$I$l$K$b(B match $B$7$J$$Ms$OI=<($5$l$J(B +$B$$!#(B +<p> +<dref>encoded-word</dref> $B$OI|9f$5$l$k!#!X@8$NHs(B us-ascii $BJ8;z!Y$O(B +<code>default-mime-charset</code> $B$H$7$F2r<a$5$l$k!#(B </defun> +<defun name="mime-insert-text-content"> + <args> entity +<p> +point $B$NA0$K(B <var>entity</var> $B$r(B text entity $B$H$7$FA^F~$7$^$9!#(B +<p> +<var>entity</var> $B$NFbMF$O(B <dref>MIME charset</dref> $B$H$7$FI|9f2=$5$l(B +$B$^$9!#(B<var>entity</var> $B$N(B Content-Type field $B$K(B charset paramter $B$,L5(B +$B$$$H!"(B<code>default-mime-charset</code> $B$,=i4|CM$H$7$F;H$o$l$^$9!#(B +</defun> -<h2> Entity $B$NB0@-(B -<node> Entity Attributes +<defvar name="default-mime-charset"> <p> -<defun name="mime-entity-content-type"> +$BE,@Z$J(B <dref>MIME charset</dref> $B$,8+$D$+$i$J$+$C$?>l9g$KMQ$$$i$l$k(B +MIME charset. +<p> +$BK\Mh$O(B APEL $B$NJQ?t$G$"$k!#(B +</defvar> + + +<h2> Entity $B$NFbMF(B +<node> Entity-content +<p> +<defun name="mime-entity-content"> <args> entity <p> -<var>entity</var> $B$N(B content-type $B$rJV$9!#(B<cf -node="mime-content-type"> +<var>entity</var> $B$NFbMF$N(B byte $BNs$rJV$9!#(B </defun> -<defun name="mime-entity-content-disposition"> +<defun name="mime-insert-entity-content"> <args> entity <p> -<var>entity</var> $B$N(B content-disposition $B$rJV$9!#(B<cf -node="mime-content-disposition"> +point $B$N0LCV$K(B <var>entity</var> $B$NFbMF$rA^F~$7$^$9!#(B </defun> -<defun name="mime-entity-filename"> +<defun name="mime-write-entity-content"> + <args> entity filename +<p> +<var>entity</var> $B$NFbMF$r(B <var>filename</var> $B$K=q$-9~$_$^$9!#(B +</defun> + + +<h2> Entity $B$N%M%C%H%o!<%/I=8=(B +<node> Entity-network-representation +<p> +<defun name="mime-insert-entity"> <args> entity <p> -Entity $B$N(B file $BL>$rJV$9!#(B +<var>entity</var> $B$N(B header $B$H(B body $B$r(B point $B$N$H$3$m$KA^F~$7$^$9!#(B </defun> -<defun name="mime-entity-encoding"> +<defun name="mime-write-entity"> + <args> entity filename +<p> +<var>entity</var> $B$NI=8=$r(B <var>filename</var> $B$K=q$-9~$_$^$9!#(B +</defun> + +<defun name="mime-write-entity-body"> + <args> entity filename +<p> +<var>entity</var> $B$N(B body $B$r(B <var>filename</var> $B$K=q$-9~$_$^$9!#(B +</defun> + + +<h2> Entity $B$N(B buffer $B$K$h$kI=8=(B +<node> Entity buffer +<p> +<defun name="mime-entity-buffer"> <args> entity <p> -<var>entity</var> $B$N(B content-transfer-encoding $B$rJV$9!#(B<cf -node="Content-Transfer-Encoding"> +<var>entity</var> $B$,B8:_$9$k(B buffer $B$rJV$9!#(B </defun> +<defun name="mime-entity-point-min"> + <args> entity +<p> +<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(B<var>entity</var> $B$,@j$a$k(B +$BNN0h$N@hF,0LCV$rJV$9!#(B +</defun> -<h2> Entity $B$NFbMF(B -<node> Entity-content +<defun name="mime-entity-point-max"> + <args> entity <p> -<defun name="mime-entity-content"> +<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(B<var>entity</var> $B$,@j$a$k(B +$BNN0h$NKvHx0LCV$rJV$9!#(B +</defun> + +<defun name="mime-entity-header-start"> <args> entity <p> -<var>entity</var> $B$NFbMF$N(B byte $BNs$rJV$9!#(B +<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bheader $B$,@j$a$kNN0h$N@hF,(B +$B0LCV$rJV$9!#(B +</defun> + +<defun name="mime-entity-header-end"> + <args> entity +<p> +<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bheader $B$,@j$a$kNN0h$NKvHx(B +$B0LCV$rJV$9!#(B +</defun> + +<defun name="mime-entity-body-start"> + <args> entity +<p> +<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bbody $B$,@j$a$kNN0h$N@hF,0L(B +$BCV$rJV$9!#(B +</defun> + +<defun name="mime-entity-body-end"> + <args> entity +<p> +<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bbody $B$,@j$a$kNN0h$NKvHx0L(B +$BCV$rJV$9!#(B </defun> +<h2> Entity $B$NI=8=$H<B8=(B +<node> mm-backend +<p> +Entity $B$OCj>]2=$5$l$?%G!<%?I=8=$G!"<B:]$N%G!<%?I=8=$H$7$F$OMQES$K1~$8$F(B +$B$5$^$6$^$J$b$N$,MxMQ$G$-$k$h$&$K@_7W$5$l$F$$$^$9!#(B +<p> +$B$3$3$G!"(Bentity $B$,$I$&$$$&<oN`$NI=8=$r9T$C$F$$$k$+$r<($9$N$,(B +<concept>representation-type</concept> $B$G!"(Bentity $B$r@8@.$9$k;~$K$O$3$l$r(B +$B;XDj$7$^$9!#(B<cf node="Entity Creation"> +<p> +$BA0@a$^$G$K=R$Y$FMh$?(B entity $B$KBP$9$k=hM}$O!"(Bentity $B$KBP$7$F$=$N=hM}$r0M(B +$BMj$9$k$3$H$K$h$C$F<B8=$5$l$F$$$^$9!#(BEntity $B$O<+J,$N(B +representation-type $B$rCN$C$F$*$j!"$=$N(B representation-type $B$K1~$8$F<B:](B +$B$N=hM}$r9T$&4X?t$r8F$S=P$7$^$9!#$3$N$h$&$J4X?t$r(B <concept>entity $B=hM}(B +method</concept> $B$H8F$S$^$9!#$^$?!"(Brepresentation-type $BKh$K$3$N$h$&$J4X(B +$B?t$r$^$H$a$?$b$N$r(B <concept>mm-backend</concept> $B$H8F$S$^$9!#(B +<p> +mm-backend $B$O(B representation-type $B$NL>A0$N@hF,$K(B <code>mm</code> $B$H$$$&(B +$B@\F,<-$rIU$1$?4X?tL>$+$i$J$k(B module $B$G!"$=$N(B module $BL>$OF1MM$K(B +representation-type $B$NL>A0$N@hF,$K(B <code>mm</code> $B$rIU$1$?$b$N$K$J$C$F(B +$B$$$^$9!#$3$N(B module $B$O(B representation-type $B$N(B entity $B$,:G=i$K@8@.$5$l$k(B +$B;~$K<+F0E*$K(B require $B$5$l$^$9!#(B + + +<h3> Entity $B$X$NJX$j(B +<node> Request for entity +<p> +<defun name="mime-entity-send"> + <args> entity message <rest> args +<p> +<var>entity</var> $B$K(B <var>message</var> $B$rAw$k!#(B +<p> +<var>args</var> $B$O(B <var>message</var> $B$N0z?t$G$"$k!#(B +</defun> + + +<h3> mm-backend $B$N:n$jJ}(B +<node> mm-backend module +<p> +<defmacro name="mm-define-backend"> +<args> type +<opts> parents +<p> +<var>type</var> $B$r(B mm-backend $B$H$7$FDj5A$7$^$9!#(B +<p> +<var>PARENTS</var> $B$,;XDj$5$l$F$$$k>l9g$O!"(B<var>type</var> $B$O(B prents +$B$r7Q>5$7$^$9!#$=$l$>$l$N(B parent $B$O(B representation-type $B$G$"$kI,MW$,$"(B +$B$j$^$9!#(B +<p> +$BNc(B: +<p> +<lisp> +(mm-define-backend chao (generic)) +</lisp> +</defmacro> + +<defmacro name="mm-define-method"> +<args> name args <rest> body +<p> +<var>name</var> $B$r(B (nth 1 (car <var>args</var>)) backend $B$N(B method $B4X(B +$B?t$H$7$FDj5A$7$^$9!#(B +<p> +<var>args</var> $B$O(B lambda $B$N0z?t%j%9%H$N$h$&$J$b$N$G$9$,!"(B(car +<var>args</var>) $B$O;XDj$5$l$?(B parameter $B$G$"$kI,MW$,$"$j$^$9!#(B(car +(car <var>args</var>)) $B$OJQ?t$NL>A0$G!"(B(nth 1 (car <var>args</var>)) +$B$O(B backend $B$NL>A0(B (representation-type) $B$G$9!#(B +<p> +$BNc(B: +<p> +<lisp> +(mm-define-method entity-cooked-p ((entity chao)) nil) +</lisp> +</defmacro> + + <h1> Content-Type $BMs$N>pJs(B <node> Content-Type <p> @@ -613,99 +719,144 @@ Content-Transfer-Encoding $BMs$,B8:_$7$J$$>l9g$O(B </defun> -<h2> $BNN0h$NId9f2=!&I|9f2=(B -<node> Region encoder/decoder +<h2> $BId9f2=!&I|9f2=(B +<node> encoder/decoder <p> <defun name="mime-encode-region"> <args> start end encoding <p> -Encode region <var>start</var> to <var>end</var> of current buffer -using <var>encoding</var>. +$B8=:_$N(B buffer $B$N(B <var>start</var> $B$+$i(B <var>end</var> $B$^$G$N(B region $B$r(B +<var>encoding</var> $B$r;H$C$FId9f2=$7$^$9!#(B </defun> <defun name="mime-decode-region"> <args> start end encoding <p> -Decode region <var>start</var> to <var>end</var> of current buffer -using <var>encoding</var>. +$B8=:_$N(B buffer $B$N(B <var>start</var> $B$+$i(B <var>end</var> $B$^$G$N(B region $B$r(B +<var>encoding</var> $B$r;H$C$FI|9f2=$7$^$9!#(B </defun> -<defvar name="mime-encoding-method-alist"> + +<defun name="mime-decode-string"> + <args> string encoding <p> -Alist of encoding vs. corresponding method to encode region. +<var>string</var> $B$r(B <var>encoding</var> $B$H$7$FI|9f$7$?7k2L$rJV$9!#(B +</defun> + + +<defun name="mime-insert-encoded-file"> + <args> filename encoding <p> -Each element looks like <code>(STRING . FUNCTION)</code> or -<code>(STRING . nil)</code>. <var>string</var> is -content-transfer-encoding. <code>function</code> is region encoder -and <code>nil</code> means not to encode. -</defvar> +<var>ENCODING</var> format $B$GId9f2=$5$l$?(B file <var>FILENAME</var> $B$r(B +$BA^F~$9$k!#(B +</defun> -<defvar name="mime-decoding-method-alist"> +<defun name="mime-write-decoded-region"> + <args> start end filename encoding <p> -Alist of encoding vs. corresponding method to decode region. +<var>encoding</var> $B$GId9f2=$5$l$?8=:_$N(B region $B$rI|9f2=$7$F(B +<var>filename</var>$B$K=q$-9~$_$^$9!#(B <p> -Each element looks like <code>(STRING . FUNCTION)</code> or -<code>(STRING . nil)</code>. <var>string</var> is -content-transfer-encoding. <code>function</code> is region decoder -and <code>nil</code> means not to decode. -</defvar> +<var>start<var> $B$H(B <var>end</var> $B$O(B buffer $B$N0LCV$G$9!#(B +</defun> -<h2> $BJ8;zNs$NId9f2=!&I|9f2=(B -<node> String encoder/decoder +<h2> $BB>$N(B utility +<node> Encoding information <p> -<defun name="mime-decode-string"> - <args> string encoding +<defun name="mime-encoding-list"> + <opts> SERVICE <p> -<var>string</var> $B$r(B <var>encoding</var> $B$H$7$FI|9f$7$?7k2L$rJV$7$^$9!#(B +Content-Transfer-Encoding $B$N(B list $B$rJV$7$^$9!#(B +<p> +<var>service</var> $B$,;XDj$5$l$F$$$k$H!"$=$l$KBP$9$k(B +Content-Transfer-Encoding $B$rJV$7$^$9!#(B </defun> -<defvar name="mime-string-decoding-method-alist"> +<defun name="mime-encoding-alist"> + <opts> SERVICE <p> -Alist of encoding vs. corresponding method to decode string. +$BJd40$N$?$a$N(B Content-Transfer-Encoding $B$NI=$rJV$7$^$9!#(B <p> -Each element looks like <code>(STRING . FUNCTION)</code>. -STRING is content-transfer-encoding. -FUNCTION is string decoder. -</defvar> +<var>service</var> $B$,;XDj$5$l$F$$$k>l9g$O$=$l$KBP$9$k(B +Content-Transfer-Encoding $B$N(B list $B$rJV$7$^$9!#(B +</defun> -<h2> File $B$NId9f2=!&I|9f2=(B -<node> File encoder/decoder +<h2> $BId9f2=(B/$BI|9f2=(B module $B$N=q$-J}(B +<node> mel-backend <p> -<defun name="mime-insert-encoded-file"> - <args> filename encoding +<defmacro name="mel-define-method"> +<args> name args <rest> body <p> -Insert file <var>FILENAME</var> encoded by <var>ENCODING</var> format. -</defun> - -<defun name="mime-write-decoded-region"> - <args> start end filename encoding +<var>name</var> $B$r(B (nth 1 (car (last <var>args</var>))) backend $B$N(B +method $B4X?t$H$7$FDj5A$7$^$9!#(B <p> -Decode and write current region encoded by <var>encoding</var> into -<var>filename</var>. +<var>args</var> $B$O(B lambda $B$N0z?t(B list $B$H;w$F$$$^$9$,!"(B(car (last +<var>args</var>)) $B$O;XDj$5$l$?(B parameter $B$G$"$kI,MW$,$"$j$^$9!#(B(car +(car (last <var>args</var>))) $B$OJQ?t$NL>A0$G!"(B(nth 1 (car (last +<var>args</var>))) $B$O(B backend $B$NL>A0(B (encoding) $B$G$9!#(B <p> -<var>start</var> and <var>end</var> are buffer positions. -</defun> +$BNc(B: +<p> +<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) + ))) +</lisp> +</defmacro> -<defvar name="mime-file-encoding-method-alist"> +<defmacro name="mel-define-method-function"> +<args> spec function <p> -Alist of encoding vs. corresponding method to insert encoded file. +<var>spec</var> $B$N4X?tDj5A$r(B <var>function</var> $B$K@_Dj$7$^$9!#(B <p> -Each element looks like <code>(STRING . FUNCTION)</code>. STRING is -content-transfer-encoding. FUNCTION is function to insert encoded -file. -</defvar> +<var>spec</var> $B$N:G=i$NMWAG$O(B service $B$G$9!#(B +<p> +<var>args</var> $B$N;D$j$O(B lambda $B$N0z?t(B list $B;w$F$$$^$9$,!"(B(car (last +<var>args</var>)) $B$O;XDj$5$l$?(B parameter $B$G$"$kI,MW$,$"$j$^$9!#(B(car +(car (last <var>args</var>))) $B$OJQ?t$NL>A0$G!"(B(nth 1 (car (last +<var>args</var>))) $B$O(B backend $B$NL>A0(B (encoding) $B$G$9!#(B +<p> +$BNc(B: +<p> +<lisp> +(mel-define-method-function (mime-encode-string string (nil "base64")) + 'encode-base64-string) +</lisp> +</defmacro> -<defvar name="mime-file-decoding-method-alist"> + +<h2> $BId9f2=(B/$BI|9f2=(B service $B$rDI2C$9$kJ}K!(B +<node> generic function for mel-backend <p> -Alist of encoding vs. corresponding method to write decoded region to -file. +<defmacro name="mel-define-service"> +<args> name +<opts> args doc-string <p> -Each element looks like <code>(STRING . FUNCTION)</code>. STRING is -content-transfer-encoding. FUNCTION is function to write decoded -region to file. -</defvar> +<var>name</var> $B$r(B Content-Transfer-Encoding $B$N(B service $B$H$7$FDj5A$7$^(B +$B$9!#(B +<p> +<var>args</var> $B$,;XDj$5$l$F$$$k$H!"(B<var>name</var> $B$O(B service $B$N(B +generic function $B$H$7$FDj5A$5$l$^$9!#(B +<p> +$BNc(B: +<p> +<lisp> +(mel-define-service encoded-text-encode-string (string encoding) + "Encode STRING as encoded-text using ENCODING. +ENCODING must be string.") +</lisp> +</defmacro> <h1> Header $B$N(B network $BI=8=(B @@ -728,28 +879,48 @@ FLIM $B$O$3$l$i$rId9f2=!&I|9f2=$9$k5!G=$rDs6!$7$^$9!#(B <h2> Header $B$NId9f2=!&I|9f2=(B <node> Header encoder/decoder <p> -<defun name="eword-encode-header"> - <opts> code-conversion separator +<defun name="eword-decode-header"> + <opts> code-conversion separator <p> -Decode MIME encoded-words in header fields. +Header $BCf$N(B encoded-word $B$rI|9f$9$k!#(B <p> -If <var>code-conversion</var> is <code>nil</code>, 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. +$B$b$7(B <var>code-conversion</var> $B$,(B <code>nil</code> $B$J$i!"(Bencoded-word +$B$@$1$,I|9f$5$l$k!#$b$7!"(B<var>code-conversion</var> $B$,(B <dref>MIME +charset</dref> $B$J$i!"Hs(B ASCII bit patterns $B$O$=$N(B MIME charset $B$H$7$F(B +$BI|9f$5$l$k!#$3$l0J30$N>l9g!"Hs(B ASCII bit patterns $B$O(B +<code>default-mime-charset</code>. $B$H$7$FI|9f$5$l$k!#(B<cf node="entity +formatting"> <p> -If <var>separator</var> is not nil, it is used as header separator. +$B$b$7(B <var>separator</var> $B$,(B <code>nil</code> $B$G$J$1$l$P!"$=$NCM$,(B +header separator $B$H$7$FMQ$$$i$l$k!#(B </defun> <defun name="eword-encode-header"> - <opts> code-conversion + <opts> code-conversion <p> -Encode header fields to network representation, such as MIME -encoded-word. +Header $B$r(B network $BI=8=$KId9f2=$9$k!#(B <p> -It refer variable <code>eword-field-encoding-method-alist</code>. +$B3F(B field $B$O(B <code>mime-field-encoding-method-alist</code> $B$G;XDj$5$l(B +$B$?J}<0$GId9f2=$5$l$k!#(B </defun> +<defvar name="mime-field-encoding-method-alist"> +<p> +Field $B$rId9f2=$9$kJ}K!$r;XDj$9$kO"A[(B list$B!#3F(B element $B$O(B (FIELD +. METHOD) $B$NMM$K$J$C$F$$$k!#(B +<p> +METHOD $B$,(B <code>mime</code> $B$G$"$l$P!"(BFIELD $B$O(B MIME format $B$KId9f2=$5(B +$B$l$k(B (encoded-word)$B!#(B +<p> +METHOD $B$,(B <code>nil</code> $B$G$"$l$P!"(BFIELD $B$OId9f2=$5$l$J$$!#(B +<p> +METHOD $B$,(B MIME charset $B$G$"$l$P!"(BFIELD $B$O%M%C%H%o!<%/%3!<%I$KJQ49$7$J(B +$B$1$l$P$J$i$J$$$H$-$K(B charset $B$KId9f2=$5$l$k!#(B +<p> +$B$=$&$G$J$1$l$P!"(BFIELD $B$O%M%C%H%o!<%/%3!<%I$KJQ49$7$J$1$l$P$J$i$J$$$H$-(B +$B$K(B $BJQ?t(B <code>default-mime-charset</code> $B$GId9f2=$5$l$k(B +</defvar> + <h1> $B0lHL@_Dj(B <node> custom @@ -761,24 +932,6 @@ MIME $B4XO"5!G=$K4X$9$k(B group. <code>mail</code> $B$H(B <code>news</code> $B$KB0$9$k!#(B </define> -<defvar name="default-mime-charset"> -<p> -$BE,@Z$J(B <dref>MIME charset</dref> $B$,8+$D$+$i$J$+$C$?>l9g$KMQ$$$i$l$k(B -MIME charset. -<p> -$BK\Mh$O(B APEL $B$NJQ?t$G$"$k!#(B -</defvar> - -<defvar name="mime-temp-directory"> -<p> -MIME $B5!G=$K4X$9$k<BAu$,0l;~E*$K;HMQ$9$k(B file $B$r:n@.$9$k(B directory. -<p> -$B4D6-JQ?t(B <code>MIME_TMP_DIR</code>, <code>TM_TMP_DIR</code>, -<code>TMPDIR</code>, <code>TMP</code> $B$b$7$/$O(B <code>TEMP</code> $B$,@_Dj(B -$B$5$l$F$$$?>l9g!"$=$l$r=i4|CM$H$7$FMQ$$$k!#2?$b@_Dj$5$l$F$$$J$$>l9g!"(B -<code>"/tmp/"</code> $B$rMQ$$$k!#(B -</defvar> - <h1> $BIUO?(B <node> Appendix @@ -850,21 +1003,6 @@ data $B$O(B <a node="binary"><concept>binary</concept></a> $B$H8F$V$3$H$K$9( $B$"$k!#(B -<h3> Base64 -<node> Base64 -<p> -<dref>RFC 2045</dref> $B$GDj5A$5$l$F$$$k(B <dref>MIME</dref> $B$K$*$1$k(B <a -node="binary">binary data</a> $B$N(B network $B$G$NJQ49K!$N#1$D!#(B -<p> -$B!X(B64 $B?J?t!Y$H$$$&0UL#$G!"(B3 byte $B$N(B data $B$r(B 0 $B$+$i(B 63 $B$N?t$rI=$9(B -<dref>ASCII</dref> 4 $BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"(B4 $BJ8;z$K$J$i$J$1$l$P(B -<concept>pad</concept> $B$H8F$P$l$k5M$aJ*$r$7$FD9$5$rD4@0$9$k!K(B -<p> -$B$3$N(B 65 $B<oN`$NJ8;z$O(B ASCII $B$H(B EBCDIC $B$N6&DLItJ,$+$iA*$P$l$F$*$j!"(B -Internet $B0J30$N(B network $B$r7PM3$9$k>l9g$G$b0BA4$KE>Aw$G$-$k$h$&$K@_7W$5(B -$B$l$F$$$k!#(B - - <h3> ASCII <node> ASCII <p> @@ -877,10 +1015,19 @@ A-Z, a-z $B$N(B Latin $BJ8;z$H?t;z!"4v$D$+$N5-9f$+$i$J$k!#(BISO 646 $B$N0l$ number="ANSI X3.4" year="1986"> -<h3> Coded character set$B!JId9f2=J8;z=89g!K(B, Character code$B!JJ8;zId9f!K(B -<node> Coded character set +<h3> Base64 +<node> Base64 <p> -$BJ8;z$H(B byte $BNs$H#1BP#1$KBP1~IU$1$k[#Kf$G$J$$5,B'$N=89g!#(B +<dref>RFC 2045</dref> $B$GDj5A$5$l$F$$$k(B <dref>MIME</dref> $B$K$*$1$k(B <a +node="binary">binary data</a> $B$N(B network $B$G$NJQ49K!$N#1$D!#(B +<p> +$B!X(B64 $B?J?t!Y$H$$$&0UL#$G!"(B3 byte $B$N(B data $B$r(B 0 $B$+$i(B 63 $B$N?t$rI=$9(B +<dref>ASCII</dref> 4 $BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"(B4 $BJ8;z$K$J$i$J$1$l$P(B +<concept>pad</concept> $B$H8F$P$l$k5M$aJ*$r$7$FD9$5$rD4@0$9$k!K(B +<p> +$B$3$N(B 65 $B<oN`$NJ8;z$O(B ASCII $B$H(B EBCDIC $B$N6&DLItJ,$+$iA*$P$l$F$*$j!"(B +Internet $B0J30$N(B network $B$r7PM3$9$k>l9g$G$b0BA4$KE>Aw$G$-$k$h$&$K@_7W$5(B +$B$l$F$$$k!#(B <h3> binary @@ -898,6 +1045,12 @@ A-Z, a-z $B$N(B Latin $BJ8;z$H?t;z!"4v$D$+$N5-9f$+$i$J$k!#(BISO 646 $B$N0l$ data $B$r;X$9$3$H$,$"$k!#(B +<h3> Coded character set$B!JId9f2=J8;z=89g!K(B, Character code$B!JJ8;zId9f!K(B +<node> Coded character set +<p> +$BJ8;z$H(B byte $BNs$H#1BP#1$KBP1~IU$1$k[#Kf$G$J$$5,B'$N=89g!#(B + + <h3> media-type <node> media-type <p> @@ -905,7 +1058,7 @@ data $B$r;X$9$3$H$,$"$k!#(B <concept>primary-type</concept> $B$H(B <concept>subtype</concept> $B$+$i$J$k!#(B <dref>RFC 2046</dref> $B$GDj5A$5$l$F$$$k!#(B <p> -type $B$OI8=`$G$O(B +primary-type $B$OI8=`$G$O(B <ul> <li><concept>text</concept> @@ -1129,8 +1282,8 @@ Internet message $B$K$*$1$kI8=`$N(B<a node="Coded character set">$BId9f2=J8( FLIM $B$N%P%0$r8+$D$1$?$i!"0J2<$N(B address $B$K(B mail $B$rAw$C$F$/$@$5$$!'(B <ul> -<li> $BF|K\8l(B <mail>bug-tm-ja@chamonix.jaist.ac.jp</mail> -<li> $B1Q8l(B <mail>bug-tm-en@chamonix.jaist.ac.jp</mail> +<li> $B1Q8l(B <mail>emacs-mime-en@m17n.org</mail> +<li> $BF|K\8l(B <mail>emacs-mime-ja@m17n.org</mail> </ul> <p> @@ -1149,12 +1302,12 @@ file="emacs" node="Bugs"> $B$F$/$@$5$$!#(B <p> -tm ML $B$G$O(B FLIM $B$N%P%0>pJs$N8r49$d:G?7HG$NG[I[!"(BFLIM $B$N2~NI$K4X$9$k5D(B -$BO@$r9T$J$C$F$$$^$9!#(Btm ML $B$K;22C$7$?$$J}$O(B +EMACS-MIME ML $B$G$O(B FLIM $B$N%P%0>pJs$N8r49$d:G?7HG$NG[I[!"(BFLIM $B$N2~NI$K(B +$B4X$9$k5DO@$r9T$J$C$F$$$^$9!#(BEMACS-MIME ML $B$K;22C$7$?$$J}$O(B <ul> -<li> $BF|K\8l(B <mail>tm-ja-help@chamonix.jaist.ac.jp</mail> -<li> $B1Q8l(B <mail>tm-en-help@chamonix.jaist.ac.jp</mail> +<li> $B1Q8l(B <mail>emacs-mime-en-ctl@m17n.org</mail> +<li> $BF|K\8l(B <mail>emacs-mime-ja-ctl@m17n.org</mail> </ul> <noindent> @@ -1170,14 +1323,13 @@ FLIM $B$N(B file $B$O(B CVS $B$r;H$C$F4IM}$5$l$F$$$^$9!#$3$N$?$a!"0J2<$NJ}K <verb> (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 \ + % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root \ checkout [-r TAG] flim </verb> @@ -1185,12 +1337,16 @@ FLIM $B$N(B file $B$O(B CVS $B$r;H$C$F4IM}$5$l$F$$$^$9!#$3$N$?$a!"0J2<$NJ}K CVS $B$rMQ$$$?3+H/$K;22C$7$?$$J}$O(B <ul> -<li> <mail>cvs@chamonix.jaist.ac.jp</mail> +<li> <mail>cvs@cvs.m17n.org</mail> </ul> <noindent> -$B$^$G!"(Baccount $BL>$H(B UNIX $B$N(B passwd $B$HF1$87A<0$N(B crypt $B2=$5$l$?(B password -$B$r1h$($F8fO"Mm$/$@$5$$!#(B +$B$^$G!"%"%+%&%s%HL>$H(B ssh $B$N8x3+80$rAw$C$F$/$@$5$$!#(Bssh $B7PM3$G$O!"(B +cvsroot $B$O(B :ext:cvs@cvs.m17n.org:/cvs/root $B$H$J$j$^$9!#(B +<p> +$B$I$&$7$F$b(B ssh $B$,;H$($J$$>l9g!"(Bpserver $B7PM3$G$b3+H/$K;22C$G$-$^$9!#(B +$B$3$N>l9g!"(BUNIX $B$N(B /etc/passwd $BMM<0$G0E9f2=$5$l$?%Q%9%o!<%I$rAw$C$F2<$5$$!#(B +$B$3$N>l9g(B cvsroot $B$O(B :pserver:<$B%"%+%&%s%HL>(B>@cvs.m17n.org:/cvs/root $B$H$J$j$^$9!#(B <h2> $BNr;K(B