New files.
authormorioka <morioka>
Sun, 5 Jul 1998 14:08:16 +0000 (14:08 +0000)
committermorioka <morioka>
Sun, 5 Jul 1998 14:08:16 +0000 (14:08 +0000)
mime-ui-en.sgml [new file with mode: 0644]
mime-ui-en.texi [new file with mode: 0644]

diff --git a/mime-ui-en.sgml b/mime-ui-en.sgml
new file mode 100644 (file)
index 0000000..d1282f3
--- /dev/null
@@ -0,0 +1,670 @@
+<!doctype sinfo system>
+<head>
+<title>SEMI 1.8 Manual
+<author>MORIOKA Tomohiko <mail>morioka@jaist.ac.jp</mail>
+<date>1998/07/03
+
+<toc>
+</head>
+
+<body>
+
+<abstract>
+<p>
+This file documents SEMI, a MIME user interface for GNU Emacs.
+</abstract>
+
+
+<h1> What is SEMI?
+<node> Introduction
+<p>
+SEMI is a package for GNU Emacs to provide features related with MIME
+user interface.
+<p>
+SEMI \e$B$,Ds6!$9$k\e(B MIME user interface \e$B$O\e(B MIME-View \e$B$H\e(B MIME-Edit \e$B$+$i$J$j$^\e(B
+\e$B$9!#\e(B
+<p> 
+MIME-View \e$B$O\e(B MIME \e$B$d\e(B STD 11 \e$B$*$h$S!XCO0h2=$5$l$?\e(B RFC 822\e$B!Y\e(Bmessage \e$B$rI=<(\e(B
+\e$B$7$?$j!"A`:n$7$?$j$9$k$?$a$N\e(B user interface \e$B$NCf3K$G$9!#\e(B
+<p>
+MIME-Edit \e$B$O\e(B MIME message \e$B$r@8@.$9$k$?$a$N\e(B user interface \e$B$G$9!#\e(B
+<p>
+\e$B3F\e(B MUA \e$B$G$3$l$i$N5!G=$rMxMQ$9$k$3$H$K$h$j!"9bEY$J\e(B MIME \e$B5!G=$rMxMQ$9$k$3\e(B
+\e$B$H$,$G$-$^$9!#\e(B
+
+
+<h1> MIME message viewing
+<node> MIME-View
+<p>
+MIME-View \e$B$O\e(B GNU Emacs \e$B$GF0:n$9$kHFMQE*$J\e(B MIME viewer \e$B$G$9!#\e(B
+<p>
+MIME-View \e$B$O\e(B MIME message \e$B$r1\Mw$9$k$?$a$NMxMQ<T3&LL\e(B (user interface) 
+\e$B$N3K$G$"$j!"$3$N>e$G\e(B presentation-method \e$B$H8F$P$l$kI=<($r:n$k%W%m%0%i%`\e(B
+\e$B$rF0$+$7$?$j!"\e(Bacting-method \e$B$H8F$P$l$k\e(B entity \e$B$N=hM}%W%m%0%i%`$rF0$+$9\e(B
+\e$B$3$H$,2DG=$G!"$5$^$6$^$J<oN`$N\e(B entity \e$B$r07$&;v$,$G$-$k$h$&$K$J$C$F$$$^$9!#\e(B
+
+
+<h2> Basic design
+<node> Overview of MIME-View
+<p>
+Internet \e$B$NEE;R=q4J!&%M%C%H%K%e!<%9$J$I$N=qLL\e(B (message) \e$B$NI=8=7A<0$O\e(B 
+STD 11 \e$B$K4p$E$$$F$$$^$9!#\e(BSTD 11 \e$B$N=qLLK\BN\e(B (message body) \e$B$O9T$rM#0l$N\e(B
+\e$B9=B$$H$9$k4J0WJ8LL\e(B (plain text) \e$B$G$"$j!"J8;zId9f$b\e(B us-ascii \e$B$HDj$a$i$l\e(B
+\e$B$F$$$^$9!#<B:]$K$O!"J8;zId9f$r\e(B us-ascii \e$B$NBe$o$j$K$=$N8@8l7w$GMQ$$$i$l\e(B
+\e$B$kJ8;zId9f$H$7$?!XCO0h2=$5$l$?\e(B STD 11\e$B!Y=qLL$bMQ$$$i$l$F$-$^$7$?$,!"$3\e(B
+\e$B$N>l9g$b=qLL$NJ8;zId9f$O#1$D$G$9!#$3$N$?$a!"MxMQ<T3&LL\e(B (Message User
+Agent) \e$B$O!"$7$P$7$P!"\e(Bbyte \e$BNs\e(B = us-ascii \e$BJ8;zNs!"$J$$$7$O!"\e(Bbyte \e$BNs\e(B = \e$B$=\e(B
+\e$B$N8@8l7w$GMQ$$$kJ8;zId9f$NJ8;zNs$N$h$&$K8+Jo$7$F$-$^$7$?!#\e(B
+<p>
+\e$B$7$+$7$J$,$i!"\e(BMIME \e$B$G$O=qLL$O\e(B entity \e$B$rC10L$H$9$kLZ9=B$$K$J$j!"$^$?!"\e(B
+\e$B#1$D$N=qLL$GJ#?t$NJ8;zId9f$rMQ$$$k$3$H$,$G$-$^$9!#$^$?!"\e(Bentity \e$B$NFbMF\e(B
+\e$B$OJ8LL$d3($N$h$&$JC1=c$KI=<(2DG=$J$b$N$@$1$G$J$/!"2;@<$dF02h$J$I$N0lDj\e(B
+\e$B;~4V:F@8$5$l$k$h$&$J$b$N$dFCDj$N%"%W%j%1!<%7%g%s$N%G!<%?$d%W%m%0%i%`$N\e(B
+\e$B%=!<%9!"$"$k$$$O!"\e(Bftp \e$B$d\e(B mail service \e$B$NMxMQK!$d\e(B URL \e$B$H$$$C$?7A$GI=$5\e(B
+\e$B$l$?30It;2>H$J$I$N$5$^$6$^$J$b$N$,9M$($i$^$9!#$3$N$?$a!"I=<($@$1$r9M$(\e(B
+\e$B$F$$$?\e(B STD 11 \e$B$K$*$1$kMxMQ<T3&LL$NC1=c$J1dD9$G$O\e(B MIME \e$B$NA4$F$N5!G=$r07\e(B
+\e$B$&$3$H$O$G$-$^$;$s!#$D$^$j!"\e(BMIME \e$B$N7A<0$K9g$o$;$FI|9f$9$k$@$1$G$OIT==\e(B
+\e$BJ,$G$"$j!"MxMQ<T$H$NBPOCE*$J:F@8=hM}$r9MN8$9$kI,MW$,$"$j$^$9!#\e(BMIME \e$B=q\e(B
+\e$BLL$N7A<0$O<+F0=hM}$,$7$d$9$/@_7W$5$l$F$$$^$9$,!"\e(BMIME \e$B=qLL$K4^$^$l$kFb\e(B
+\e$BMF$NCf$K$O%;%-%e%j%F%#!<>e$NLdBj$+$i<+F0=hM}$r$9$k$Y$-$G$J$$$b$N$,$"$j!"\e(B
+\e$B$3$&$$$C$?$b$N$N:F@8$K4X$7$F$OMxMQ<T$NH=CG$r6D$0$h$&$K@_7W$5$l$k$Y$-$G\e(B
+\e$B$7$g$&!#7k6I!"\e(BMIME \e$B=qLL$r07$&$?$a$K$O\e(B STD 11 \e$B$*$h$S\e(B MIME \e$B$N9=J8$G5-=R\e(B
+\e$B$5$l$?%a%C%;!<%8$N>pJs8r49MQI=8=$H$=$N2r<a7k2L$G$"$kI=<(2hLL$d:F@8Ey$N\e(B
+\e$B=hM}$r6hJL$7$F9M$($kI,MW$,$"$j$^$9!#$^$?!"MxMQ<T$H$NBPOCE*$J:F@8=hM}$,\e(B
+\e$BI,MW$G$9!#\e(B
+<p>
+\e$B$3$N$?$a!"\e(BMIME-View \e$B$O#1$D$N=qLL$KBP$7$F!">pJs8r49MQI=8=$r3JG<$9$k\e(B 
+mime-raw-buffer \e$B$HI=<(MQI=8=$r3JG<$9$k\e(B mime-preview-buffer \e$B$N#2$D$N\e(B 
+buffer \e$B$rMQ$$$^$9!#\e(B
+<p>
+MIME-View \e$B$O\e(B mime-preview-buffer \e$B$KBP$7$F\e(B mime-view-mode \e$B$H$$$&\e(B MIME
+message \e$B$r1\Mw$9$k$?$a$N\e(B mode \e$B$rDs6!$7$^$9!#MxMQ<T$O$3$3$G3F\e(B entity \e$B$K\e(B
+\e$BBP$7$FA`:n$r9T$&$3$H$,$G$-$^$9!#\e(B
+
+
+<h2> Presentation of mime-preview-buffer
+<node> MIME-Preview
+<p>
+mime-view-mode \e$B$G$O3F\e(B entity \e$B$KBP$7$F\e(B
+<p>
+<verb>
+       [entity-button]
+       (header)
+       
+       (body)
+       (separator)
+</verb>
+<p>
+<noindent>
+\e$B$H$$$&>pJs$rI=<($7$^$9!#$3$l$i$O>r7o$K=>$C$F\e(B design \e$B$rJQ99$7$?$j!"I=<(\e(B
+\e$B$rM^@)$9$k$3$H$b$G$-$^$9!#\e(B
+<p>
+\e$B0J2<$K!"I=<(Nc$r<($7$^$9!#\e(B
+
+
+<verb>
+From: morioka@jaist.ac.jp (\e$B<i2,\e(B \e$BCNI'\e(B / MORIOKA Tomohiko)
+Subject: Re: \e$B<ALd!)\e(B
+Newsgroups: zxr.message.mime
+Date: 22 Oct 93 11:02:44
+Mime-Version: 1.0
+Organization: Japan Advanced Institute of Science and Technology,
+        Ishikawa, Japan
+
+[1  (text/plain)]
+  MIME-Edit mode \e$B$K$*$1$k!"\e(BMIME message \e$B$N:n$jJ}!#\e(B
+
+  C-c C-x ? \e$B$r2!$9$H\e(B help \e$B$,=P$F$/$k!#\e(B
+
+C-c C-x C-t    insert a text message.
+C-c C-x TAB    insert a (binary) file.
+C-c C-x C-e    insert a reference to external body.
+C-c C-x C-v    insert a voice message.
+C-c C-x C-y    insert a mail or news message.
+C-c C-x RET    insert a mail message.
+C-c C-x C-s    insert a signature file at end.
+C-c C-x t      insert a new MIME tag.
+C-c C-x a      enclose as multipart/alternative.
+C-c C-x p      enclose as multipart/parallel.
+C-c C-x m      enclose as multipart/mixed.
+C-c C-x d      enclose as multipart/digest.
+C-c C-x s      enclose as PGP signed.
+C-c C-x e      enclose as PGP encrypted.
+C-c C-x C-k    insert PGP public key.
+C-c C-x C-p    preview editing MIME message.
+...
+
+\e$B$C$FLu$G!"\e(BC-c C-x C-i \e$B$r2!$7$F!"A^F~$7$?$$\e(B binary file \e$B$r;XDj$7$^$9!#\e(B
+
+  binary file \e$B$N\e(B MIME encoding \e$B$K$O!"IaDL!"\e(BBase64 \e$B$r;XDj$7$^$9!#\e(B
+
+[2  (image/gif)]
+
+[3  (text/plain)]
+
+  \e$B$3$s$JIw$K!"3(F~$j\e(B message \e$B$N$G$->e$,$j!#\e(B
+
+\e$B".".".".".".".".".".".\e(B \e$B%m%7%"%s!&%F%#!<$r0lGU!#\e(B \e$B".".".".".".".".".".".\e(B
+\e$B".".".".".\e(B  \e$B!y\e(B \e$B%8%c%`$G$O$J$/%^!<%^%l!<%I$G$b$J$/K*L*$G\e(B \e$B!y\e(B  \e$B".".".".".\e(B
+\e$B".".".".".\e(B         \e$B'.'0'2$$'0','!\e(B  \e$B'4'0'.'0'7'*','0\e(B         \e$B".".".".".\e(B
+\e$B".".".".".".".\e(B  Internet E-mail: &lt;morioka@jaist.ac.jp&gt;  \e$B".".".".".".".\e(B
+</verb>
+
+
+<h3> entity-button
+<node> entity-button
+<p>
+<concept>entity-button</concept> \e$B$O\e(B entity \e$B$N@hF,$K$"$C$F!"$=$N\e(B entity 
+\e$B$K4X$9$kBg$^$+$J>pJs$rI=<($9$kItJ,$G$9!#\e(B
+<p>
+\e$BI8=`$G$O\e(B
+
+<verb>
+        [1.3 test (text/plain)]
+</verb>
+
+<noindent>
+\e$B$N$h$&$J46$8$KI=<($5$l$^$9!#\e(B
+<p>
+\e$B:G=i$N?t;z$O\e(B message \e$BCf$N$3$N\e(B entity \e$B$N0LCV$r@aHV9f$N$h$&$KI=$7$?$b$N\e(B
+\e$B$G!"\e(B<concept>entity-number</concept> \e$B$H8F$S$^$9!#\e(B
+<p>
+\e$B#2HVL\$NJ8;zNs$OI=Bj$rI=$7$^$9!#$3$N>pJs$O!"\e(B
+
+<ol>
+<li>Content-Description field \e$B$b$7$/$O\e(B Subject field \e$B$K=q$+$l$?I=Bj\e(B
+<li>Content-Disposition field \e$B$N\e(B filename parameter \e$B$K=q$+$l$?\e(B file \e$BL>\e(B
+<li>Content-Type field \e$B$N\e(B name parameter \e$B$K=q$+$l$?\e(B file \e$BL>\e(B
+<li> uuencode \e$B$N>l9g$N\e(B file \e$BL>\e(B
+</ol>
+
+<noindent>
+\e$B$+$i:n$j$^$9!#$I$l$bB8:_$7$J$$>l9g$O6uGr$,I=<($5$l$^$9!#\e(B
+<p>
+\e$B#3HVL\$N3g8L$NCf$N>pJs$O$=$N\e(B entity \e$B$N\e(B media-type/subtype \e$B$rI=$7$^$9!#\e(B
+\e$BHs\e(B MIME entity \e$B$N>l9g!"\e(B<code>nil</code> \e$B$,I=<($5$l$^$9!#\e(B
+<p>
+\e$B$3$N\e(B entity-button \e$B$O\e(B entity \e$B$NFbMF$r>]D'$9$k\e(B icon \e$B$N$h$&$JLr3d$r2L$?\e(B
+\e$B$7$^$9!#Nc$($P!"\e(B
+
+<verb>
+        [2  (image/gif)]
+</verb>
+
+<noindent>
+\e$B$N>e$G\e(B <kbd>v</kbd> \e$B$r2!$;$P$3$3$KF~$C$F$$$k3($,I=<($5$l$^$9!#\e(B
+<p>
+\e$B$^$?!"\e(Bmouse \e$BA`:n$,2DG=$J>l9g!"\e(Bentity-button \e$B$rBh#2%\%?%s!J\e(B3 button
+mouse \e$B$N>l9g!"Cf1{$N%\%?%s!K$G2!$;$P!"F1MM$K$=$N3($,I=<($5$l$^$9!#\e(B
+
+
+<h3> entity-header
+<node> entity-header
+<p>
+<concept>entity-header</concept> \e$B$O$"$k\e(B entity \e$B$N\e(B header \e$B$rI=<($9$kIt\e(B
+\e$BJ,$G$9!J!V$=$N$^$^$d$s$1!W$C$FE\$i$J$$$G!#$=$&$$$&$b$s$J$s$G$9!K!#\e(B
+
+
+<h3> entity-body
+<node> entity-body
+<p>
+<concept>entity-body</concept> \e$B$O\e(B part \e$B$NFbMF$rI=<($9$kItJ,$G$9!#\e(B
+<p>
+\e$B$3$l$b$R$M$j$,B-$j$J$$$G$9$,!"$^$"!"$=$&$$$&$b$s$G$9!#\e(B
+<p>
+\e$B$H$O$$$(!"<B:]$K$O>/$7$R$M$C$F$^$9!#\e(B
+<p>
+text entity \e$B$N>l9g$O\e(B charset \e$B$K1~$8$F\e(B code \e$BJQ49$7$?$j$7$^$9$7!"\e(BXEmacs 
+\e$B$G$O\e(B image entity \e$B$rJQ49$7$J$$$H$$$1$J$$$7!#\e(B
+<p>
+\e$B>\$7$/$O$^$?8e$G!#\e(B
+
+
+<h2> Operation in mime-preview-buffer
+<node> mime-view-mode
+<p>
+mime-preview-buffer \e$B$K$O0J2<$N5!G=$,$"$j$^$9!#\e(B
+<p>
+<kl>
+<kt>u
+<kd>
+\e$B>e$N\e(B part \e$B$KLa$k!J\e(Bmessage \e$B$N0lHV>e$N\e(B part \e$B$G$3$l$r9T$J$&$H\e(B Summary
+mode \e$B$KLa$k\e(B (*1)\e$B!K\e(B
+</kd>
+<kt>p<kd>\e$BA0$N\e(B part \e$B$K0\F0$9$k\e(B
+</kd>
+<kt>M-TAB<kd>\e$BA0$N\e(B part \e$B$K0\F0$9$k\e(B
+</kd>
+<kt>n<kd>\e$B<!$N\e(B part \e$B$K0\F0$9$k\e(B
+</kd>
+<kt>TAB<kd>\e$B<!$N\e(B part \e$B$K0\F0$9$k\e(B
+</kd>
+<kt>SPC<kd>scroll up \e$B$9$k\e(B
+</kd>
+<kt>M-SPC<kd>scroll down \e$B$9$k\e(B
+</kd>
+<kt>DEL<kd>scroll down \e$B$9$k\e(B
+</kd>
+<kt>RET<kd>\e$B<!$N9T$K0\F0$9$k\e(B
+</kd>
+<kt>M-RET<kd>\e$BA0$N9T$K0\F0$9$k\e(B
+</kd>
+<kt>v<kd>part \e$B$r:F@8$9$k\e(B (*2)
+</kd>
+<kt>e<kd>part \e$B$+$i\e(B file \e$B$r<h$j=P$9\e(B (*2)
+</kd>
+<kt>C-c C-p<kd>part \e$B$r0u:~$9$k\e(B (*2)
+</kd>
+<kt>mouse-button-2
+<kd>
+preview-buffer \e$BCf$N\e(B mouse button \e$B$r5/F0$9$k\e(B
+<p>
+content-button \e$B$r2!$;$P!"$=$N\e(B part \e$B$,:F@8$5$l$k\e(B(*2)
+<p>
+URL-button \e$B$r2!$;$P!"$=$N\e(B WWW browser \e$B$,5/F0$5$l$k\e(B
+</kd>
+</kl>
+<p>
+<memo title="\e$BCm0U\e(B">
+<p>
+(*1) MUA \e$B$G\e(B mime-view \e$B$N@_Dj$r$7$F$$$J$$>l9g!"\e(BSummary mode \e$B$K$OLa$j$^\e(B
+\e$B$;$s!#\e(B
+<p>
+(*2) \e$B<B:]$NF0:n$OBP1~$9$k\e(B method \e$B$K0M$j$^$9!#\e(B
+</memo>
+
+
+<h1> MIME message editing
+<node> MIME-Edit
+<p>
+<concept>MIME-Edit</concept> is a general MIME composer for GNU Emacs.
+
+
+<h2> Minor-mode to edit MIME message
+<node> mime-edit-mode
+<p>
+<concept>mime-edit-mode</concept> is a minor mode to compose MIME
+message.  In this mode, <concept>tag</concept> represents various
+kinds of data, so you can edit multi part message consists of various
+kinds of data, such as text, image, audio, etc.
+<p>
+There are 2 kinds of tags:
+
+<ul>
+<li> single-part tag
+<li> multi-part tag
+</ul>
+<p>
+single-part tag represents single part, this form is following:
+<p>
+<verb>
+        --[[TYPE/SUBTYPE;PARAMETERS][ENCODING]
+        OPTIONAL-FIELDS]
+</verb>
+<p>
+TYPE/SUBTYPE and PARAMETERS indicates type/subtype and parameters of
+<dref file="mime-en">Content-Type</dref> field.  TYPE/SUBTYPE is
+required, PARAMETERS is optional.
+<p>
+ENCODING indicates <dref
+file="mime-ja">Content-Transfer-Encoding</dref> field.  It is optional
+too.
+<p>
+OPTIONAL-FIELDS is to represent another fields except Content-Type
+field and Content-Transfer-Encoding field.
+<p>
+multi-part tags represent <a file="mime-en" node="multipart">multi
+part</a>.  They consist of a pair of <concept>multi-part beginning
+tag</concept> and <concept>multi-part ending tag</concept>.
+<p>
+multi-part beginning tag's form is following:
+
+<verb>
+        --<<TYPE>>-{
+</verb>
+<p>
+multi-part ending tag's form is following:
+
+<verb>
+        --}-<<TYPE>>
+</verb>
+<p>
+A region from multi-part beginning tag to multi-part ending tag is
+called as <concept>enclosure</concept>.
+
+
+<h2> Operations for single-part
+<node> single-part tags
+<p>
+Operations to make single-part are following:
+
+<kl>
+<kt>C-c C-x C-t
+<kd>
+Insert single-part tag indicates text part.
+</kd>
+<kt>C-c C-x C-i
+<kd>
+Insert file as a MIME attachment.  If <kbd>C-u</kbd> is followed by
+it, it asks media-type, subtype or encoding even if their default
+values are specified. <cf node="tag specification for inserted file">
+</kd>
+<kt>C-c C-x C-e
+<kd>
+Insert external part.
+</kd>
+<kt>C-c C-x C-v
+<kd>
+Record audio input until <kbd>C-g</kbd> is pressed, and insert as a
+audio part. (It requires /dev/audio in default.)
+</kd>
+<kt>C-c C-x C-y
+<kd>
+Insert current (mail or news) message. (It is MUA depended.)
+</kd>
+<kt>C-c C-x C-m
+<kd>
+Insert mail message. (It is MUA depended.)
+</kd>
+<dt><key>C-c C-x C-w</key>, <key>C-c C-x C-s</key>
+<dd>
+Insert signature.
+</dd>
+<kt>C-c C-x C-k
+<kd>
+Insert <dref>PGP</dref> public key. (It requires Mailcrypt package.)
+</kd>
+<kt>C-c C-x t
+<kd>
+Insert any single-part tag.
+</kl>
+
+
+<h2> Operations for enclosure
+<node> enclosure tags
+<p>
+Operations to make enclosure are following:
+
+<kl>
+<kt>C-c C-m C-a
+<kd>
+Enclose specified region as multipart/alternative.
+</kd>
+<kt>C-c C-x C-p
+<kd>
+Enclose specified region as multipart/parallel.
+</kd>
+<kt>C-c C-x C-m
+<kd>
+Enclose specified region as multipart/mixed.
+</kd>
+<kt>C-c C-x C-d
+<kd>
+Enclose specified region as multipart/digest.
+</kd>
+<kt>C-c C-x C-s
+<kd>
+Digital-sign to specified region. <cf node="PGP">
+</kd>
+<kt>C-c C-x C-e
+<kd>
+Encrypt to specified region. <cf node="PGP">
+</kd>
+<kt>C-c C-x C-q
+<kd>
+avoid to encode tags in specified region.  In other words, tags is
+interpreted as such string.  (In current version, it may be
+incomplete.  Maybe PGP-signature does not work for this enclosure.)
+</kl>
+
+
+<h2> Other operations
+<node> other MIME-Edit operations
+<p>
+There are another operations in mime-edit-mode.
+
+<kl>
+<kt>C-c C-c
+<kd>
+Send current editing message.
+</kd>
+<kt>C-c C-x p
+<kd>
+Preview current editing message. <cf node="MIME-View">
+</kd>
+<kt>C-c C-x C-z
+<kd>
+Exit mime-edit-mode without sending.
+</kd>
+<kt>C-c C-x /
+<kd>
+Set current editing message to enable automatic splitting or not.
+Form of automatic split messages is message/partial.
+</kd>
+<kt>C-c C-x 7
+<kd>
+Set <dref file="mime-en">7bit</dref> to <dref>transfer level</dref>.
+</kd>
+<kt>C-c C-x 8
+<kd>
+Set <dref file="mime-en">8bit</dref> to <dref>transfer level</dref>.
+</kd>
+<kt>C-c C-x v
+<kd>
+Set current editing message to digital-sign or not. <cf node="PGP">
+</kd>
+<kt>C-c C-x h
+<kd>
+Set current editing message to encrypt or not. <cf node="PGP">
+<kt>C-c C-x ?
+<kd>
+Display help message.
+</kl>
+
+
+<h2> How to detect tag for inserted file
+<node> file-type specification
+<p>
+When <kbd>C-c C-x C-i</kbd> (<code>mime-edit-insert-file</code>) is
+pressed, tag parameters for inserted file, such as media-type or
+encoding, are detected by variable <code>mime-file-types</code>.
+<p>
+When <kbd>C-u</kbd> is followed by it or parameter is not found from
+the variable, it asks from user.  (When <kbd>C-u</kbd> is followed by
+it, detected value is used as default value)
+<p>
+If you want to change default value for file names, please change
+variable <code>mime-file-types</code>.
+
+<defvar name="mime-file-types">
+<p>
+Specification of default value of tag for file name of inserted file.
+<p>
+It is a list of following list:
+
+<lisp>
+       (FILE_PAT TYPE SUBTYPE PARAMS ENCODING
+        DISPOSITION_TYPE DISPOSITION_PARAMS)
+</lisp>
+
+Each element of the list is following:
+
+<dl>
+<dt>FILE_PAT
+<dd>regular expression of file name
+<dt>TYPE
+<dd>primary-type of media-type
+<dt>SUBTYPE
+<dd>subtype of media-type
+<dt>PARAMS
+<dd>parameters of Content-Type field
+<dt>ENCODING
+<dd>Content-Transfer-Encoding
+<dt>DISPOSITION_TYPE
+<dd>disposition-type
+<dt>DISPOSITION_PARAMS
+<dd>parameters of Content-Disposition field
+</dl>
+
+<noindent>
+Example: Specify application/rtf as default media type for
+<file>*.rtf</file>
+
+<lisp>
+(eval-after-load
+    "mime-edit"
+  '(set-alist 'mime-file-types
+             "\\.rtf$"
+             '("application" "rtf" nil nil
+               "attachment" (("filename" . file)))
+             ))
+</lisp>
+</defvar>
+
+
+<h2> transfer level
+<node> transfer level
+<p>
+Each content inserted in a message is represented by <dref
+file="mime-en">7bit</dref>, <dref file="mime-en">8bit</dref> or <dref
+file="mime-en">binary</dref>.
+<p>
+If a message is translated by 7bit-through <dref
+file="mime-en">MTA</dref>, there is no need to encode 7bit data, but
+8bit and binary data must be encoded to 7bit data.
+<p>
+Similarly, if a message is translated by 8bit-through MTA, there is no
+need to encode 7bit or 8bit data, but binary data must be encoded to
+7bit or 8bit data.
+<p>
+<memo>
+EBCDIC MTA breaks 7bit data, so in this case, 7bit data must be
+encoded by base64.  But I don't know EBCDIC. (^_^;
+<p>
+Similarly, I wish ASCII-printable only MTA and code-conversion MTA
+disappeared. (^_^;
+<p>
+Maybe there are binary-through MTA, but I think it is not major.
+</memo>
+<p>
+<concept>transfer level</concept> represents how range data are
+available.  mime-edit has a variable <code>mime-transfer-level</code>
+to represent transfer level.
+
+
+<defvar name="mime-transfer-level">
+<p>
+transfer level.
+<p>
+If transfer level of a data is over it, a data is encoded to 7bit.
+<p>
+Currently, 7 or 8 is available.  Default value is 7.
+<p>
+In extension plan, EBCDIC will be 5, ASCII printable only will be 6,
+binary will be 9.  But it will not be implemented.
+</defvar>
+
+
+<memo>
+transfer level is only for body, not for <a node="header">message
+header</a>.  MIME extends <dref file="mime-en">RFC 822</dref> to use
+8bit data in body, but it requires to use <dref
+file="mime-en">us-ascii</dref> in header.
+</memo>
+
+
+<h1> Miscellaneous
+<node> Various
+
+<h2> PGP
+<node> PGP
+<p>
+mime-edit provides PGP encryption, signature and inserting public-key
+features based on <concept>PGP/MIME</concept> (RFC 2015) or
+<concept>PGP-kazu</concept> (draft-kazu-pgp-mime-00.txt).
+<p>
+This feature requires pgp command and pgp interface package, such as
+<a file="mailcrypt">Mailcrypt package</a>.
+
+<defvar name="pgp-function-alist">
+<p>
+Alist of service names vs. corresponding functions and its filenames.
+Each element looks like <code>(SERVICE FUNCTION FILE)</code>.
+<p>
+SERVICE is a symbol of PGP processing.  It allows `verify', `decrypt',
+`fetch-key', `snarf-keys', `mime-sign', `traditional-sign', `encrypt'
+or `insert-key'.
+<p>
+Function is a symbol of function to do specified SERVICE.
+<p>
+FILE is string of filename which has definition of corresponding
+FUNCTION.
+</defvar>
+
+<defun name="pgp-function">
+           <args> method
+<p>
+Return function to do service <var>method</var>.
+</defun>
+
+
+<h2> Mouse button
+<node> Buttons
+<p>
+<defvar name="mime-button-face">
+<p>
+Face used for content-button or URL-button of MIME-Preview buffer.
+</defvar>
+
+<defvar name="mime-button-mouse-face">
+<p>
+Face used for MIME-preview buffer mouse highlighting.
+</defvar>
+
+<defvar name="mime-browse-url-function">
+<p>
+Function to browse URL.
+</defvar>
+
+
+<h2> Utility for configuration
+<node> Acting-condition configuration
+<p>
+<defun name="mime-add-condition">
+           <args> target-type condition <opts> mode file
+<p>
+Add <var>condition</var> to database specified by
+<var>target-type</var>.
+<p>
+<var>target-type</var> must be <code>preview</code> or
+<code>action</code>.
+<p>
+If optional argument <var>mode</var> is <code>strict</code> or
+<code>nil</code> (omitted), <var>condition</var> is added strictly.
+<p>
+If optional argument <var>mode</var> is <code>with-default</code>,
+<var>condition</var> is added with default rule.
+<p>
+If optional argument <var>file</var> is specified, it is loaded when
+<var>condition</var> is activate.
+</defun>
+
+
+<h1> Concept Index
+<node> Concept Index
+
+<cindex>
+
+
+<h1> Function Index
+<node> Function Index
+
+<findex>
+
+
+<h1> Variable Index
+<node> Variable Index
+
+<vindex>
+
+</body>
diff --git a/mime-ui-en.texi b/mime-ui-en.texi
new file mode 100644 (file)
index 0000000..d3c799d
--- /dev/null
@@ -0,0 +1,737 @@
+\input texinfo.tex
+@setfilename mime-ui-en.info
+@settitle{SEMI 1.8 Manual}
+@titlepage
+@title SEMI 1.8 Manual
+@author MORIOKA Tomohiko <morioka@@jaist.ac.jp>
+@subtitle 1998/07/03
+@end titlepage
+@node Top, Introduction, (dir), (dir)
+@top SEMI 1.8 Manual
+
+@ifinfo
+
+This file documents SEMI, a MIME user interface for GNU Emacs.
+@end ifinfo
+
+@menu
+* Introduction::                What is SEMI?
+* MIME-View::                   MIME message viewing
+* MIME-Edit::                   MIME message editing
+* Various::                     Miscellaneous
+* Concept Index::               
+* Function Index::              
+* Variable Index::              
+@end menu
+
+@node Introduction, MIME-View, Top, Top
+@chapter What is SEMI?
+
+SEMI is a package for GNU Emacs to provide features related with MIME
+user interface.@refill
+
+SEMI \e$B$,Ds6!$9$k\e(B MIME user interface \e$B$O\e(B MIME-View \e$B$H\e(B MIME-Edit \e$B$+$i$J$j$^\e(B
+\e$B$9!#\e(B@refill
+
+MIME-View \e$B$O\e(B MIME \e$B$d\e(B STD 11 \e$B$*$h$S!XCO0h2=$5$l$?\e(B RFC 822\e$B!Y\e(Bmessage \e$B$rI=<(\e(B
+\e$B$7$?$j!"A`:n$7$?$j$9$k$?$a$N\e(B user interface \e$B$NCf3K$G$9!#\e(B@refill
+
+MIME-Edit \e$B$O\e(B MIME message \e$B$r@8@.$9$k$?$a$N\e(B user interface \e$B$G$9!#\e(B@refill
+
+\e$B3F\e(B MUA \e$B$G$3$l$i$N5!G=$rMxMQ$9$k$3$H$K$h$j!"9bEY$J\e(B MIME \e$B5!G=$rMxMQ$9$k$3\e(B
+\e$B$H$,$G$-$^$9!#\e(B
+
+
+@node MIME-View, MIME-Edit, Introduction, Top
+@chapter MIME message viewing
+
+MIME-View \e$B$O\e(B GNU Emacs \e$B$GF0:n$9$kHFMQE*$J\e(B MIME viewer \e$B$G$9!#\e(B@refill
+
+MIME-View \e$B$O\e(B MIME message \e$B$r1\Mw$9$k$?$a$NMxMQ<T3&LL\e(B (user interface) 
+\e$B$N3K$G$"$j!"$3$N>e$G\e(B presentation-method \e$B$H8F$P$l$kI=<($r:n$k%W%m%0%i%`\e(B
+\e$B$rF0$+$7$?$j!"\e(Bacting-method \e$B$H8F$P$l$k\e(B entity \e$B$N=hM}%W%m%0%i%`$rF0$+$9\e(B
+\e$B$3$H$,2DG=$G!"$5$^$6$^$J<oN`$N\e(B entity \e$B$r07$&;v$,$G$-$k$h$&$K$J$C$F$$$^$9!#\e(B
+
+
+@menu
+* Overview of MIME-View::       Basic design
+* MIME-Preview::                Presentation of mime-preview-buffer
+* mime-view-mode::              Operation in mime-preview-buffer
+@end menu
+
+@node Overview of MIME-View, MIME-Preview, MIME-View, MIME-View
+@section Basic design
+
+Internet \e$B$NEE;R=q4J!&%M%C%H%K%e!<%9$J$I$N=qLL\e(B (message) \e$B$NI=8=7A<0$O\e(B STD
+11 \e$B$K4p$E$$$F$$$^$9!#\e(BSTD 11 \e$B$N=qLLK\BN\e(B (message body) \e$B$O9T$rM#0l$N9=B$$H\e(B
+\e$B$9$k4J0WJ8LL\e(B (plain text) \e$B$G$"$j!"J8;zId9f$b\e(B us-ascii \e$B$HDj$a$i$l$F$$$^$9!#\e(B
+\e$B<B:]$K$O!"J8;zId9f$r\e(B us-ascii \e$B$NBe$o$j$K$=$N8@8l7w$GMQ$$$i$l$kJ8;zId9f$H\e(B
+\e$B$7$?!XCO0h2=$5$l$?\e(B STD 11\e$B!Y=qLL$bMQ$$$i$l$F$-$^$7$?$,!"$3$N>l9g$b=qLL$N\e(B
+\e$BJ8;zId9f$O#1$D$G$9!#$3$N$?$a!"MxMQ<T3&LL\e(B (Message User Agent) \e$B$O!"$7$P$7\e(B
+\e$B$P!"\e(Bbyte \e$BNs\e(B = us-ascii \e$BJ8;zNs!"$J$$$7$O!"\e(Bbyte \e$BNs\e(B = \e$B$=$N8@8l7w$GMQ$$$kJ8\e(B
+\e$B;zId9f$NJ8;zNs$N$h$&$K8+Jo$7$F$-$^$7$?!#\e(B@refill
+
+\e$B$7$+$7$J$,$i!"\e(BMIME \e$B$G$O=qLL$O\e(B entity \e$B$rC10L$H$9$kLZ9=B$$K$J$j!"$^$?!"#1\e(B
+\e$B$D$N=qLL$GJ#?t$NJ8;zId9f$rMQ$$$k$3$H$,$G$-$^$9!#$^$?!"\e(Bentity \e$B$NFbMF$OJ8\e(B
+\e$BLL$d3($N$h$&$JC1=c$KI=<(2DG=$J$b$N$@$1$G$J$/!"2;@<$dF02h$J$I$N0lDj;~4V:F\e(B
+\e$B@8$5$l$k$h$&$J$b$N$dFCDj$N%"%W%j%1!<%7%g%s$N%G!<%?$d%W%m%0%i%`$N%=!<%9!"\e(B
+\e$B$"$k$$$O!"\e(Bftp \e$B$d\e(B mail service \e$B$NMxMQK!$d\e(B URL \e$B$H$$$C$?7A$GI=$5$l$?30It;2\e(B
+\e$B>H$J$I$N$5$^$6$^$J$b$N$,9M$($i$^$9!#$3$N$?$a!"I=<($@$1$r9M$($F$$$?\e(B STD
+11 \e$B$K$*$1$kMxMQ<T3&LL$NC1=c$J1dD9$G$O\e(B MIME \e$B$NA4$F$N5!G=$r07$&$3$H$O$G$-\e(B
+\e$B$^$;$s!#$D$^$j!"\e(BMIME \e$B$N7A<0$K9g$o$;$FI|9f$9$k$@$1$G$OIT==J,$G$"$j!"MxMQ\e(B
+\e$B<T$H$NBPOCE*$J:F@8=hM}$r9MN8$9$kI,MW$,$"$j$^$9!#\e(BMIME \e$B=qLL$N7A<0$O<+F0=h\e(B
+\e$BM}$,$7$d$9$/@_7W$5$l$F$$$^$9$,!"\e(BMIME \e$B=qLL$K4^$^$l$kFbMF$NCf$K$O%;%-%e%j\e(B
+\e$B%F%#!<>e$NLdBj$+$i<+F0=hM}$r$9$k$Y$-$G$J$$$b$N$,$"$j!"$3$&$$$C$?$b$N$N:F\e(B
+\e$B@8$K4X$7$F$OMxMQ<T$NH=CG$r6D$0$h$&$K@_7W$5$l$k$Y$-$G$7$g$&!#7k6I!"\e(BMIME 
+\e$B=qLL$r07$&$?$a$K$O\e(B STD 11 \e$B$*$h$S\e(B MIME \e$B$N9=J8$G5-=R$5$l$?%a%C%;!<%8$N>pJs\e(B
+\e$B8r49MQI=8=$H$=$N2r<a7k2L$G$"$kI=<(2hLL$d:F@8Ey$N=hM}$r6hJL$7$F9M$($kI,MW\e(B
+\e$B$,$"$j$^$9!#$^$?!"MxMQ<T$H$NBPOCE*$J:F@8=hM}$,I,MW$G$9!#\e(B@refill
+
+\e$B$3$N$?$a!"\e(BMIME-View \e$B$O#1$D$N=qLL$KBP$7$F!">pJs8r49MQI=8=$r3JG<$9$k\e(B 
+mime-raw-buffer \e$B$HI=<(MQI=8=$r3JG<$9$k\e(B mime-preview-buffer \e$B$N#2$D$N\e(B 
+buffer \e$B$rMQ$$$^$9!#\e(B@refill
+
+MIME-View \e$B$O\e(B mime-preview-buffer \e$B$KBP$7$F\e(B mime-view-mode \e$B$H$$$&\e(B MIME
+message \e$B$r1\Mw$9$k$?$a$N\e(B mode \e$B$rDs6!$7$^$9!#MxMQ<T$O$3$3$G3F\e(B entity \e$B$K\e(B
+\e$BBP$7$FA`:n$r9T$&$3$H$,$G$-$^$9!#\e(B
+
+
+@node MIME-Preview, mime-view-mode, Overview of MIME-View, MIME-View
+@section Presentation of mime-preview-buffer
+
+mime-view-mode \e$B$G$O3F\e(B entity \e$B$KBP$7$F\e(B@refill
+
+@example
+       [entity-button]
+       (header)
+       
+       (body)
+       (separator)
+@end example
+
+@noindent
+\e$B$H$$$&>pJs$rI=<($7$^$9!#$3$l$i$O>r7o$K=>$C$F\e(B design \e$B$rJQ99$7$?$j!"I=<(\e(B
+\e$B$rM^@)$9$k$3$H$b$G$-$^$9!#\e(B
+
+\e$B0J2<$K!"I=<(Nc$r<($7$^$9!#\e(B
+
+
+@example
+From: morioka@@jaist.ac.jp (\e$B<i2,\e(B \e$BCNI'\e(B / MORIOKA Tomohiko)
+Subject: Re: \e$B<ALd!)\e(B
+Newsgroups: zxr.message.mime
+Date: 22 Oct 93 11:02:44
+Mime-Version: 1.0
+Organization: Japan Advanced Institute of Science and Technology,
+        Ishikawa, Japan
+
+[1  (text/plain)]
+  MIME-Edit mode \e$B$K$*$1$k!"\e(BMIME message \e$B$N:n$jJ}!#\e(B
+
+  C-c C-x ? \e$B$r2!$9$H\e(B help \e$B$,=P$F$/$k!#\e(B
+
+C-c C-x C-t    insert a text message.
+C-c C-x TAB    insert a (binary) file.
+C-c C-x C-e    insert a reference to external body.
+C-c C-x C-v    insert a voice message.
+C-c C-x C-y    insert a mail or news message.
+C-c C-x RET    insert a mail message.
+C-c C-x C-s    insert a signature file at end.
+C-c C-x t      insert a new MIME tag.
+C-c C-x a      enclose as multipart/alternative.
+C-c C-x p      enclose as multipart/parallel.
+C-c C-x m      enclose as multipart/mixed.
+C-c C-x d      enclose as multipart/digest.
+C-c C-x s      enclose as PGP signed.
+C-c C-x e      enclose as PGP encrypted.
+C-c C-x C-k    insert PGP public key.
+C-c C-x C-p    preview editing MIME message.
+...
+
+\e$B$C$FLu$G!"\e(BC-c C-x C-i \e$B$r2!$7$F!"A^F~$7$?$$\e(B binary file \e$B$r;XDj$7$^$9!#\e(B
+
+  binary file \e$B$N\e(B MIME encoding \e$B$K$O!"IaDL!"\e(BBase64 \e$B$r;XDj$7$^$9!#\e(B
+
+[2  (image/gif)]
+
+[3  (text/plain)]
+
+  \e$B$3$s$JIw$K!"3(F~$j\e(B message \e$B$N$G$->e$,$j!#\e(B
+
+\e$B".".".".".".".".".".".\e(B \e$B%m%7%"%s!&%F%#!<$r0lGU!#\e(B \e$B".".".".".".".".".".".\e(B
+\e$B".".".".".\e(B  \e$B!y\e(B \e$B%8%c%`$G$O$J$/%^!<%^%l!<%I$G$b$J$/K*L*$G\e(B \e$B!y\e(B  \e$B".".".".".\e(B
+\e$B".".".".".\e(B         \e$B'.'0'2$$'0','!\e(B  \e$B'4'0'.'0'7'*','0\e(B         \e$B".".".".".\e(B
+\e$B".".".".".".".\e(B  Internet E-mail: <morioka@@jaist.ac.jp>  \e$B".".".".".".".\e(B
+@end example
+
+
+
+@menu
+* entity-button::               
+* entity-header::               
+* entity-body::                 
+@end menu
+
+@node entity-button, entity-header, MIME-Preview, MIME-Preview
+@subsection entity-button
+@cindex entity-number
+@cindex entity-button
+
+@strong{entity-button} \e$B$O\e(B entity \e$B$N@hF,$K$"$C$F!"$=$N\e(B entity \e$B$K4X$9$kBg\e(B
+\e$B$^$+$J>pJs$rI=<($9$kItJ,$G$9!#\e(B@refill
+
+\e$BI8=`$G$O\e(B
+
+@example
+        [1.3 test (text/plain)]
+@end example
+
+@noindent
+\e$B$N$h$&$J46$8$KI=<($5$l$^$9!#\e(B
+
+\e$B:G=i$N?t;z$O\e(B message \e$BCf$N$3$N\e(B entity \e$B$N0LCV$r@aHV9f$N$h$&$KI=$7$?$b$N$G!"\e(B
+@strong{entity-number} \e$B$H8F$S$^$9!#\e(B@refill
+
+\e$B#2HVL\$NJ8;zNs$OI=Bj$rI=$7$^$9!#$3$N>pJs$O!"\e(B
+
+@enumerate
+@item
+Content-Description field \e$B$b$7$/$O\e(B Subject field \e$B$K=q$+$l$?I=Bj\e(B
+@item
+Content-Disposition field \e$B$N\e(B filename parameter \e$B$K=q$+$l$?\e(B file \e$BL>\e(B
+@item
+Content-Type field \e$B$N\e(B name parameter \e$B$K=q$+$l$?\e(B file \e$BL>\e(B
+@item
+ uuencode \e$B$N>l9g$N\e(B file \e$BL>\e(B
+@end enumerate
+
+@noindent
+\e$B$+$i:n$j$^$9!#$I$l$bB8:_$7$J$$>l9g$O6uGr$,I=<($5$l$^$9!#\e(B
+
+\e$B#3HVL\$N3g8L$NCf$N>pJs$O$=$N\e(B entity \e$B$N\e(B media-type/subtype \e$B$rI=$7$^$9!#Hs\e(B 
+MIME entity \e$B$N>l9g!"\e(B@code{nil} \e$B$,I=<($5$l$^$9!#\e(B@refill
+
+\e$B$3$N\e(B entity-button \e$B$O\e(B entity \e$B$NFbMF$r>]D'$9$k\e(B icon \e$B$N$h$&$JLr3d$r2L$?\e(B
+\e$B$7$^$9!#Nc$($P!"\e(B
+
+@example
+        [2  (image/gif)]
+@end example
+
+@noindent
+\e$B$N>e$G\e(B @kbd{v} \e$B$r2!$;$P$3$3$KF~$C$F$$$k3($,I=<($5$l$^$9!#\e(B
+
+\e$B$^$?!"\e(Bmouse \e$BA`:n$,2DG=$J>l9g!"\e(Bentity-button \e$B$rBh#2%\%?%s!J\e(B3 button
+mouse \e$B$N>l9g!"Cf1{$N%\%?%s!K$G2!$;$P!"F1MM$K$=$N3($,I=<($5$l$^$9!#\e(B
+
+
+@node entity-header, entity-body, entity-button, MIME-Preview
+@subsection entity-header
+@cindex entity-header
+
+@strong{entity-header} \e$B$O$"$k\e(B entity \e$B$N\e(B header \e$B$rI=<($9$kIt\e(B
+\e$BJ,$G$9!J!V$=$N$^$^$d$s$1!W$C$FE\$i$J$$$G!#$=$&$$$&$b$s$J$s$G$9!K!#\e(B
+
+
+@node entity-body,  , entity-header, MIME-Preview
+@subsection entity-body
+@cindex entity-body
+
+@strong{entity-body} \e$B$O\e(B part \e$B$NFbMF$rI=<($9$kItJ,$G$9!#\e(B@refill
+
+\e$B$3$l$b$R$M$j$,B-$j$J$$$G$9$,!"$^$"!"$=$&$$$&$b$s$G$9!#\e(B@refill
+
+\e$B$H$O$$$(!"<B:]$K$O>/$7$R$M$C$F$^$9!#\e(B@refill
+
+text entity \e$B$N>l9g$O\e(B charset \e$B$K1~$8$F\e(B code \e$BJQ49$7$?$j$7$^$9$7!"\e(BXEmacs \e$B$G\e(B
+\e$B$O\e(B image entity \e$B$rJQ49$7$J$$$H$$$1$J$$$7!#\e(B@refill
+
+\e$B>\$7$/$O$^$?8e$G!#\e(B
+
+
+@node mime-view-mode,  , MIME-Preview, MIME-View
+@section Operation in mime-preview-buffer
+
+mime-preview-buffer \e$B$K$O0J2<$N5!G=$,$"$j$^$9!#\e(B@refill
+
+@table @kbd
+@item @key{u}
+\e$B>e$N\e(B part \e$B$KLa$k!J\e(Bmessage \e$B$N0lHV>e$N\e(B part \e$B$G$3$l$r9T$J$&$H\e(B Summary
+mode \e$B$KLa$k\e(B (*1)\e$B!K\e(B
+
+@item @key{p}
+\e$BA0$N\e(B part \e$B$K0\F0$9$k\e(B
+
+@item @key{M-TAB}
+\e$BA0$N\e(B part \e$B$K0\F0$9$k\e(B
+
+@item @key{n}
+\e$B<!$N\e(B part \e$B$K0\F0$9$k\e(B
+
+@item @key{TAB}
+\e$B<!$N\e(B part \e$B$K0\F0$9$k\e(B
+
+@item @key{SPC}
+scroll up \e$B$9$k\e(B
+
+@item @key{M-SPC}
+scroll down \e$B$9$k\e(B
+
+@item @key{DEL}
+scroll down \e$B$9$k\e(B
+
+@item @key{RET}
+\e$B<!$N9T$K0\F0$9$k\e(B
+
+@item @key{M-RET}
+\e$BA0$N9T$K0\F0$9$k\e(B
+
+@item @key{v}
+part \e$B$r:F@8$9$k\e(B (*2)
+
+@item @key{e}
+part \e$B$+$i\e(B file \e$B$r<h$j=P$9\e(B (*2)
+
+@item @key{C-c C-p}
+part \e$B$r0u:~$9$k\e(B (*2)
+
+@item @key{mouse-button-2}
+preview-buffer \e$BCf$N\e(B mouse button \e$B$r5/F0$9$k\e(B
+
+content-button \e$B$r2!$;$P!"$=$N\e(B part \e$B$,:F@8$5$l$k\e(B(*2)@refill
+
+URL-button \e$B$r2!$;$P!"$=$N\e(B WWW browser \e$B$,5/F0$5$l$k\e(B@refill
+
+@end table
+
+@noindent
+@strong{[\e$BCm0U\e(B]}
+@quotation
+
+(*1) MUA \e$B$G\e(B mime-view \e$B$N@_Dj$r$7$F$$$J$$>l9g!"\e(BSummary mode \e$B$K$OLa$j$^$;\e(B
+\e$B$s!#\e(B@refill
+
+(*2) \e$B<B:]$NF0:n$OBP1~$9$k\e(B method \e$B$K0M$j$^$9!#\e(B
+@end quotation
+
+
+
+@node MIME-Edit, Various, MIME-View, Top
+@chapter MIME message editing
+@cindex MIME-Edit
+
+@strong{MIME-Edit} is a general MIME composer for GNU Emacs.
+
+
+@menu
+* mime-edit-mode::              Minor-mode to edit MIME message
+* single-part tags::            Operations for single-part
+* enclosure tags::              Operations for enclosure
+* other MIME-Edit operations::  Other operations
+* file-type specification::     How to detect tag for inserted file
+* transfer level::              
+@end menu
+
+@node mime-edit-mode, single-part tags, MIME-Edit, MIME-Edit
+@section Minor-mode to edit MIME message
+@cindex enclosure
+@cindex multi-part ending tag
+@cindex multi-part beginning tag
+@cindex tag
+@cindex mime-edit-mode
+
+@strong{mime-edit-mode} is a minor mode to compose MIME message.  In
+this mode, @strong{tag} represents various kinds of data, so you can
+edit multi part message consists of various kinds of data, such as text,
+image, audio, etc.@refill
+
+There are 2 kinds of tags:
+
+@itemize @bullet
+@item
+ single-part tag
+@item
+ multi-part tag
+@end itemize
+
+single-part tag represents single part, this form is following:@refill
+
+@example
+        --[[TYPE/SUBTYPE;PARAMETERS][ENCODING]
+        OPTIONAL-FIELDS]
+@end example
+
+TYPE/SUBTYPE and PARAMETERS indicates type/subtype and parameters of
+Content-Type (@ref{(mime-en)Content-Type}) field.  TYPE/SUBTYPE is
+required, PARAMETERS is optional.@refill
+
+ENCODING indicates Content-Transfer-Encoding
+(@ref{(mime-ja)Content-Transfer-Encoding}) field.  It is optional
+too.@refill
+
+OPTIONAL-FIELDS is to represent another fields except Content-Type field
+and Content-Transfer-Encoding field.@refill
+
+multi-part tags represent multi part (@ref{(mime-en)multipart}).  They
+consist of a pair of @strong{multi-part beginning tag} and
+@strong{multi-part ending tag}.@refill
+
+multi-part beginning tag's form is following:
+
+@example
+        --<<TYPE>>-@{
+@end example
+
+multi-part ending tag's form is following:
+
+@example
+        --@}-<<TYPE>>
+@end example
+
+A region from multi-part beginning tag to multi-part ending tag is
+called as @strong{enclosure}.
+
+
+@node single-part tags, enclosure tags, mime-edit-mode, MIME-Edit
+@section Operations for single-part
+
+Operations to make single-part are following:
+
+@table @kbd
+@item @key{C-c C-x C-t}
+Insert single-part tag indicates text part.
+
+@item @key{C-c C-x C-i}
+Insert file as a MIME attachment.  If @kbd{C-u} is followed by it, it
+asks media-type, subtype or encoding even if their default values are
+specified. (cf. @ref{tag specification for inserted file})
+
+@item @key{C-c C-x C-e}
+Insert external part.
+
+@item @key{C-c C-x C-v}
+Record audio input until @kbd{C-g} is pressed, and insert as a
+audio part. (It requires /dev/audio in default.)
+
+@item @key{C-c C-x C-y}
+Insert current (mail or news) message. (It is MUA depended.)
+
+@item @key{C-c C-x C-m}
+Insert mail message. (It is MUA depended.)
+
+@item @key{C-c C-x C-w}, @key{C-c C-x C-s}
+Insert signature.
+
+@item @key{C-c C-x C-k}
+Insert PGP (@ref{PGP}) public key. (It requires Mailcrypt package.)
+
+@item @key{C-c C-x t}
+Insert any single-part tag.
+
+@end table
+
+
+
+@node enclosure tags, other MIME-Edit operations, single-part tags, MIME-Edit
+@section Operations for enclosure
+
+Operations to make enclosure are following:
+
+@table @kbd
+@item @key{C-c C-m C-a}
+Enclose specified region as multipart/alternative.
+
+@item @key{C-c C-x C-p}
+Enclose specified region as multipart/parallel.
+
+@item @key{C-c C-x C-m}
+Enclose specified region as multipart/mixed.
+
+@item @key{C-c C-x C-d}
+Enclose specified region as multipart/digest.
+
+@item @key{C-c C-x C-s}
+Digital-sign to specified region. (cf. @ref{PGP})
+
+@item @key{C-c C-x C-e}
+Encrypt to specified region. (cf. @ref{PGP})
+
+@item @key{C-c C-x C-q}
+avoid to encode tags in specified region.  In other words, tags is
+interpreted as such string.  (In current version, it may be
+incomplete.  Maybe PGP-signature does not work for this enclosure.)
+
+@end table
+
+
+
+@node other MIME-Edit operations, file-type specification, enclosure tags, MIME-Edit
+@section Other operations
+
+There are another operations in mime-edit-mode.
+
+@table @kbd
+@item @key{C-c C-c}
+Send current editing message.
+
+@item @key{C-c C-x p}
+Preview current editing message. (cf. @ref{MIME-View})
+
+@item @key{C-c C-x C-z}
+Exit mime-edit-mode without sending.
+
+@item @key{C-c C-x /}
+Set current editing message to enable automatic splitting or not.
+Form of automatic split messages is message/partial.
+
+@item @key{C-c C-x 7}
+Set 7bit (@ref{(mime-en)7bit}) to transfer level (@ref{transfer level}).
+
+@item @key{C-c C-x 8}
+Set 8bit (@ref{(mime-en)8bit}) to transfer level (@ref{transfer level}).
+
+@item @key{C-c C-x v}
+Set current editing message to digital-sign or not. (cf. @ref{PGP})
+
+@item @key{C-c C-x h}
+Set current editing message to encrypt or not. (cf. @ref{PGP})
+
+@item @key{C-c C-x ?}
+Display help message.
+
+@end table
+
+
+
+@node file-type specification, transfer level, other MIME-Edit operations, MIME-Edit
+@section How to detect tag for inserted file
+
+When @kbd{C-c C-x C-i} (@code{mime-edit-insert-file}) is pressed, tag
+parameters for inserted file, such as media-type or encoding, are
+detected by variable @code{mime-file-types}.@refill
+
+When @kbd{C-u} is followed by it or parameter is not found from the
+variable, it asks from user.  (When @kbd{C-u} is followed by it,
+detected value is used as default value)@refill
+
+If you want to change default value for file names, please change
+variable @code{mime-file-types}.
+
+@defvar mime-file-types
+
+Specification of default value of tag for file name of inserted
+file.@refill
+
+It is a list of following list:
+
+@lisp
+       (FILE_PAT TYPE SUBTYPE PARAMS ENCODING
+        DISPOSITION_TYPE DISPOSITION_PARAMS)
+@end lisp
+
+
+Each element of the list is following:
+
+@table @samp
+@item FILE_PAT
+regular expression of file name
+
+@item TYPE
+primary-type of media-type
+
+@item SUBTYPE
+subtype of media-type
+
+@item PARAMS
+parameters of Content-Type field
+
+@item ENCODING
+Content-Transfer-Encoding
+
+@item DISPOSITION_TYPE
+disposition-type
+
+@item DISPOSITION_PARAMS
+parameters of Content-Disposition field
+
+@end table
+
+@noindent
+Example: Specify application/rtf as default media type for
+@file{*.rtf}
+
+@lisp
+(eval-after-load
+    "mime-edit"
+  '(set-alist 'mime-file-types
+             "\\.rtf$"
+             '("application" "rtf" nil nil
+               "attachment" (("filename" . file)))
+             ))
+@end lisp
+@end defvar
+
+
+
+@node transfer level,  , file-type specification, MIME-Edit
+@section transfer level
+@cindex transfer level
+
+Each content inserted in a message is represented by 7bit
+(@ref{(mime-en)7bit}), 8bit (@ref{(mime-en)8bit}) or binary
+(@ref{(mime-en)binary}).@refill
+
+If a message is translated by 7bit-through MTA (@ref{(mime-en)MTA}),
+there is no need to encode 7bit data, but 8bit and binary data must be
+encoded to 7bit data.@refill
+
+Similarly, if a message is translated by 8bit-through MTA, there is no
+need to encode 7bit or 8bit data, but binary data must be encoded to
+7bit or 8bit data.@refill
+
+@noindent
+@strong{[Memo]}
+@quotation
+EBCDIC MTA breaks 7bit data, so in this case, 7bit data must be
+encoded by base64.  But I don't know EBCDIC. (^_^;
+
+Similarly, I wish ASCII-printable only MTA and code-conversion MTA
+disappeared. (^_^;@refill
+
+Maybe there are binary-through MTA, but I think it is not major.
+@end quotation
+
+@strong{transfer level} represents how range data are
+available.  mime-edit has a variable @code{mime-transfer-level}
+to represent transfer level.
+
+
+@defvar mime-transfer-level
+
+transfer level.@refill
+
+If transfer level of a data is over it, a data is encoded to
+7bit.@refill
+
+Currently, 7 or 8 is available.  Default value is 7.@refill
+
+In extension plan, EBCDIC will be 5, ASCII printable only will be 6,
+binary will be 9.  But it will not be implemented.
+@end defvar
+
+
+
+@noindent
+@strong{[Memo]}
+@quotation
+transfer level is only for body, not for message header (@ref{header}).
+MIME extends RFC 822 (@ref{(mime-en)RFC 822}) to use 8bit data in body,
+but it requires to use us-ascii (@ref{(mime-en)us-ascii}) in header.
+@end quotation
+
+
+
+@node Various, Concept Index, MIME-Edit, Top
+@chapter Miscellaneous
+
+
+@menu
+* PGP::                         
+* Buttons::                     Mouse button
+* Acting-condition configuration::  Utility for configuration
+@end menu
+
+@node PGP, Buttons, Various, Various
+@section PGP
+@cindex PGP-kazu
+@cindex PGP/MIME
+
+mime-edit provides PGP encryption, signature and inserting public-key
+features based on @strong{PGP/MIME} (RFC 2015) or @strong{PGP-kazu}
+(draft-kazu-pgp-mime-00.txt).@refill
+
+This feature requires pgp command and pgp interface package, such as
+Mailcrypt package (@ref{(mailcrypt)}).
+
+@defvar pgp-function-alist
+
+Alist of service names vs. corresponding functions and its filenames.
+Each element looks like @code{(SERVICE FUNCTION FILE)}.@refill
+
+SERVICE is a symbol of PGP processing.  It allows `verify', `decrypt',
+`fetch-key', `snarf-keys', `mime-sign', `traditional-sign', `encrypt' or
+`insert-key'.@refill
+
+Function is a symbol of function to do specified SERVICE.@refill
+
+FILE is string of filename which has definition of corresponding
+FUNCTION.
+@end defvar
+
+
+@defun pgp-function method
+
+Return function to do service @var{method}.
+@end defun
+
+
+
+@node Buttons, Acting-condition configuration, PGP, Various
+@section Mouse button
+
+@defvar mime-button-face
+
+Face used for content-button or URL-button of MIME-Preview buffer.
+@end defvar
+
+
+@defvar mime-button-mouse-face
+
+Face used for MIME-preview buffer mouse highlighting.
+@end defvar
+
+
+@defvar mime-browse-url-function
+
+Function to browse URL.
+@end defvar
+
+
+
+@node Acting-condition configuration,  , Buttons, Various
+@section Utility for configuration
+
+@defun mime-add-condition target-type condition  &optional  mode file
+
+Add @var{condition} to database specified by @var{target-type}.@refill
+
+@var{target-type} must be @code{preview} or @code{action}.@refill
+
+If optional argument @var{mode} is @code{strict} or @code{nil}
+(omitted), @var{condition} is added strictly.@refill
+
+If optional argument @var{mode} is @code{with-default}, @var{condition}
+is added with default rule.@refill
+
+If optional argument @var{file} is specified, it is loaded when
+@var{condition} is activate.
+@end defun
+
+
+
+@node Concept Index, Function Index, Various, Top
+@chapter Concept Index
+
+@printindex cp
+
+@node Function Index, Variable Index, Concept Index, Top
+@chapter Function Index
+
+@printindex fn
+
+@node Variable Index,  , Function Index, Top
+@chapter Variable Index
+
+@printindex vr
+@bye