UTILS = ol2 decode-b
METHODS = tm-au tm-file tm-image tm-latex tm-mpeg
-OLFILES = tiny-mime-jp.ol signature-jp.ol tiny-mime-eng.ol
-TEXFILES= tiny-mime-jp.tex signature-jp.tex tiny-mime-eng.tex
-DVIFILES= tm-jp.dvi \
- tiny-mime-jp.dvi signature-jp.dvi tiny-mime-eng.dvi
-PSFILES = tm-jp.ps \
- tiny-mime-jp.ps signature-jp.ps tiny-mime-eng.ps
-GOMI = *.aux *.toc *.log $(TEXFILES) $(DVIFILES) *.ps $(UTILS)
+GOMI = $(UTILS)
+FILES = README.eng Makefile *.el *.c methods doc
-FILES = README.eng *.ol *.pln \
- Makefile *.el *.c methods tm-jp.tex $(TEXFILES)
-
-TARFILE = tm5.5.tar
-
-.SUFFIXES: .ol .tex .dvi .ps
-
-.ol.tex:
- ol2 < $< | plain2 -tex -tstyle=a4j > $@
-
-.tex.dvi:
- jlatex $<
-
-.dvi.ps:
- dvi2ps $< > $@
+TARFILE = tm5.9.tar
all: $(UTILS) $(DVI)
$(CC) $(CFLAGS) decode-b.c -o decode-b
-tex: $(TEXFILES)
-
-$(TEXFILES): $(OLFILES)
-
-
-dvi: $(DVIFILES)
-
-$(DVIFILES): $(TEXFILES)
-
+tex: ol2
+ (cd doc; make tex)
-ps: $(PSFILES)
+dvi: ol2
+ (cd doc; make dvi)
-$(PSFILES): $(DVIFILES)
+ps: ol2
+ (cd doc; make ps)
install: $(UTILS) methods
clean:
rm $(GOMI)
+ (cd doc; make clean)
tar: $(FILES)
+ (cd doc; make tex)
tar cvf $(TARFILE) $(FILES)
gzip -9 $(TARFILE)
[README for tm (English Version)]
by MORIOKA Tomohiko <morioka@jaist.ac.jp>
-1994/09/26
+1994/10/17
1 What's tm?
- MIME extenders for mh-e, GNUS and RMAIL
-2 Modules
+2 Documents
+
+This package includes following documents.
+
+(1) English edition
+
+- doc/tm-eng.tex : tm Reference Manual (LaTeX)
+- doc/tiny-mime-eng.ol : tiny-mime.el Reference Manual (Emacs Outline)
+- doc/tiny-mime-eng.tex : tiny-mime.el Reference Manual (LaTeX)
+
+(2) Japanese edition
+
+- doc/tm-jp.tex : tm Reference Manual (LaTeX)
+- doc/tiny-mime-jp.ol : tiny-mime.el Reference Manual (Emacs Outline)
+- doc/tiny-mime-jp.tex : tiny-mime.el Reference Manual (LaTeX)
+- doc/signature-jp.ol : signature.el Reference Manual (Emacs Outline)
+- doc/signature-jp.tex : signature.el Reference Manual (LaTeX)
+
+
+3 Modules
Tm has following modules:
- tm-view : MIME viewer
- tm-misc : library module for tm-MUAs
- tm-MUAs : MIME extender for MUAs
- - tm-mh-e : tm-MUA for mh-e
- - tm-gnus : tm-MUA for GNUS
+ - tm-mh-e : tm-MUA for mh-e
+ - tm-gnus : tm-MUA for GNUS
- tm-rmail : tm-MUA for RMAIL
+ - tm-vm : tm-MUA for vm
- tm-setup: set up module for tm-MUAs
- mime-setup: set up module for MIME
-3 Install
+4 Install
(1) Edit Makefile for your environment.
(5) Copy *.el to your emacs lisp directory.
-4 .emacs
+5 .emacs
Please insert (load "mime-setup") or (load "tm-setup") in .emacs. If
you use mime-setup, you should prepare mime.el.
+If you want use vm, please insert following in .vm or .emacs:
+
+ (load "tm-vm")
+
-5 How to use mime/viewer-mode
+6 How to use mime/viewer-mode
In tm-MUAs, you can use mime/viewer-mode if you press `v' key in
Summary mode. mime/viewer-mode has following functions:
--- /dev/null
+OLFILES = tiny-mime-jp.ol signature-jp.ol tiny-mime-eng.ol
+TEXFILES= tiny-mime-jp.tex signature-jp.tex tiny-mime-eng.tex
+DVIFILES= tm-jp.dvi tm-eng.dvi \
+ tiny-mime-jp.dvi signature-jp.dvi tiny-mime-eng.dvi
+PSFILES = tm-jp.ps \
+ tiny-mime-jp.ps signature-jp.ps tiny-mime-eng.ps
+GOMI = *.aux *.toc *.log $(TEXFILES) $(DVIFILES) *.ps *~
+
+.SUFFIXES: .ol .tex .dvi .ps
+
+.ol.tex:
+ ol2 < $< | plain2 -tex -tstyle=a4j > $@
+
+.tex.dvi:
+ jlatex $<
+ jlatex $<
+
+.dvi.ps:
+ dvi2ps $< > $@
+
+all: $(DVI)
+
+tex: $(TEXFILES)
+
+$(TEXFILES): $(OLFILES)
+
+
+dvi: $(DVIFILES)
+
+$(DVIFILES): $(TEXFILES)
+
+
+ps: $(PSFILES)
+
+$(PSFILES): $(DVIFILES)
+
+clean:
+ rm $(GOMI)
--- /dev/null
+\e$B!X\e(Bsignature.el \e$B@bL@=q!Y\e(B
+by. \e$B2,It\e(B \e$B<wCK\e(B
+1994\e$BG/\e(B8\e$B7n\e(B1\e$BF|\e(B
+
+ signature.el \e$B$O\e(B signature \e$B$N<+F0@ZBX$(\e(B tool \e$B$G$9!#\e(B*insert-signature*
+\e$B$r9T$&$3$H$K$h$j!"\e(B`signature-insert-at-eof' \e$B$NCM$,\e(B non-nil \e$B$N$H$-%P%C\e(B
+\e$B%U%!$NKvHx$K!"\e(Bnil \e$B$N$H$-$O%+%l%s%H%]%$%s%H$K!"\e(Bsignature \e$B%U%!%$%k$,FI$_\e(B
+\e$B9~$^$l$^$9!#I8=`E*$J\e(Bsignature \e$B$O!"JQ?t\e(B `signature-file-name' \e$B$G;XDj$7\e(B
+\e$B$F2<$5$$\e(B(\e$B%G%U%)%k%HCM$O\e(B "~/.signature")\e$B!#\e(Bmessage header \e$B$N\e(B field \e$B$K9g\e(B
+\e$B$o$;$F\e(B signature \e$B$N<+F0@ZBX$r9T$J$$$?$$>l9g$O\e(B .emacs \e$B$K0J2<$N$h$&$J$b\e(B
+\e$B$N$rF~$l$F2<$5$$!#\e(B
+
+[[E
+----------------------------------------------------------------------
+(setq signature-file-alist
+ '(
+ (("Newsgroups" . "jokes") . "~/.signature-jokes")
+ (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun")
+ (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun")
+ (("To" . "tea") . "~/.signature-jokes")
+ (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal")
+ ))
+----------------------------------------------------------------------
+]]E
+
+ \e$B$^$?!"\e(B*insert-signature* \e$B$K?t0z?t$rM?$($k$3$H$K$h$j!"BPOCE*$K\e(B
+`signature-file-name'-DISTRIBUTION \e$B$N7A$NL>A0$r;}$D%U%!%$%k$r;XDj\e(B
+\e$B$9$k$3$H$,$G$-$^$9!#Nc$($P\e(B `C-u C-c C-s'(*insert-signature*) \e$B$H\e(B
+\e$BF~NO$9$k$H!"%_%K%P%C%U%!$G\e(B
+
+ Insert your signature: ~/.signature-
+
+\e$B$HJ9$$$F$-$^$9$N$G!"@ZBXMQ$KMQ0U$5$l$?%U%!%$%k$N$J$+$+$i!"5a$a$k$b$N$r\e(B
+\e$B%3%s%W%j!<%7%g%s$r;H$C$FMQ0U$KA*Br$9$k$3$H$,$G$-$^$9!#6uJ8;zNs$r\e(B
+\e$BF~NO$9$l$P!"\e(B`signature-file-name' \e$B$G;XDj$5$l$k%U%!%$%k$,FI$_9~$^$l$^$9!#\e(B
--- /dev/null
+\documentstyle[a4j]{jarticle}
+\setcounter{secnumdepth}{6}
+\setcounter{tocdepth}{6}
+\topsep=0.1cm
+\parsep=0.1cm
+\itemsep=0.0cm
+\begin{document}
+\title{
+signature.el ÀâÌÀ½ñ}
+\author{
+²¬Éô ¼÷ÃË\\
+}
+\date{
+1994ǯ8·î1Æü}
+\maketitle
+\medskip
+\par
+signature.el ¤Ï signature ¤Î¼«Æ°ÀÚÂؤ¨ tool ¤Ç¤¹¡£*insert-signature*
+¤ò¹Ô¤¦¤³¤È¤Ë¤è¤ê¡¢`signature-insert-at-eof' ¤ÎÃͤ¬ non-nil ¤Î¤È¤¥Ð¥Ã
+¥Õ¥¡¤ÎËöÈø¤Ë¡¢nil ¤Î¤È¤¤Ï¥«¥ì¥ó¥È¥Ý¥¤¥ó¥È¤Ë¡¢signature ¥Õ¥¡¥¤¥ë¤¬Æɤß
+¹þ¤Þ¤ì¤Þ¤¹¡£É¸½àŪ¤Êsignature ¤Ï¡¢ÊÑ¿ô `signature-file-name' ¤Ç»ØÄꤷ
+¤Æ²¼¤µ¤¤(¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï "\verb+~+/.signature")¡£message header ¤Î field ¤Ë¹ç
+¤ï¤»¤Æ signature ¤Î¼«Æ°ÀÚÂؤò¹Ô¤Ê¤¤¤¿¤¤¾ì¹ç¤Ï .emacs ¤Ë°Ê²¼¤Î¤è¤¦¤Ê¤â
+¤Î¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£
+\medskip
+{\baselineskip=10pt
+\begin{verbatim}
+----------------------------------------------------------------------
+(setq signature-file-alist
+ '(
+ (("Newsgroups" . "jokes") . "~/.signature-jokes")
+ (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun")
+ (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun")
+ (("To" . "tea") . "~/.signature-jokes")
+ (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal")
+ ))
+----------------------------------------------------------------------
+\end{verbatim}}
+\medskip
+\par
+¤Þ¤¿¡¢*insert-signature* ¤Ë¿ô°ú¿ô¤òÍ¿¤¨¤ë¤³¤È¤Ë¤è¤ê¡¢ÂÐÏÃŪ¤Ë
+`signature-file-name'-DISTRIBUTION ¤Î·Á¤Î̾Á°¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤ò»ØÄê
+¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£Î㤨¤Ð `C-u C-c C-s'(*insert-signature*) ¤È
+ÆþÎϤ¹¤ë¤È¡¢¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤Ç
+\medskip
+{\list{}{\leftmargin=4ex}\item[]
+\begin{description}
+\item[Insert your signature:]\verb+~+/.signature-
+\medskip
+\end{description}
+\endlist}
+\par
+¤Èʹ¤¤¤Æ¤¤Þ¤¹¤Î¤Ç¡¢ÀÚÂØÍѤËÍÑ°Õ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¤Ê¤«¤«¤é¡¢µá¤á¤ë¤â¤Î¤ò
+¥³¥ó¥×¥ê¡¼¥·¥ç¥ó¤ò»È¤Ã¤ÆÍÑ°Õ¤ËÁªÂò¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¶õʸ»úÎó¤ò
+ÆþÎϤ¹¤ì¤Ð¡¢`signature-file-name' ¤Ç»ØÄꤵ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤Þ¤ì¤Þ¤¹¡£
+\end{document}
--- /dev/null
+[[R
+\title{tiny-mime manual (English Version)}
+\author{Morioka Tomohiko}
+\date{1994/8/4}
+\maketitle
+]]R
+
+* Overview
+
+ tiny-mime is a multilingual MIME style message header
+encoder/decoder based on RFC 1522 for Mule, NEmacs, and NEpoch. I
+modified Mr.Enami's ISO-2022-JP Base64 MIME header decoder and make
+it. Mr.Enami's program can decode only ISO-2022-JP Base64 header. But,
+current tiny-mime has following functions:
+
+ - unfolding at decoding
+ - encoding/decoding multilingual character sets, such as,
+ ISO-2022-JP, ISO-2022-JP-2, ISO-2022-CN, ISO-2022-KR, ISO-8859-*,
+ US-ASCII, EUC-KR
+ - B and Q-encoding
+
+
+* character set and encoding
+
+** Mule
+
+ Mule can use multilingual text, so in Mule, tiny-mime supports
+ISO-2022-JP, ISO-2022-JP-2, US-ASCII, ISO-8859-1..9, ISO-2022-CN,
+ISO-2022-KR, EUC-KR, et al.
+
+ Additionally, you can add or change encoding/decoding for character
+sets by function mime/set-charset-and-encoding.
+
+** NEmacs and NEpoch
+
+ NEmacs can use Japanese and English only, so in NEmacs, tiny-mime
+supports encoding/decoding only ISO-2022-JP and US-ASCII.
+
+ And decoding ISO-8859-* encoded-words if they includes only ASCII.
+
+
+* How to use tiny-mime.el (simple way)
+
+** decoding
+
+ Please load tiny-mime.el, and do following command on the buffer
+which you want to decode.
+
+ M-x mime/decode-message-header
+
+ And you can decode region by
+
+ M-x mime/decode-region
+
+** encoding
+
+ Please load tiny-mime.el, and do following command on the buffer
+which you want to encode.
+
+ M-x mime/encode-message-header
+
+
+
+* variables
+
+** mime/no-encoding-header-fields
+
+ You can specify list of fields which you don't want to
+encode. Default value is ("X-Nsubject").
+
+example: don't encode Subject and X-Nsubject fields
+
+[[E
+----------------------------------------------------------------------
+(setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
+----------------------------------------------------------------------
+]]E
+
+
+* How to add or change character sets
+
+ In Mule, you can add or change character sets by function
+mime/set-charset-and-encoding.
+
+ Function: mime/set-charset-and-encoding lc cs charset encoding
+
+ lc: leading-char
+ cs: coding-system. Please specify nil if you don't want to use
+ coding-system for 1 octet character.
+ charset: MIME character set
+ encoding: encoding method for encoder
+
+
+example 1: encode EUC-KR B encoding for KS C5601-1987 characters
+
+ (mime/set-charset-and-encoding lc-kr *euc-kr* "EUC-KR" "B")
+
+
+example 2: encode/decode koi8-r Q encoding
+
+ (mime/set-charset-and-encoding lc-prv11 nil "KOI8-R" "Q")
+
+[WARNING] In this version, handling for private character is very ad
+hoc. (^_^; I want to improve.
--- /dev/null
+\documentstyle[a4j]{jarticle}
+\setcounter{secnumdepth}{6}
+\setcounter{tocdepth}{6}
+\topsep=0.1cm
+\parsep=0.1cm
+\itemsep=0.0cm
+\begin{document}
+\title{tiny-mime manual (English Version)}
+\author{Morioka Tomohiko}
+\date{1994/8/4}
+\maketitle
+\medskip
+
+\section{Overview}
+\medskip
+\par
+tiny-mime is a multilingual MIME style message header
+encoder/decoder based on RFC 1522 for Mule, NEmacs, and NEpoch. I
+modified Mr.Enami's ISO-2022-JP Base64 MIME header decoder and make
+it. Mr.Enami's program can decode only ISO-2022-JP Base64 header. But,
+current tiny-mime has following functions:
+\medskip
+\begin{itemize}
+\item unfolding at decoding
+\item encoding/decoding multilingual character sets, such as,
+ISO-2022-JP, ISO-2022-JP-2, ISO-2022-CN, ISO-2022-KR, ISO-8859-*,
+US-ASCII, EUC-KR
+\item B and Q-encoding
+\medskip
+\medskip
+\end{itemize}
+
+\section{character set and encoding}
+\medskip
+
+\subsection{Mule}
+\medskip
+\par
+Mule can use multilingual text, so in Mule, tiny-mime supports
+ISO-2022-JP, ISO-2022-JP-2, US-ASCII, ISO-8859-1..9, ISO-2022-CN,
+ISO-2022-KR, EUC-KR, et al.
+\medskip
+\par
+Additionally, you can add or change encoding/decoding for character
+sets by function mime/set-charset-and-encoding.
+\medskip
+
+\subsection{NEmacs and NEpoch}
+\medskip
+\par
+NEmacs can use Japanese and English only, so in NEmacs, tiny-mime
+supports encoding/decoding only ISO-2022-JP and US-ASCII.
+\medskip
+\par
+And decoding ISO-8859-* encoded-words if they includes only ASCII.
+\medskip
+\medskip
+
+\section{How to use tiny-mime.el (simple way)}
+\medskip
+
+\subsection{decoding}
+\medskip
+{\baselineskip=10pt
+\begin{verbatim}
+ Please load tiny-mime.el, and do following command on the buffer
+which you want to decode.
+\end{verbatim}}
+\medskip
+{\list{}{\leftmargin=8ex}\item[]
+\par
+M-x mime/decode-message-header
+\endlist}
+\medskip
+{\baselineskip=10pt
+\begin{verbatim}
+ And you can decode region by
+\end{verbatim}}
+\medskip
+{\baselineskip=10pt
+\begin{verbatim}
+ M-x mime/decode-region
+\end{verbatim}}
+\medskip
+
+\subsection{encoding}
+\medskip
+{\baselineskip=10pt
+\begin{verbatim}
+ Please load tiny-mime.el, and do following command on the buffer
+which you want to encode.
+\end{verbatim}}
+\medskip
+{\list{}{\leftmargin=8ex}\item[]
+\par
+M-x mime/encode-message-header
+\endlist}
+\medskip
+\medskip
+\medskip
+
+\section{variables}
+\medskip
+
+\subsection{mime/no-encoding-header-fields}
+\medskip
+\par
+You can specify list of fields which you don't want to
+encode. Default value is ("X-Nsubject").
+\medskip
+\begin{description}
+\item[example:]don't encode Subject and X-Nsubject fields
+\medskip
+\end{description}
+{\baselineskip=10pt
+\begin{verbatim}
+----------------------------------------------------------------------
+(setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
+----------------------------------------------------------------------
+\end{verbatim}}
+\medskip
+\medskip
+
+\section{How to add or change character sets}
+\medskip
+\par
+In Mule, you can add or change character sets by function
+mime/set-charset-and-encoding.
+\medskip
+\begin{description}
+\item[Function:]mime/set-charset-and-encoding lc cs charset encoding
+\medskip
+\begin{description}
+\item[lc:]leading-char
+\item[cs:]coding-system. Please specify nil if you don't want to use
+coding-system for 1 octet character.
+\item[charset:]MIME character set
+\item[encoding:]encoding method for encoder
+\medskip
+\medskip
+\end{description}
+\end{description}
+\begin{description}
+\item[example 1:]encode EUC-KR B encoding for KS C5601-1987 characters
+\medskip
+\par
+(mime/set-charset-and-encoding lc-kr *euc-kr* "EUC-KR" "B")
+\medskip
+\medskip
+\item[example 2:]encode/decode koi8-r Q encoding
+\medskip
+\par
+(mime/set-charset-and-encoding lc-prv11 nil "KOI8-R" "Q")
+\medskip
+\item[{[}WARNING{]}]In this version, handling for private character is very ad
+hoc. (\verb+^+\_\verb+^+; I want to improve.
+\end{description}
+\end{document}
--- /dev/null
+\e$B!X\e(Btiny-mime.el \e$B@bL@=q!Y\e(B
+by. \e$B<i2,\e(B \e$BCNI'\e(B
+1994\e$BG/\e(B7\e$B7n\e(B27\e$BF|\e(B
+
+ \e$B$3$N@bL@=q$O\e(B ol2 \e$B$H\e(B plain2 \e$B$rMQ$$$k$3$H$K$h$C$F\e(B LaTeX \e$B7A<0$KJQ49$9$k\e(B
+\e$B$3$H$,$G$-$^$9!#\e(B
+
+
+* tiny-mime.el \e$B$H$O\e(B
+
+ tiny-mime.el \e$B$O\e(B Mule, NEmacs, NEpoch \e$B>e$GF0:n$9$k\e(B MIME message
+header \e$B$N\e(B encoder/decoder \e$B$G$9!#%*%j%8%J%k$O!"@N!"$($J$_\e(B \e$B$D$0$H$b\e(B \e$B$5$s\e(B
+\e$B$,\e(B fj.editor.emacs \e$B$KEj9F$5$l$?\e(B MIME message header \e$B$N\e(B decoder \e$B$G$9!#\e(B
+
+ \e$B8=:_$G$O!"Ev;~$N$b$N$KHf$Y!"\e(B
+
+ \e$B!&\e(Bdecoding \e$B;~$K$*$1$k\e(B unfolding \e$B5!G=\e(B
+ \e$B!&\e(BISO-2022-JP \e$B$K2C$(!"\e(BISO-8859-*, US-ASCII \e$B$J$I$N\e(B encoding/decoding
+ \e$B!&\e(BQ-encoding \e$B$N\e(B decoding
+
+\e$B$H$$$C$?5!G=$r;}$C$F$$$^$9!#\e(B
+
+
+* tiny-mime.el \e$B$N%5%]!<%H$9$k\e(B character set, encoding
+
+ tiny-mime.el \e$B$O!"<!$N\e(B character set, encoding \e$B$r%5%]!<%H$7$^$9!#\e(B
+
+** Mule
+
+ ISO-2022-JP, US-ASCII, ISO-8859-1..9, ISO-2022-CN, ISO-2022-KR,
+EUC-KR \e$B$J$I$N\e(B encoding/decoding \e$B$r%5%]!<%H$7$^$9!#$^$?!"4X?t\e(B
+mime/set-charset-and-encoding \e$B$GDI2C!&JQ99$,$G$-$^$9!#\e(B
+
+** NEmacs, NEpoch
+
+ ISO-2022-JP, US-ASCII \e$B$N\e(B encoding/decoding \e$B$r%5%]!<%H$7$^$9!#\e(B
+
+ \e$B$^$?!"\e(BISO-8859-*\e$B$G$"$C$F$b!"\e(Bencoded-text \e$B$K4^$^$l$kJ8;zNs$,<B:]$K$O\e(B
+ASCII \e$B$GI=$;$kHO0O$J$iI=<($7$^$9!#\e(B
+
+
+* tiny-mime.el \e$B$N4JC1$J;H$$J}\e(B
+
+** decode
+
+ tiny-mime.el \e$B$r\e(B load \e$B$7$F!"\e(Bdecode \e$B$7$?$$\e(B buffer \e$B>e$G!"\e(B
+
+ M-x mime/decode-message-header
+
+\e$B$r<B9T$7$^$9!#\e(B
+
+ \e$B$^$?!"\e(Bdecode \e$B$7$?$$\e(B region \e$B$r\e(B
+
+ M-x mime/decode-region
+
+\e$B$G\e(B decode \e$B$9$k$3$H$,$G$-$^$9!#0zMQ$J$I$G\e(B body-part \e$B$K;D$C$?\e(B
+encoded-word \e$B$r\e(B decode \e$B$9$k$N$KJXMx$G$7$g$&!#\e(B
+
+** encode
+
+ tiny-mime.el \e$B$r\e(B load \e$B$7$F!"\e(Bencode \e$B$7$?$$\e(B buffer \e$B>e$G!"\e(B
+
+ M-x mime/encode-message-header
+
+\e$B$r<B9T$7$^$9!#\e(B
+
+
+* tiny-mime.el \e$B$NJQ?t\e(B
+
+** mime/no-encoding-header-fields
+
+ tiny-mime.el \e$B$G\e(B encode \e$B$7$J$$\e(B message header \e$B$N\e(B field \e$B$r;XDj$7$^$9!#\e(B
+
+ default \e$B$G$O\e(B X-Nsubject \e$B$,;XDj$5$l$F$$$^$9!#\e(B
+
+\e$BNc!'\e(B X-Nsubject \e$B$H\e(B Subject \e$B$r\e(B encode \e$B$7$J$$$h$&$K$9$k!#\e(B
+
+[[E
+----------------------------------------------------------------------
+(setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
+----------------------------------------------------------------------
+]]E
+
+\e$B!NCm0U!O\e(B mime.el \e$B$HJ;MQ$9$k>l9g!"\e(Btiny-mime.el \e$B$,\e(B encode \e$B$7$J$/$F$b!"\e(B
+mime.el \e$B$,\e(B encode \e$B$9$k$N$G!"\e(Bmime.el \e$B$N\e(B message header encoder \e$B$,F/$+$J\e(B
+\e$B$$$h$&$K$K@_Dj$7$^$9!#\e(B
+
+** mime/use-X-Nsubject
+
+ \e$B$3$NJQ?t$NCM$,\e(B t \e$B$N>l9g!"\e(Bmessage header \e$B$r\e(B encode \e$B$9$k;~!"\e(Bencode \e$B$7\e(B
+\e$B$?7k2L!"\e(BSubject \e$B$K\e(B encoded-word \e$B$,4^$^$l$k>l9g!"\e(BSubject \e$B$r\e(B decode \e$B$7$?\e(B
+\e$B$b$N$rF~$l$?\e(B X-Nsubject \e$B$r:n@.$7$^$9!#\e(B
+
+ default \e$B$G$O\e(B nil \e$B$,;XDj$5$l$F$$$^$9!#\e(B
+
+\e$B!NCm0U!O\e(BMule \e$B$G\e(B ISO-2022-JP \e$B$K4^$^$l$k$b$N0J30$NJ8;z=89g$r;H$&>l9g$O!"\e(B
+\e$B$3$l$r;XDj$7$J$$J}$,8-L@$G$9!#\e(B
+
+** mail-header-separator
+
+ \e$B4X?t\e(B mime/encode-message-header \e$B$K$*$1$k\e(B message header \e$B$H\e(B body part
+\e$B$N6h@Z$j$rI=$9JQ?t$G$9!#Nc$($P!"\e(BGNUS \e$B$G$O\e(B "--text follows this line--"
+\e$B$,;XDj$5$l$^$9!#\e(B
+
+\e$B!NCm0U!O$3$NJQ?t$NJ8;zNs$O!"\e(Bversion 2.6 \e$B$h$j@55,I=8=$G$O$J$/$J$j$^$7$?!#\e(B
+
+
+* mailer, news reader \e$B$X$NAH$_9~$_\e(B
+
+ \e$BF|>oE*$K!"L50U<1$K\e(B MIME header \e$B$rK\Mh$N8@8l$G8+$?$$$H$$$&$N$OEvA3$N\e(B
+\e$BM_5a$G$9!#$=$3$G!"\e(Btiny-mime.el \e$B$r\e(B mailer \e$B$d\e(B news reader \e$B$KAH$_9~$`$H<+\e(B
+\e$BF0E*$K\e(B MIME header \e$B$N\e(B encode/decode \e$B$,$G$-$^$9!#\e(B
+
+ \e$B$^$?!"\e(Bmetamail \e$B$r;H$C$F$*$i$l$kJ}$G$b!"IaCJ$O\e(B message header \e$B$N\e(B
+decode \e$B$@$1$GNI$/$F!"3($d2;$J$I$r:F@8$9$k;~$@$1\e(B metamail \e$B$r;H$&$H$$$&\e(B
+\e$B$h$&$J;H$$J}$b$G$-$^$9!#\e(B
+
+ \e$B$3$NL\E*$r<B8=$9$k$K$O!"\e(Bmailer \e$B$d\e(B news reader \e$B$NE,@Z$J\e(B hook \e$B$K\e(B
+mime/decode-message-header \e$B$rF~$l$l$PNI$$$G$7$g$&!#$^$?!"J8;zNs$N\e(B
+decode \e$B$r$7$?$$>l9g$N$?$a$K!"\e(B
+
+ (mime/decode-string \e$BJ8;zNs\e(B)
+
+\e$B$H$$$&4X?t$bMQ0U$7$F$$$^$9!#\e(B
+
+ GNUS \e$B$H\e(B mh-e \e$B$K4X$7$F$O!"\e(Btm-gnus, tm-mh-e \e$B$H$$$&\e(B MIME \e$BBP1~2=%b%8%e!<\e(B
+\e$B%k$rMQ0U$7$F$$$^$9!#\e(B
+
+ \e$B$3$l$i$N!"3F\e(B MUA \e$B$KBP1~$9$k%b%8%e!<%k$r\e(B load \e$B$9$k$H\e(B tiny-mime.el \e$B$K\e(B
+\e$B$h$k\e(B MIME header \e$B$NI|85$H\e(B tm-body \e$B$rMxMQ$7$?\e(B MIME body \e$B$N:F@8$,9T$J$(\e(B
+\e$B$^$9!#\e(B
+
+ \e$B>\$7$/$O!"$=$l$>$l$N@bL@=q$r$*FI$_2<$5$$!#\e(B
+
+
+* mime.el \e$B$H$NJ;MQ\e(B
+
+ mime.el \e$B$HJ;MQ$9$kNc$r<($7$^$9!#$3$NNc$N>l9g!"\e(BISO-2022-JP \e$BJ8;zNs$N\e(B
+encode \e$B$O\e(B tiny-mime.el \e$B$,9T$J$$!"$=$l0J30$NJ8;z=89g$KB0$9$kJ8;zNs$O\e(B
+mime.el \e$B$,\e(B encode \e$B$7$^$9!#\e(B
+
+ \e$B$^$?!"\e(Btiny-mime.el \e$B$,\e(B encode \e$B$7$J$+$C$?J8;zNs$b\e(B mime.el \e$B$,\e(B encode \e$B$9\e(B
+\e$B$k$N$G!"7k2LE*$K!"I,$:A4$F$N\e(B field \e$B$,\e(B encode \e$B$5$l$k$3$H$KCm0U$7$F2<$5\e(B
+\e$B$$!#\e(B
+
+[[E
+----------------------------------------------------------------------
+;;;
+;;; for Edit MIME mode
+;;;
+(autoload 'mime-mode "mime" "Edit MIME message." t)
+(autoload 'mime-convert-buffer "mime" "convert to MIME." t)
+(autoload 'insert-signature "signature" "Insert signature" t)
+(add-hook 'mime-mode-hook
+ (function
+ (lambda ()
+ (define-key (current-local-map)
+ "\C-c\C-s" (function insert-signature))
+ )))
+
+;; MIME header \e$B$N\e(B encoder \e$B$r\e(B tiny-mime \e$B$N$b$N$r;H$&!#\e(B
+(setq mime-translate-hook 'mime/encode-message-header)
+
+;;;
+;;; for GNUS
+;;;
+(add-hook 'news-reply-mode-hook (function mime-mode))
+(setq gnus-signature-file nil)
+
+;;;
+;;; for mh-e
+;;;
+(add-hook 'mh-letter-mode-hook
+ (function
+ (lambda ()
+ (mime/decode-message-header)
+ (mime-mode)
+ (make-local-variable 'mail-header-separator)
+ (setq mail-header-separator "--------"))
+ ))
+----------------------------------------------------------------------
+]]E
+
+** \e$BFCDj$N\e(B field \e$B$r\e(B encode \e$B$7$?$/$J$$>l9g\e(B
+
+ \e$BFCDj$N\e(B field \e$B$r\e(B encode \e$B$7$?$/$J$$>l9g!"\e(Btiny-mime.el \e$B$NJQ?t\e(B
+mime/no-encoding-header-fields \e$B$K$h$C$F!"\e(Btiny-mime.el \e$B$K$h$k\e(B encode \e$B$r\e(B
+\e$B$d$a$k$3$H$,$G$-$^$9$,!"\e(Bmime.el \e$B$,\e(B encode \e$B$9$k$N$G$O0UL#$,$"$j$^$;$s!#\e(B
+\e$B$=$3$G!"<!$N$h$&$K@_Dj$9$k$3$H$G!"\e(Bmime.el \e$B$G$b\e(B encode \e$B$7$J$$$h$&$K$G$-\e(B
+\e$B$^$9!#\e(B
+
+[[E
+----------------------------------------------------------------------
+(if (boundp 'MULE)
+ (progn
+ (defun mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP (begin end)
+ (let ((lclist (find-charset-region begin end)))
+ (cond ((null lclist) nil) ;US-ASCII requres no encoding.
+ ((memq lc-ltn1 lclist)
+ '("ISO-8859-1" . "Q"))
+ ((memq lc-ltn2 lclist)
+ '("ISO-8859-2" . "Q"))
+ ((memq lc-ltn3 lclist)
+ '("ISO-8859-3" . "Q"))
+ ((memq lc-ltn4 lclist)
+ '("ISO-8859-4" . "Q"))
+ ((memq lc-crl lclist)
+ '("ISO-8859-5" . "Q"))
+ ;;((memq lc-arb lclist)
+ ;; '("ISO-8859-6" . "Q"))
+ ((memq lc-grk lclist)
+ '("ISO-8859-7" . "Q"))
+ ((memq lc-hbw lclist)
+ '("ISO-8859-8" . "Q"))
+ ((memq lc-ltn5 lclist)
+ '("ISO-8859-9" . "Q"))
+ ((memq lc-jp lclist) nil)
+ (t ;Unknown charset. It must be Mule!
+ '("ISO-2022-JP-2" . "B"))
+ )))
+ (setq mime-header-charset-chooser
+ 'mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP)
+ )
+ (progn
+ (defun mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP (begin end))
+ (setq mime-header-charset-chooser
+ 'mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP)
+ ))
+----------------------------------------------------------------------
+]]E
+
+ \e$BMW$9$k$K!"\e(BISO-2022-JP \e$BJ8;zNs$N\e(B encode \e$B$r\e(B mime.el \e$B$K$5$;$J$/$9$kLu$G\e(B
+\e$B$9!#\e(B
+
+
+* charset \e$B$NDI2C!&JQ99\e(B
+
+ Mule \e$B$G$O!"4X?t\e(B mime/set-charset-and-encoding \e$B$G!"\e(Bcharset \e$B$NDI2C!&JQ\e(B
+\e$B99$,$G$-$^$9!#\e(B
+
+ \e$B4X?t\e(B: mime/set-charset-and-encoding lc cs charset encoding
+
+ lc: charset \e$B$KBP1~$9$k\e(B leading-char \e$B$r;XDj$9$k!#\e(B
+ cs: charset \e$B$KBP1~$9$k\e(B coding-system \e$B$r;XDj$9$k!#\e(B1 octet \e$BJ8;z\e(B
+ \e$B=89g$G\e(B coding-system \e$B$r:n$i$J$$>l9g$O!"\e(Bnil \e$B$r;XDj$9$k!#\e(B
+ charset: MIME \e$B$N\e(B charset.
+ encoding: encode \e$B$9$k:]$N\e(B encoding.
+
+
+ \e$BNc!'\e(B KS C5601-1987 \e$B$r\e(B EUC-KR \e$B$N\e(B B encoding \e$B$9$k$h$&$K@_Dj$9$k\e(B
+
+ (mime/set-charset-and-encoding lc-kr *euc-kr* "EUC-KR" "B")
+
+
+ \e$BNc!'\e(B koi8-r \e$B$r\e(B Q encoding \e$B$9$k$h$&$K@_Dj$9$k!#\e(B
+
+ (mime/set-charset-and-encoding lc-prv11 nil "KOI8-R" "Q")
+
+
+\e$B!NCm0U!O8=:_$N$H$3$m!"\e(Bprivate character \e$B$N@_Dj$OFq$"$j$G$9!#\e(B(^_^;
--- /dev/null
+\documentstyle[a4j]{jarticle}
+\setcounter{secnumdepth}{6}
+\setcounter{tocdepth}{6}
+\topsep=0.1cm
+\parsep=0.1cm
+\itemsep=0.0cm
+\begin{document}
+\title{
+tiny-mime.el ÀâÌÀ½ñ}
+\author{
+¼é²¬ ÃÎɧ\\
+}
+\date{
+1994ǯ7·î27Æü}
+\maketitle
+\medskip
+\par
+¤³¤ÎÀâÌÀ½ñ¤Ï ol2 ¤È plain2 ¤òÍѤ¤¤ë¤³¤È¤Ë¤è¤Ã¤Æ LaTeX ·Á¼°¤ËÊÑ´¹¤¹¤ë
+¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+\medskip
+\medskip
+
+\section{tiny-mime.el ¤È¤Ï}
+\medskip
+\par
+tiny-mime.el ¤Ï Mule, NEmacs, NEpoch ¾å¤ÇÆ°ºî¤¹¤ë MIME message
+header ¤Î encoder/decoder ¤Ç¤¹¡£¥ª¥ê¥¸¥Ê¥ë¤Ï¡¢ÀΡ¢¤¨¤Ê¤ß ¤Ä¤°¤È¤â ¤µ¤ó
+¤¬ fj.editor.emacs ¤ËÅê¹Æ¤µ¤ì¤¿ MIME message header ¤Î decoder ¤Ç¤¹¡£
+\medskip
+\par
+¸½ºß¤Ç¤Ï¡¢Åö»þ¤Î¤â¤Î¤ËÈæ¤Ù¡¢
+\medskip
+\begin{itemize}
+\item decoding »þ¤Ë¤ª¤±¤ë unfolding µ¡Ç½
+\item ISO-2022-JP ¤Ë²Ã¤¨¡¢ISO-8859-*, US-ASCII ¤Ê¤É¤Î encoding/decoding
+\item Q-encoding ¤Î decoding
+\medskip
+\end{itemize}
+\par
+¤È¤¤¤Ã¤¿µ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
+\medskip
+\medskip
+
+\section{tiny-mime.el ¤Î¥µ¥Ý¡¼¥È¤¹¤ë character set, encoding}
+\medskip
+\par
+tiny-mime.el ¤Ï¡¢¼¡¤Î character set, encoding ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
+\medskip
+
+\subsection{Mule}
+\medskip
+\par
+ISO-2022-JP, US-ASCII, ISO-8859-1..9, ISO-2022-CN, ISO-2022-KR,
+EUC-KR ¤Ê¤É¤Î encoding/decoding ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¤Þ¤¿¡¢´Ø¿ô
+mime/set-charset-and-encoding ¤ÇÄɲá¦Êѹ¹¤¬¤Ç¤¤Þ¤¹¡£
+\medskip
+
+\subsection{NEmacs, NEpoch}
+\medskip
+\par
+ISO-2022-JP, US-ASCII ¤Î encoding/decoding ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
+\medskip
+\par
+¤Þ¤¿¡¢ISO-8859-*¤Ç¤¢¤Ã¤Æ¤â¡¢encoded-text ¤Ë´Þ¤Þ¤ì¤ëʸ»úÎ󤬼ºݤˤÏ
+ASCII ¤Çɽ¤»¤ëÈϰϤʤéɽ¼¨¤·¤Þ¤¹¡£
+\medskip
+\medskip
+
+\section{tiny-mime.el ¤Î´Êñ¤Ê»È¤¤Êý}
+\medskip
+
+\subsection{decode}
+\medskip
+\par
+tiny-mime.el ¤ò load ¤·¤Æ¡¢decode ¤·¤¿¤¤ buffer ¾å¤Ç¡¢
+\medskip
+{\list{}{\leftmargin=8ex}\item[]
+\par
+M-x mime/decode-message-header
+\endlist}
+\medskip
+\par
+¤ò¼Â¹Ô¤·¤Þ¤¹¡£
+\medskip
+\par
+¤Þ¤¿¡¢decode ¤·¤¿¤¤ region ¤ò
+\medskip
+{\baselineskip=10pt
+\begin{verbatim}
+ M-x mime/decode-region
+\end{verbatim}}
+\medskip
+\par
+¤Ç decode ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£°úÍÑ¤Ê¤É¤Ç body-part ¤Ë»Ä¤Ã¤¿
+encoded-word ¤ò decode ¤¹¤ë¤Î¤ËÊØÍø¤Ç¤·¤ç¤¦¡£
+\medskip
+
+\subsection{encode}
+\medskip
+\par
+tiny-mime.el ¤ò load ¤·¤Æ¡¢encode ¤·¤¿¤¤ buffer ¾å¤Ç¡¢
+\medskip
+{\list{}{\leftmargin=8ex}\item[]
+\par
+M-x mime/encode-message-header
+\endlist}
+\medskip
+\par
+¤ò¼Â¹Ô¤·¤Þ¤¹¡£
+\medskip
+\medskip
+
+\section{tiny-mime.el ¤ÎÊÑ¿ô}
+\medskip
+
+\subsection{mime/no-encoding-header-fields}
+\medskip
+\par
+tiny-mime.el ¤Ç encode ¤·¤Ê¤¤ message header ¤Î field ¤ò»ØÄꤷ¤Þ¤¹¡£
+\medskip
+\par
+default ¤Ç¤Ï X-Nsubject ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
+\medskip
+\par
+Î㡧 X-Nsubject ¤È Subject ¤ò encode ¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£
+\medskip
+{\baselineskip=10pt
+\begin{verbatim}
+----------------------------------------------------------------------
+(setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
+----------------------------------------------------------------------
+\end{verbatim}}
+\medskip
+\par
+¡ÎÃí°Õ¡Ï mime.el ¤ÈÊ»ÍѤ¹¤ë¾ì¹ç¡¢tiny-mime.el ¤¬ encode ¤·¤Ê¤¯¤Æ¤â¡¢
+mime.el ¤¬ encode ¤¹¤ë¤Î¤Ç¡¢mime.el ¤Î message header encoder ¤¬Æ¯¤«¤Ê
+¤¤¤è¤¦¤Ë¤ËÀßÄꤷ¤Þ¤¹¡£
+\medskip
+
+\subsection{mime/use-X-Nsubject}
+\medskip
+\par
+¤³¤ÎÊÑ¿ô¤ÎÃͤ¬ t ¤Î¾ì¹ç¡¢message header ¤ò encode ¤¹¤ë»þ¡¢encode ¤·
+¤¿·ë²Ì¡¢Subject ¤Ë encoded-word ¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¡¢Subject ¤ò decode ¤·¤¿
+¤â¤Î¤òÆþ¤ì¤¿ X-Nsubject ¤òºîÀ®¤·¤Þ¤¹¡£
+\medskip
+\par
+default ¤Ç¤Ï nil ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
+\medskip
+\par
+¡ÎÃí°Õ¡ÏMule ¤Ç ISO-2022-JP ¤Ë´Þ¤Þ¤ì¤ë¤â¤Î°Ê³°¤Îʸ»ú½¸¹ç¤ò»È¤¦¾ì¹ç¤Ï¡¢
+¤³¤ì¤ò»ØÄꤷ¤Ê¤¤Êý¤¬¸ÌÀ¤Ç¤¹¡£
+\medskip
+
+\subsection{mail-header-separator}
+\medskip
+\par
+´Ø¿ô mime/encode-message-header ¤Ë¤ª¤±¤ë message header ¤È body part
+¤Î¶èÀÚ¤ê¤òɽ¤¹ÊÑ¿ô¤Ç¤¹¡£Î㤨¤Ð¡¢GNUS ¤Ç¤Ï "--text follows this line--"
+¤¬»ØÄꤵ¤ì¤Þ¤¹¡£
+\medskip
+\par
+¡ÎÃí°Õ¡Ï¤³¤ÎÊÑ¿ô¤Îʸ»úÎó¤Ï¡¢version 2.6 ¤è¤êÀµµ¬É½¸½¤Ç¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£
+\medskip
+\medskip
+
+\section{mailer, news reader ¤Ø¤ÎÁȤ߹þ¤ß}
+\medskip
+\par
+Æü¾ïŪ¤Ë¡¢Ìµ°Õ¼±¤Ë MIME header ¤òËÜÍè¤Î¸À¸ì¤Ç¸«¤¿¤¤¤È¤¤¤¦¤Î¤ÏÅöÁ³¤Î
+Íßµá¤Ç¤¹¡£¤½¤³¤Ç¡¢tiny-mime.el ¤ò mailer ¤ä news reader ¤ËÁȤ߹þ¤à¤È¼«
+ưŪ¤Ë MIME header ¤Î encode/decode ¤¬¤Ç¤¤Þ¤¹¡£
+\medskip
+\par
+¤Þ¤¿¡¢metamail ¤ò»È¤Ã¤Æ¤ª¤é¤ì¤ëÊý¤Ç¤â¡¢ÉáÃÊ¤Ï message header ¤Î
+decode ¤À¤±¤ÇÎɤ¯¤Æ¡¢³¨¤ä²»¤Ê¤É¤òºÆÀ¸¤¹¤ë»þ¤À¤± metamail ¤ò»È¤¦¤È¤¤¤¦
+¤è¤¦¤Ê»È¤¤Êý¤â¤Ç¤¤Þ¤¹¡£
+\medskip
+\par
+¤³¤ÎÌÜŪ¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢mailer ¤ä news reader ¤ÎŬÀÚ¤Ê hook ¤Ë
+mime/decode-message-header ¤òÆþ¤ì¤ì¤ÐÎɤ¤¤Ç¤·¤ç¤¦¡£¤Þ¤¿¡¢Ê¸»úÎó¤Î
+decode ¤ò¤·¤¿¤¤¾ì¹ç¤Î¤¿¤á¤Ë¡¢
+\medskip
+{\list{}{\leftmargin=8ex}\item[]
+\par
+(mime/decode-string ʸ»úÎó)
+\endlist}
+\medskip
+\par
+¤È¤¤¤¦´Ø¿ô¤âÍÑ°Õ¤·¤Æ¤¤¤Þ¤¹¡£
+\medskip
+\par
+GNUS ¤È mh-e ¤Ë´Ø¤·¤Æ¤Ï¡¢tm-gnus, tm-mh-e ¤È¤¤¤¦ MIME Âбþ²½¥â¥¸¥å¡¼
+¥ë¤òÍÑ°Õ¤·¤Æ¤¤¤Þ¤¹¡£
+\medskip
+\par
+¤³¤ì¤é¤Î¡¢³Æ MUA ¤ËÂбþ¤¹¤ë¥â¥¸¥å¡¼¥ë¤ò load ¤¹¤ë¤È tiny-mime.el ¤Ë
+¤è¤ë MIME header ¤ÎÉü¸µ¤È tm-body ¤òÍøÍѤ·¤¿ MIME body ¤ÎºÆÀ¸¤¬¹Ô¤Ê¤¨
+¤Þ¤¹¡£
+\medskip
+\par
+¾Ü¤·¤¯¤Ï¡¢¤½¤ì¤¾¤ì¤ÎÀâÌÀ½ñ¤ò¤ªÆɤ߲¼¤µ¤¤¡£
+\medskip
+\medskip
+
+\section{mime.el ¤È¤ÎÊ»ÍÑ}
+\medskip
+\par
+mime.el ¤ÈÊ»ÍѤ¹¤ëÎã¤ò¼¨¤·¤Þ¤¹¡£¤³¤ÎÎã¤Î¾ì¹ç¡¢ISO-2022-JP ʸ»úÎó¤Î
+encode ¤Ï tiny-mime.el ¤¬¹Ô¤Ê¤¤¡¢¤½¤ì°Ê³°¤Îʸ»ú½¸¹ç¤Ë°¤¹¤ëʸ»úÎó¤Ï
+mime.el ¤¬ encode ¤·¤Þ¤¹¡£
+\medskip
+\par
+¤Þ¤¿¡¢tiny-mime.el ¤¬ encode ¤·¤Ê¤«¤Ã¤¿Ê¸»úÎó¤â mime.el ¤¬ encode ¤¹
+¤ë¤Î¤Ç¡¢·ë²ÌŪ¤Ë¡¢É¬¤ºÁ´¤Æ¤Î field ¤¬ encode ¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ²¼¤µ
+¤¤¡£
+\medskip
+{\baselineskip=10pt
+\begin{verbatim}
+----------------------------------------------------------------------
+;;;
+;;; for Edit MIME mode
+;;;
+(autoload 'mime-mode "mime" "Edit MIME message." t)
+(autoload 'mime-convert-buffer "mime" "convert to MIME." t)
+(autoload 'insert-signature "signature" "Insert signature" t)
+(add-hook 'mime-mode-hook
+ (function
+ (lambda ()
+ (define-key (current-local-map)
+ "\C-c\C-s" (function insert-signature))
+ )))
+
+;; MIME header ¤Î encoder ¤ò tiny-mime ¤Î¤â¤Î¤ò»È¤¦¡£
+(setq mime-translate-hook 'mime/encode-message-header)
+
+;;;
+;;; for GNUS
+;;;
+(add-hook 'news-reply-mode-hook (function mime-mode))
+(setq gnus-signature-file nil)
+
+;;;
+;;; for mh-e
+;;;
+(add-hook 'mh-letter-mode-hook
+ (function
+ (lambda ()
+ (mime/decode-message-header)
+ (mime-mode)
+ (make-local-variable 'mail-header-separator)
+ (setq mail-header-separator "--------"))
+ ))
+----------------------------------------------------------------------
+\end{verbatim}}
+\medskip
+
+\subsection{ÆÃÄê¤Î field ¤ò encode ¤·¤¿¤¯¤Ê¤¤¾ì¹ç}
+\medskip
+\par
+ÆÃÄê¤Î field ¤ò encode ¤·¤¿¤¯¤Ê¤¤¾ì¹ç¡¢tiny-mime.el ¤ÎÊÑ¿ô
+mime/no-encoding-header-fields ¤Ë¤è¤Ã¤Æ¡¢tiny-mime.el ¤Ë¤è¤ë encode ¤ò
+¤ä¤á¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¤¬¡¢mime.el ¤¬ encode ¤¹¤ë¤Î¤Ç¤Ï°ÕÌ£¤¬¤¢¤ê¤Þ¤»¤ó¡£
+¤½¤³¤Ç¡¢¼¡¤Î¤è¤¦¤ËÀßÄꤹ¤ë¤³¤È¤Ç¡¢mime.el ¤Ç¤â encode ¤·¤Ê¤¤¤è¤¦¤Ë¤Ç¤
+¤Þ¤¹¡£
+\medskip
+{\baselineskip=10pt
+\begin{verbatim}
+----------------------------------------------------------------------
+(if (boundp 'MULE)
+ (progn
+ (defun mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP (begin end)
+ (let ((lclist (find-charset-region begin end)))
+ (cond ((null lclist) nil) ;US-ASCII requres no encoding.
+ ((memq lc-ltn1 lclist)
+ '("ISO-8859-1" . "Q"))
+ ((memq lc-ltn2 lclist)
+ '("ISO-8859-2" . "Q"))
+ ((memq lc-ltn3 lclist)
+ '("ISO-8859-3" . "Q"))
+ ((memq lc-ltn4 lclist)
+ '("ISO-8859-4" . "Q"))
+ ((memq lc-crl lclist)
+ '("ISO-8859-5" . "Q"))
+ ;;((memq lc-arb lclist)
+ ;; '("ISO-8859-6" . "Q"))
+ ((memq lc-grk lclist)
+ '("ISO-8859-7" . "Q"))
+ ((memq lc-hbw lclist)
+ '("ISO-8859-8" . "Q"))
+ ((memq lc-ltn5 lclist)
+ '("ISO-8859-9" . "Q"))
+ ((memq lc-jp lclist) nil)
+ (t ;Unknown charset. It must be Mule!
+ '("ISO-2022-JP-2" . "B"))
+ )))
+ (setq mime-header-charset-chooser
+ 'mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP)
+ )
+ (progn
+ (defun mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP (begin end))
+ (setq mime-header-charset-chooser
+ 'mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP)
+ ))
+----------------------------------------------------------------------
+\end{verbatim}}
+\medskip
+\par
+Íפ¹¤ë¤Ë¡¢ISO-2022-JP ʸ»úÎó¤Î encode ¤ò mime.el ¤Ë¤µ¤»¤Ê¤¯¤¹¤ëÌõ¤Ç
+¤¹¡£
+\medskip
+\medskip
+
+\section{charset ¤ÎÄɲá¦Êѹ¹}
+\medskip
+\par
+Mule ¤Ç¤Ï¡¢´Ø¿ô mime/set-charset-and-encoding ¤Ç¡¢charset ¤ÎÄɲá¦ÊÑ
+¹¹¤¬¤Ç¤¤Þ¤¹¡£
+\medskip
+\begin{description}
+\item[´Ø¿ô:]mime/set-charset-and-encoding lc cs charset encoding
+\medskip
+\begin{description}
+\item[lc:]charset ¤ËÂбþ¤¹¤ë leading-char ¤ò»ØÄꤹ¤ë¡£
+\item[cs:]charset ¤ËÂбþ¤¹¤ë coding-system ¤ò»ØÄꤹ¤ë¡£1 octet ʸ»ú
+½¸¹ç¤Ç coding-system ¤òºî¤é¤Ê¤¤¾ì¹ç¤Ï¡¢nil ¤ò»ØÄꤹ¤ë¡£
+\item[charset:]MIME ¤Î charset.
+\item[encoding:]encode ¤¹¤ëºÝ¤Î encoding.
+\medskip
+\medskip
+\end{description}
+\end{description}
+\par
+Î㡧 KS C5601-1987 ¤ò EUC-KR ¤Î B encoding ¤¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë
+\medskip
+{\list{}{\leftmargin=8ex}\item[]
+\par
+(mime/set-charset-and-encoding lc-kr *euc-kr* "EUC-KR" "B")
+\endlist}
+\medskip
+\medskip
+\par
+Î㡧 koi8-r ¤ò Q encoding ¤¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë¡£
+\medskip
+{\list{}{\leftmargin=8ex}\item[]
+\par
+(mime/set-charset-and-encoding lc-prv11 nil "KOI8-R" "Q")
+\endlist}
+\medskip
+\medskip
+\par
+¡ÎÃí°Õ¡Ï¸½ºß¤Î¤È¤³¤í¡¢private character ¤ÎÀßÄê¤ÏÆñ¤¢¤ê¤Ç¤¹¡£(\verb+^+\_\verb+^+;
+\end{document}
--- /dev/null
+\e$B2,It!w5~Bg$G$9!#\e(B
+
+In article <199408221831.DAA24174@melon.jaist.ac.jp>,
+ \e$B<i2,\e(B \e$BCNI'\e(B (MORIOKA Tomohiko) <morioka@jaist.ac.jp> writes:
+
+\e$B<i2,\e(B> \e$B8=<BF(Hr$7$F!"Bg$-$J\e(B message \e$B$rH/Aw$9$k;~!"<+F0E*$K\e(B message/partial
+\e$B<i2,\e(B> \e$B7A<0$KJ,3d$7$F$/$l$k$b$N$r=q$-$^$7$?!#\e(B
+
+\e$BJXMx$J$N$G!"$9$3$72~NI\e(B(\e$B2~0-!)\e(B)\e$B$7$F$_$^$7$?!#\e(B
+
+1. mime-mode-exit \e$B$r>r7oIU$-$G8F$V$h$&$K$7!"\e(Bmime-mode \e$B0J30$G$b\e(B
+ \e$B;H$($k$h$&$K$7$?!#\e(B
+
+ \e$B:G6a\e(B mh-e 4.1 \e$B$N\e(B mh-edit-mhn \e$B$b;H$C$F$_$F$$$k$N$G!"\e(Bmime-mode \e$B0J30$G$b\e(B
+ \e$B;H$($k$h$&$K$7$?$H$$$&$N$,F05!$G$9!#6KC<$K8@$($PIaCJ$O\e(B MIME \e$B$rA4A3;H$C$F\e(B
+ \e$B$$$J$$?M$G$b!"<+F0J,3d$K$O;H$($k$H;W$$$^$9!#\e(B
+
+\e$B!t\e(B mh-edit-mhn \e$B$GJQ49$7$?8e\e(B mime/view-mode \e$B$KF~$C$F%W%l%S%e!<$7!"\e(B
+ \e$B$&$^$/$$$C$F$J$+$C$?$i\e(B mh-revert-mhn-edit \e$B$G$d$jD>$9!"$H$$$&\e(B
+ \e$B<j=g$O\e(B mime-mode \e$B$H\e(B metamail-* \e$B$h$j$O2wE,$G$9!#\e(B
+
+2. \e$B%X%C%@$H%\%G%#$N6h@Z$j$,6u9T$N>l9g$K$bBP1~$7$?!#\e(B
+
+ mh-edit-mhn \e$B$N=PNO$O$3$N7A<0$J$N$G!"$d$`$rF@$:$=$&$7$^$7$?!#\e(B
+
+3. mime/draft-file-name \e$B$,\e(B nil \e$B$N$H$-$K;H$&%U%!%$%kL>$r0J2<$N$h$&$K$7$?!#\e(B
+
+ (make-temp-name (expand-file-name "tm-draft" mime/tmp-dir))
+
+4. \e$BJ,3d$7$?%a%C%;!<%8$K$O!"$b$H$N\e(B Subject \e$B$N$&$7$m$K\e(B (1/3) \e$B$J$I$H$D$/\e(B
+ \e$B$h$&$K$7$?!#\e(B
+
+ \e$B6a$$>-Mh!"\e(Bsuper-pipe \e$B$d\e(B gnus-uu \e$B$N$h$&$K!"\e(Bmessage/partial \e$B$N$H$-$O$I\e(B
+ \e$B$l$+$R$H$D$N5-;v$r$_$l$PB>$N$rC5$7$K9T$/5!G=$,\e(B tm-view.el \e$B$K<BAu$5$l$k\e(B
+ \e$B$3$H$r4j$C$F$N$3$H$G$9\e(B ^_^
+
+
+
+\e$B$^$@5$$KF~$i$J$$E@$G$9$,!"\e(B
+
+1. \e$B$b$H$N\e(B(\e$B=q$-$+$1$N\e(B)\e$B%a%C%;!<%8$N%X%C%@$r$=$N$^$^Aw$C$F$7$^$&$N$G!"\e(B
+ \e$BNc$($P\e(B MH \e$B$N>l9g!"\e(BBcc:, Dcc: Fcc: \e$B$J$IK\MhAw$C$?;~$K>C$($k\e(B
+ \e$B$O$:$N$b$N$,FO$$$F$7$^$&\e(B(\e$B$H$/$K\e(B Bcc: \e$B$,8+$($k$N$OLdBj\e(B)\e$B!#\e(B
+ \e$B1#$9%U%#!<%k%I$r;XDj$G$-$k$h$&$K$9$Y$-!#\e(B
+
+2. \e$B@8@.$5$l$k\e(B id \e$B$,D9$C$?$i$7$/$F$+$C$30-$$!#\e(B
+ (\e$BNc$($P\e(B GNUS \e$B$N\e(B message-id \e$B@8@.%k!<%A%s$rE>MQ$7$F$O$I$&$+\e(B)
+
+\e$B$J$I$,$"$j$^$9!#\e(B
+
+\e$B<i2,\e(B> \e$B$^$?!"\e(Bmessage \e$B$N:GBg9T?t$rJQ?t\e(B mime/message-max-length \e$B$G;XDj$G$-$^\e(B
+\e$B<i2,\e(B> \e$B$9!#$H$j$"$($:!"\e(Bdefault \e$B$G$O\e(B 1000 \e$B9T$K$7$F$"$j$^$9$,!"$3$l$K4X$9$k0lHL\e(B
+\e$B<i2,\e(B> \e$BE*$JCM$O$"$k$s$G$7$g$&$+!)\e(B
+
+\e$B9T?t$h$j$O%P%$%H?t$,Bg;v$J$O$:$G!"$h$/8@$o$l$k$N$O\e(B1\e$BDL$"$?$j\e(B50KB\e$B$rD6$(\e(B
+\e$B$J$$$h$&$K$H$$$&@)Ls$G$9$M\e(B(\e$B$&$A$N%;%s%?!<$NMxMQ$N<j0z$K$b$=$&=q$$$F$"\e(B
+\e$B$j$^$7$?\e(B)\e$B!#5pBg$J%a!<%k$NB?$/$O%P%$%J%j%U%!%$%k$NE>Aw$G!"Cf?H$O\e(B base64
+\e$B$G0l9T\e(B80\e$B;z<e$K$J$C$F$$$k$H2>Dj$9$k$H!"\e(B600 \e$B9T6/$K$"$?$j$^$9!#$7$+$7\e(B50KB
+\e$B0J>e$N$b$N$ODL$i$J$$$h$&$K$J$C$F$$$k$H$$$&$o$1$G$O$J$/C1$K0BA4$d8zN($r\e(B
+\e$B9M$($F$NCM$G$7$g$&$+$i!"\e(Bsplit \e$B$NI8=`CM$G$b$"$k\e(B 1000 \e$B$GLdBj$J$$$H;W$$$^$9!#\e(B
+-----
+\e$B2,It<wCK!w5~ETBg3XBg7?7W;;5!%;%s%?!<8&5f3+H/It\e(B
--- /dev/null
+\documentstyle{report}
+
+\title{tm Reference Manual (English Edition)}
+\author{{\Large Morioka Tomohiko} \\
+ {\normalsize $<$morioka@jaist.ac.jp$>$}\\
+ \\
+ {\large translated by \Large Ueno Hiroshi} \\
+ {\normalsize $<$jl07715@yamato.ibm.co.jp$>$}
+ }
+\date{\verb$Id: tm-eng.tex,v 5.4 1994/10/17 03:05:02 morioka Exp $}
+
+\begin{document}
+
+\maketitle
+\tableofcontents
+
+\chapter{Overview}
+
+The tm package is a set of modules to enjoy MIME on GNU Emacs. Using tm,
+you can
+
+\begin{itemize}
+\item playback or view the MIME messages using new mime/viewer-mode
+\item encode and decode the multi-lingual headers
+\item use the enhanced MIME functions with mh-e, GNUS, and RMAIL
+\end{itemize}
+
+\noindent and more.
+
+
+\section{Module List}
+
+The tm package includes the modules listed below.
+
+\begin{itemize}
+\item {\bf tiny-mime} : MIME header encoder/decoder
+\item {\bf tm-view} : MIME message viewer
+\item {\bf tm-misc} : common part of tm-MUAs
+\item {\bf tm-MUAs} : MIME function enhancer for MUAs
+ \begin{itemize}
+ \item {\bf tm-mh-e} : tm-MUA for mh-e
+ \item {\bf tm-gnus} : tm-MUA for GNUS
+ \item {\bf tm-rmail} : tm-MUA for RMAIL
+ \item {\bf tm-vm} : tm-MUA for vm
+ \end{itemize}
+\item {\bf tm-setup} tm-MUA setup module
+\item {\bf mime-setup} MIME setup module
+\end{itemize}
+
+
+\chapter{Considerations for Each Version of Emacs}
+
+\section{Emacs (original)}
+
+A single character set can be used if you use the original Emacs.
+
+\section{NEmacs, NEpoch}
+
+ISO-2022-JP and US-ASCII can be used if you use NEmacs.
+
+
+\section{Mule}
+
+Mule can handle the multi-lingual text. With Mule, tiny-mime supports
+ISO-2022-JP, ISO-2022-JP-2, US-ASCII, ISO-8859-1..9, ISO-2022-CN,
+ISO-2022-KR, EUC-KR, etc. You can also add or change
+encoding/decoding for character sets by mime/set-charset-and-encoding
+function.
+
+
+\chapter{Installation and Setup}
+
+\section{Installation}
+
+You can install tm by following the procedures below.
+
+\begin{enumerate}
+\item modify bindir definition in Makefile according to your build
+ environment.
+\item modify the method scripts in methods/ directory so that it
+ can work in your environment. Refer to \ref{sec:method} section
+ for how you can suit the method scripts to your environment.
+\item make all
+\item make install
+\item copy all files with .el suffix into the directory pointed by Emacs
+ load-path variable.
+\end{enumerate}
+
+\noindent{\bf [Notes]}
+\begin{itemize}
+\item Make sure mh-e version 3.x has been loaded before byte-compiling
+ tm-mh-e3.el.
+\item Make sure GNUS 3 has been loaded before byte-compiling tm-gnus3.el.
+\item Use Emacs 18 when you byte-compile tl-18.el.
+\item Use the original Emacs when you byte-compile tl-orig.el.
+\item Use NEmacs when you byte-compile tl-nemacs.el.
+\item Use Mule when you byte-compile tl-mule.el.
+\item Modules byte-compiled by Emacs 19 do not work with Emacs 18.
+\end{itemize}
+
+
+\section{Setup}
+
+In the tm package, two files, mime-setup.el and tm-setup.el, are provided
+to ease the setup. A mime-setup.el is used for the whole MIME related
+setup including MIME encoding, while tm-setup is used to set up tm-MUA
+only.
+
+
+\subsection{mime-setup}
+
+\begin{verbatim}
+(load "mime-setup")
+\end{verbatim}
+
+\noindent will perform various settings of MIME. As mime-setup loads
+tm-setup, you do not need to load tm-setup when you use mime-setup.
+
+You can also set up the "automatic signature selection tool" using
+mime-setup. If you want to automatically select the signature file
+depending on how the message headers show, add lines like shown below
+to your .emacs (Refer to the reference manual of signature.el for
+more details).
+
+\begin{verbatim}
+(setq signature-file-alist
+ '((("Newsgroups" . "jokes") . "~/.signature-jokes")
+ (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun")
+ (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun")
+ (("To" . "tea") . "~/.signature-jokes")
+ (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal")
+ ))
+\end{verbatim}
+
+mime-setup requires mime.el. if you set up SuperCite via mime-setup,
+you need the SuperCite package also.
+
+
+\subsection{tm-setup}
+
+tm-setup only sets up tm-MUAs. You do not need to explicitly load
+tm-setup if you are using mime-setup for your setup. tm-setup is useful
+when you do not want to use mime-setup but want to set up tm-MUAs.
+
+\begin{verbatim}
+(load "tm-setup")
+\end{verbatim}
+
+
+\subsection{vm}
+
+If you want use vm, please insert following in .vm or .emacs:
+
+\begin{verbatim}
+(load "tm-vm")
+\end{verbatim}
+
+
+\subsection{setting up without loading provided setup files}
+
+You may find the valuable hints in tm-setup.el if you want to set up
+MIME environment without loading the tm-provided setup files.
+
+
+\subsection{setting up MH}
+
+If you are using MH-6.8JP2, add the following lines to your
+.mh\_profile.
+
+\begin{verbatim}
+scan: -form scan.mime
+inc: -form inc.mime
+repl: -form replcomps.mime
+showproc: mhl
+\end{verbatim}
+
+\noindent Emacs will handle the most part of MH processing. You
+should not specify further options in your MH profile to avoid any
+possible conflict between MH and Emacs.
+
+
+
+\chapter{tm-MUA}
+
+``tm-MUA'' is a generic name of the modules which enhance the MIME
+functions of MUA like mh-e, GNUS, and RMAIL etc.
+
+The current version of tm provides the following tm-MUA.
+
+\begin{itemize}
+\item {\bf tm-mh-e} : tm-MUA for mh-e
+\item {\bf tm-gnus} : tm-MUA for GNUS
+\item {\bf tm-rmail} : tm-MUA for RAMIL
+\end{itemize}
+
+\noindent You can find the detailed explanations of these modules in
+the following sections.
+
+
+\section{Summary Mode}
+
+If you are using tm-MUA, the following functions are added to the Summary
+mode of the MUA.
+
+\medskip
+\begin{center}
+ \begin{tabular}{|l|l|}\hline
+ key & function \\ \hline
+ M-t & toggles decoding of MIME headers \\
+ v & enters mime/view-mode \\ \hline
+ \end{tabular}
+\end{center}
+\medskip
+
+
+\section{mime/viewer-mode}
+\label{sec:mime/viewer-mode}
+
+If you are using tm-MUA, mime/viewer-mode becomes active by pressing
+{\bf v} key in the Summary mode. In mime/viewer-mode, you can manipulate
+the MIME messages by the simple key operations. The following list shows
+the functions and their key bindings which can be used in mime/viewer-mode.
+
+\medskip
+\begin{center}
+ \begin{tabular}{|l|l|}\hline
+ key & function \\ \hline
+ u & goes to the upper content \\
+ & returns to the Summary mode if the cursor is sitting on
+ the top content (*1) \\
+ p & goes to the previous content \\
+ n & goes to the next content \\
+ SPC & scrolls up \\
+ M-SPC & scrolls down \\
+ DEL & scrolls down \\
+ RET & goes to the next line \\
+ M-RET & goes to the previous line \\
+ v & playbacks a content (*2) \\
+ e & extracts a file from a content (*2) \\
+ C-c C-p & prints a content (*2) \\ \hline
+ \end{tabular}
+\end{center}
+\medskip
+
+\bigskip
+
+\newcounter{asteriskcount}
+\noindent{\bf \e$B!N\e(BNote\e$B!O\e(B}
+\vspace{-1ex}
+{\list{(*\arabic{asteriskcount})}{\usecounter{asteriskcount}\leftmargin=8ex}
+\item Not return to the Summary mode unless tm-view has been setup using
+tm-mh-e, tm-gnus, tm-rmail etc.
+\item Actual playback/extract/print will be performed by a method.
+\endlist}
+
+
+\section{Customizing tm-gnus}
+
+\subsection{saving articles without decoding}
+
+By default, The articles will be saved as they appear in the buffer
+at that time.
+
+You can save the articles always without decoding by setting a
+tm-gnus/set-mime-header-decoding-mode variable to nil then call a
+function which saves the articles.
+
+The following example shows how you can save an article without
+decoding, preserving the current MIME header decoding mode.
+
+\begin{verbatim}
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (article save function)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )
+\end{verbatim}
+
+The following is an example that saves the articles to a folder
+of mh-e.
+
+\begin{verbatim}
+(add-hook 'gnus-Startup-hook
+ (function
+ (lambda ()
+ (setq gnus-default-article-saver
+ (function
+ (lambda ()
+ (interactive)
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (gnus-Subject-save-in-folder)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )))))))
+(add-hook 'gnus-startup-hook
+ (function
+ (lambda ()
+ (setq gnus-default-article-saver
+ (function
+ (lambda ()
+ (interactive)
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (gnus-summary-save-in-folder)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )))))))
+\end{verbatim}
+
+\subsection{replying with encoded subject to an article with encoded subject}
+
+When you reply to an article, you may want to encode the Subject field only
+when the original article has an encoded Subject. It can be done by
+defining a hook as shown below.
+
+\begin{verbatim}
+(add-hook 'gnus-article-prepare-hook
+ (function
+ (lambda ()
+ (if (mime/exist-encoded-word-in-subject)
+ (setq mime/no-encoding-header-fields '("X-Nsubject"))
+ (setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
+ ))))
+\end{verbatim}
+
+
+\chapter{tm-view}
+
+tm-view is a module which is used to examine the MIME messages.
+It provides a mime/viewer-mode for that purpose.
+
+Regarding the functions of mime/viewer-mode, refer to
+\ref{sec:mime/viewer-mode} section.
+
+\section{Defining Conditions of Decoding}
+
+A mime/content-decoding-condition variable is used to define the methods
+which will be called at decoding. It replaces a
+mime/content-decoding-method-alist variable of tm-view version 4.x.
+
+A mime/content-decoding-method-alist only allowed you to define a
+method used for each content-type/subtype. Now a
+mime/content-decoding-condition variable allows you to write more
+complicated statements to describe the more detailed conditions to determine
+which method is to be use.
+
+A mime/content-decoding-condition variable is defined as a list with the
+following syntax.
+
+\begin{eqnarray*}
+ (condition_1 \;\; condition_2 \;\; ...)
+\end{eqnarray*}
+
+\noindent Each condition is an association list with the following
+syntax.
+
+\begin{eqnarray*}
+ ((field-type_1 \; . \; value_1) \;\;
+ (field-type_2 \; . \; value_2) \;\; ...)
+\end{eqnarray*}
+
+\noindent
+
+For example, if you want to call the external method named tm-plain
+to decode every text/plain type content, you can define the condition like
+
+\begin{quote}
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+\end{quote}
+
+\noindent As you notice, now you can define the arguments to pass to a
+external method. Refer to \ref{sec:method-arguments} section for more
+explanation.
+
+This condition definition will match all contents whose types are text/plain.
+Here is an another example.
+
+\begin{quote}
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
+ (mode . "play"))
+\end{quote}
+
+\noindent This will match the content whose type is text/plain and
+the mode is play.
+
+
+\begin{quote}
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
+ (mode . "play"))
+\end{quote}
+
+\noindent This will match all contents which have a mode of play.
+
+The conditions defined in a mime/content-decoding-condition variable
+are examined from top to bottom. The first matching condition
+becomes valid and the method specified in that condition definition
+will be executed.
+
+
+\subsection{arguments of method}
+\label{sec:method-arguments}
+
+You can specify the method field of the condition definition in two
+different ways.
+
+\begin{eqnarray*}
+ (method \; . \; SYMBOL)
+\end{eqnarray*}
+
+\noindent or
+
+\begin{eqnarray*}
+ (method \; STRING \; FLAG \; ARGUMENT_1 \; ARGUMENT_2 \; ...)
+\end{eqnarray*}
+
+\noindent can be accepted.
+
+When a symbol is specified in the method field, it will be called as
+an internal method.
+
+When a list is specified in the method field, it will be called as an
+external method. The list below shows the meaning of the parameters
+when the external method is specified in the method field.
+
+\begin{description}
+\item [STRING] name of an external method
+\item [FLAG] if t, both the content header and the content body are
+ passed to an external method. if nil, only the content body is
+ passed to an external method.
+\item [ARGUMENT$_x$] list of arguments passed to an external method
+\end{description}
+
+An argument passed to an external method can be in one of the following
+formats.
+
+\begin{quote}
+ \begin{tabular}{lcl}
+ STRING&:&string itself \\
+ 'SYMBOL&:&value gotten using SYMBOL as a key (see below) \\
+ 'STRING&:&value gotten using STRING as a key (see below)
+ \end{tabular}
+\end{quote}
+
+'SYMBOL can be one of the following.
+
+\begin{quote}
+ \begin{tabular}{lcl}
+ 'file&:&name of a file holding the original content \\
+ 'type&:&content-type/sub-type \\
+ 'encoding&:&content-transfer-encoding \\
+ 'mode&:&decoding mode \\
+ 'name&:&name of a file created by decode operation
+ \end{tabular}
+\end{quote}
+
+\noindent 'STRING is used to search a parameter of the Content-Type
+field whose name matches with it, and pass the value of that parameter
+to the external method.
+
+
+\subsection{examples}
+
+The default definition of a mime/content-decoding-condition variable is
+shown below.
+
+\begin{verbatim}
+(defvar mime/content-decoding-condition
+ '(((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "text/x-latex")
+ (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "audio/basic")
+ (method "tm-au" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/gif")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/jpeg")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-xbm")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-pic")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "video/mpeg")`
+ (method "tm-mpeg" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "application/octet-stream")
+ (method "tm-file" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "message/partial")
+ (method . mime/decode-message/partial-region))
+ ((method "metamail" t
+ "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
+ ))
+\end{verbatim}
+
+For example, if you want to use metamail to decode any contents,
+
+\begin{verbatim}
+(setq mime/content-decoding-condition
+ '(
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
+ ))
+\end{verbatim}
+
+\noindent will work.
+
+A mime/content-decoding-condition variable provides you of very flexible
+way to define the conditions of decoding. It can be simple if you only
+need the a few decoding methods, while it can be very complicated if you
+want to use the separate decoding method for each type/mode combination.
+
+
+\section{Method Script}
+\label{sec:method}
+
+The methods are written in shell script. The arguments passed from tm-view.el
+to each method can be customized using mime/content-decoding-condition
+variable. If you use the tm-provided setting of
+mime/content-decoding-condition variable, the following arguments are
+passed to the method.
+
+\medskip
+\begin{center}
+ \begin{tabular}{|c|l|} \hline
+ argument & \multicolumn{1}{|c|}{ meaning }\\ \hline
+ \$1 & file name before decoded \\
+ \$2 & Content-Type (type/sub-type) \\
+ \$3 & encoding
+ \{7bit / quoted-printable / base64 / 8bit / binary / ...\}\\
+ \$4 & decoding-mode \{play / extract / print\} \\
+ \$5 & file name after decoded \\ \hline
+ \end{tabular}
+\end{center}
+\medskip
+
+Exceptionally, no method is used to restore message/partial messages
+into one message. It is done by tm-view.el itself.
+
+
+\section{Changing Appearance}
+
+Each content in the preview buffer is shown in the following format.
+
+\begin{verbatim}
+[1 (text/plain)]
+
+body
+\end{verbatim}
+
+\noindent tm-view shows one content in three separate portions.
+
+\begin{itemize}
+\item content subject
+\item content header
+\item content body
+\end{itemize}
+
+\noindent
+
+
+\subsection{content subject}
+
+A content subject indicates the beginning of a content in the preview
+buffer. By default, it will be shown as below.
+
+\begin{quote}
+ [cid title (type)]
+\end{quote}
+
+\noindent The cid field shows the position of a content in the message.
+It can be considered as the chapter number in the message. The title
+field is composed of the text string from the Subject and the
+Content-Description field. The type field is a copy of a
+text string specified in the type/subtype field of the content.
+
+You can customize how the content subject appears in the preview
+buffer by modifying a definition of mime/make-content-subject-function
+variable. The tm-view provides a following definition as a default.
+
+\begin{verbatim}
+(defvar mime/make-content-subject-function
+ (function
+ (lambda (cid subj ctype)
+ (insert
+ (format "[%s %s (%s)]\n"
+ (if (listp cid)
+ (mapconcat (function
+ (lambda (num)
+ (format "%s" (+ num 1))
+ ))
+ cid ".")
+ "0")
+ subj (car ctype)))
+ )))
+\end{verbatim}
+
+\noindent The following is an example of the customization.
+
+\begin{verbatim}
+(setq mime/make-content-subject-function
+ (function
+ (lambda (cid subj ctype)
+ (if (not (member (car ctype) mime/default-showing-Content-Type-list))
+ (insert
+ (format "[%s %s (%s)]\n"
+ (if (listp cid)
+ (mapconcat (function
+ (lambda (num)
+ (format "%s" (+ num 1))
+ ))
+ cid ".")
+ "0")
+ subj (car ctype))))
+ )))
+\end{verbatim}
+
+\noindent This will show the content subjects only for the contents whose body
+portions are to be hidden.
+
+
+\subsection{content header}
+
+A content header shows the header portion of a content in the preview
+buffer. The default setup will show no content headers.
+
+You can customize how the content header appears in the preview
+buffer by modifying a definition of mime/make-content-header-filter
+variable. The tm-view provides a following default definition.
+
+
+\begin{verbatim}
+(defvar mime/make-content-header-filter
+ (function
+ (lambda (cid)
+ (if (listp cid)
+ (delete-region (goto-char (point-min))
+ (or (and (re-search-forward "^$" nil t)
+ (match-end 0))
+ (point-max))
+ )
+ )
+ )))
+\end{verbatim}
+
+\noindent The default setting removes all content headers
+until it detects a blank line delimiting the headers and the body.
+If you change a mime/make-content-header-filter variable like
+
+\begin{verbatim}
+(setq mime/make-content-header-filter
+ (function
+ (lambda (cid)
+ )))
+\end{verbatim}
+
+\noindent you will see all headers in the content header portion.
+
+
+\subsection{content body}
+
+According to the type of content, the body portion of the content
+is managed by tm-view using
+
+\begin{enumerate}
+\item Hide
+\item Process
+\end{enumerate}
+
+\noindent techniques before it is put in the preview buffer.
+
+'Hide' is performed to prevent showing the non-text type content body
+in the preview buffer. A mime/default-showing-Content-Type-list
+variable defines which type of contents will NOT be hidden. It has
+the following default value.
+
+\begin{verbatim}
+(defvar mime/default-showing-Content-Type-list
+ '("text/plain" "text/richtext" "text/enriched" "text/x-latex" nil))
+\end{verbatim}
+
+\noindent All contents are hidden except text/plain, text/richtext,
+text/enriched, text/x-latex, and non-MIME contents.
+
+A content body which was not "hidden" is then "processed". A list
+in a mime/content-filter-alist variable will be searched looking up
+an entry which matches with the content-type of a content. If a matching
+entry is found, the function defined in that entry will be called
+to "process" a content body.
+
+A mime/content-filter-alist variable has nil as a default value. It
+will have non-nil after loading tm-rich.el which contains the following
+lines.
+
+\begin{verbatim}
+(aput 'mime/content-filter-alist
+ "text/enriched" (function mime/decode-text/enriched-body))
+\end{verbatim}
+
+\noindent This is defining a process to be done to the text/enriched
+type content body. A function mime/decode-text/enriched-body will
+be called if a text/enriched body need to be "processed".
+
+
+\section{Restrictions}
+
+A decode-b.c file in the tm package is the source of the BASE64
+decoder. As it was not thoroughly tested, it may not work for you.
+But at least you can see what it wants to do so that you can correct
+errors in the source code. (\verb+^+\_\verb+^+;
+
+Or you can use mmencode in the metamail package to decode the BASE64
+encoded messages.
+
+Use mmencode to decode the Quoted-Printable messages. The tm package
+does not include the decoder for Quoted-Printable.
+
+
+\chapter{tiny-mime}
+
+tiny-mime is a multi-lingual MIME style message header
+encoder/decoder based on RFC 1522 for Mule, NEmacs, and NEpoch. It
+is based on Mr. Enami's ISO-2022-JP Base64 MIME header decoder which
+could decode only ISO-2022-JP Base64-encoded headers. The following list
+shows some of the functional enhancemets I made in tiny-mime.
+
+\begin{itemize}
+\item unfolding at decoding
+\item encoding/decoding multilingual character sets, such as,
+ ISO-2022-JP, ISO-2022-JP-2, ISO-2022-CN, ISO-2022-KR, ISO-8859-*,
+ US-ASCII, EUC-KR
+\item Q-encoding
+\item compliance with RFC 1522
+\end{itemize}
+
+\noindent and more.
+
+tiny-mime is a MIME headers encoder/decoder in the tm package and used
+by tm-view and tm-MUAs.
+
+
+\section{mime/decode-message-header}
+
+{\tt mime/decode-message-header} is a command to decode the MIME headers.
+You need to load tiny-mime before you can use this command.
+
+{\list{}{\leftmargin=8ex}\item[]
+\par
+M-x {\tt mime/decode-message-header}
+\endlist}
+
+\noindent will decode the MIME headers in the current buffer.
+
+tm-MUAs and tm-view use this command to decode the MIME headers.
+Therefore, it may not be required to explicitly execute this command if
+you are using them.
+
+
+\section{mime/decode-region}
+
+You can decode the MIME messages within the specified region by executing
+
+{\list{}{\leftmargin=8ex}\item[]
+\par
+M-x {\tt mime/decode-region}
+\endlist}
+
+\noindent This is useful when you want to decode the MIME headers
+which are yanked from the referenced article.
+
+
+\chapter{Reporting Bugs}
+
+Please report tm bugs you find to fj.editor.emacs or send a mail to
+tm ML, $<$tm@chamonix.jaist.ac.jp$>$.
+
+Via tm ML, You can report bugs of tm, obtain the latest release of tm
+package, and discuss the future enhancements to tm. To join tm ML,
+send a mail to
+
+\begin{center}
+ tm-admin@chamonix.jaist.ac.jp
+\end{center}
+
+\noindent Since the user registration is manually done, please write
+the mail body in human-recognizable language (\verb+^+\_\verb+^+).
+
+\end{document}
--- /dev/null
+head 5.4;
+access;
+symbols;
+locks; strict;
+comment @% @;
+
+
+5.4
+date 94.10.17.03.05.02; author morioka; state Exp;
+branches;
+next 5.2;
+
+5.2
+date 94.10.17.02.55.02; author morioka; state Exp;
+branches;
+next ;
+
+
+desc
+@@
+
+
+5.4
+log
+@I added description for vm.
+@
+text
+@\documentstyle{report}
+
+\title{tm Reference Manual (English Edition)}
+\author{{\Large Morioka Tomohiko} \\
+ {\normalsize $<$morioka@@jaist.ac.jp$>$}\\
+ \\
+ {\large translated by \Large Ueno Hiroshi} \\
+ {\normalsize $<$jl07715@@yamato.ibm.co.jp$>$}
+ }
+\date{\verb$Id: tm-eng.tex,v 5.2 1994/10/17 02:55:02 morioka Exp morioka $}
+
+\begin{document}
+
+\maketitle
+\tableofcontents
+
+\chapter{Overview}
+
+The tm package is a set of modules to enjoy MIME on GNU Emacs. Using tm,
+you can
+
+\begin{itemize}
+\item playback or view the MIME messages using new mime/viewer-mode
+\item encode and decode the multi-lingual headers
+\item use the enhanced MIME functions with mh-e, GNUS, and RMAIL
+\end{itemize}
+
+\noindent and more.
+
+
+\section{Module List}
+
+The tm package includes the modules listed below.
+
+\begin{itemize}
+\item {\bf tiny-mime} : MIME header encoder/decoder
+\item {\bf tm-view} : MIME message viewer
+\item {\bf tm-misc} : common part of tm-MUAs
+\item {\bf tm-MUAs} : MIME function enhancer for MUAs
+ \begin{itemize}
+ \item {\bf tm-mh-e} : tm-MUA for mh-e
+ \item {\bf tm-gnus} : tm-MUA for GNUS
+ \item {\bf tm-rmail} : tm-MUA for RMAIL
+ \item {\bf tm-vm} : tm-MUA for vm
+ \end{itemize}
+\item {\bf tm-setup} tm-MUA setup module
+\item {\bf mime-setup} MIME setup module
+\end{itemize}
+
+
+\chapter{Considerations for Each Version of Emacs}
+
+\section{Emacs (original)}
+
+A single character set can be used if you use the original Emacs.
+
+\section{NEmacs, NEpoch}
+
+ISO-2022-JP and US-ASCII can be used if you use NEmacs.
+
+
+\section{Mule}
+
+Mule can handle the multi-lingual text. With Mule, tiny-mime supports
+ISO-2022-JP, ISO-2022-JP-2, US-ASCII, ISO-8859-1..9, ISO-2022-CN,
+ISO-2022-KR, EUC-KR, etc. You can also add or change
+encoding/decoding for character sets by mime/set-charset-and-encoding
+function.
+
+
+\chapter{Installation and Setup}
+
+\section{Installation}
+
+You can install tm by following the procedures below.
+
+\begin{enumerate}
+\item modify bindir definition in Makefile according to your build
+ environment.
+\item modify the method scripts in methods/ directory so that it
+ can work in your environment. Refer to \ref{sec:method} section
+ for how you can suit the method scripts to your environment.
+\item make all
+\item make install
+\item copy all files with .el suffix into the directory pointed by Emacs
+ load-path variable.
+\end{enumerate}
+
+\noindent{\bf [Notes]}
+\begin{itemize}
+\item Make sure mh-e version 3.x has been loaded before byte-compiling
+ tm-mh-e3.el.
+\item Make sure GNUS 3 has been loaded before byte-compiling tm-gnus3.el.
+\item Use Emacs 18 when you byte-compile tl-18.el.
+\item Use the original Emacs when you byte-compile tl-orig.el.
+\item Use NEmacs when you byte-compile tl-nemacs.el.
+\item Use Mule when you byte-compile tl-mule.el.
+\item Modules byte-compiled by Emacs 19 do not work with Emacs 18.
+\end{itemize}
+
+
+\section{Setup}
+
+In the tm package, two files, mime-setup.el and tm-setup.el, are provided
+to ease the setup. A mime-setup.el is used for the whole MIME related
+setup including MIME encoding, while tm-setup is used to set up tm-MUA
+only.
+
+
+\subsection{mime-setup}
+
+\begin{verbatim}
+(load "mime-setup")
+\end{verbatim}
+
+\noindent will perform various settings of MIME. As mime-setup loads
+tm-setup, you do not need to load tm-setup when you use mime-setup.
+
+You can also set up the "automatic signature selection tool" using
+mime-setup. If you want to automatically select the signature file
+depending on how the message headers show, add lines like shown below
+to your .emacs (Refer to the reference manual of signature.el for
+more details).
+
+\begin{verbatim}
+(setq signature-file-alist
+ '((("Newsgroups" . "jokes") . "~/.signature-jokes")
+ (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun")
+ (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun")
+ (("To" . "tea") . "~/.signature-jokes")
+ (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal")
+ ))
+\end{verbatim}
+
+mime-setup requires mime.el. if you set up SuperCite via mime-setup,
+you need the SuperCite package also.
+
+
+\subsection{tm-setup}
+
+tm-setup only sets up tm-MUAs. You do not need to explicitly load
+tm-setup if you are using mime-setup for your setup. tm-setup is useful
+when you do not want to use mime-setup but want to set up tm-MUAs.
+
+\begin{verbatim}
+(load "tm-setup")
+\end{verbatim}
+
+
+\subsection{vm}
+
+If you want use vm, please insert following in .vm or .emacs:
+
+\begin{verbatim}
+(load "tm-vm")
+\end{verbatim}
+
+
+\subsection{setting up without loading provided setup files}
+
+You may find the valuable hints in tm-setup.el if you want to set up
+MIME environment without loading the tm-provided setup files.
+
+
+\subsection{setting up MH}
+
+If you are using MH-6.8JP2, add the following lines to your
+.mh\_profile.
+
+\begin{verbatim}
+scan: -form scan.mime
+inc: -form inc.mime
+repl: -form replcomps.mime
+showproc: mhl
+\end{verbatim}
+
+\noindent Emacs will handle the most part of MH processing. You
+should not specify further options in your MH profile to avoid any
+possible conflict between MH and Emacs.
+
+
+
+\chapter{tm-MUA}
+
+``tm-MUA'' is a generic name of the modules which enhance the MIME
+functions of MUA like mh-e, GNUS, and RMAIL etc.
+
+The current version of tm provides the following tm-MUA.
+
+\begin{itemize}
+\item {\bf tm-mh-e} : tm-MUA for mh-e
+\item {\bf tm-gnus} : tm-MUA for GNUS
+\item {\bf tm-rmail} : tm-MUA for RAMIL
+\end{itemize}
+
+\noindent You can find the detailed explanations of these modules in
+the following sections.
+
+
+\section{Summary Mode}
+
+If you are using tm-MUA, the following functions are added to the Summary
+mode of the MUA.
+
+\medskip
+\begin{center}
+ \begin{tabular}{|l|l|}\hline
+ key & function \\ \hline
+ M-t & toggles decoding of MIME headers \\
+ v & enters mime/view-mode \\ \hline
+ \end{tabular}
+\end{center}
+\medskip
+
+
+\section{mime/viewer-mode}
+\label{sec:mime/viewer-mode}
+
+If you are using tm-MUA, mime/viewer-mode becomes active by pressing
+{\bf v} key in the Summary mode. In mime/viewer-mode, you can manipulate
+the MIME messages by the simple key operations. The following list shows
+the functions and their key bindings which can be used in mime/viewer-mode.
+
+\medskip
+\begin{center}
+ \begin{tabular}{|l|l|}\hline
+ key & function \\ \hline
+ u & goes to the upper content \\
+ & returns to the Summary mode if the cursor is sitting on
+ the top content (*1) \\
+ p & goes to the previous content \\
+ n & goes to the next content \\
+ SPC & scrolls up \\
+ M-SPC & scrolls down \\
+ DEL & scrolls down \\
+ RET & goes to the next line \\
+ M-RET & goes to the previous line \\
+ v & playbacks a content (*2) \\
+ e & extracts a file from a content (*2) \\
+ C-c C-p & prints a content (*2) \\ \hline
+ \end{tabular}
+\end{center}
+\medskip
+
+\bigskip
+
+\newcounter{asteriskcount}
+\noindent{\bf \e$B!N\e(BNote\e$B!O\e(B}
+\vspace{-1ex}
+{\list{(*\arabic{asteriskcount})}{\usecounter{asteriskcount}\leftmargin=8ex}
+\item Not return to the Summary mode unless tm-view has been setup using
+tm-mh-e, tm-gnus, tm-rmail etc.
+\item Actual playback/extract/print will be performed by a method.
+\endlist}
+
+
+\section{Customizing tm-gnus}
+
+\subsection{saving articles without decoding}
+
+By default, The articles will be saved as they appear in the buffer
+at that time.
+
+You can save the articles always without decoding by setting a
+tm-gnus/set-mime-header-decoding-mode variable to nil then call a
+function which saves the articles.
+
+The following example shows how you can save an article without
+decoding, preserving the current MIME header decoding mode.
+
+\begin{verbatim}
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (article save function)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )
+\end{verbatim}
+
+The following is an example that saves the articles to a folder
+of mh-e.
+
+\begin{verbatim}
+(add-hook 'gnus-Startup-hook
+ (function
+ (lambda ()
+ (setq gnus-default-article-saver
+ (function
+ (lambda ()
+ (interactive)
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (gnus-Subject-save-in-folder)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )))))))
+(add-hook 'gnus-startup-hook
+ (function
+ (lambda ()
+ (setq gnus-default-article-saver
+ (function
+ (lambda ()
+ (interactive)
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (gnus-summary-save-in-folder)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )))))))
+\end{verbatim}
+
+\subsection{replying with encoded subject to an article with encoded subject}
+
+When you reply to an article, you may want to encode the Subject field only
+when the original article has an encoded Subject. It can be done by
+defining a hook as shown below.
+
+\begin{verbatim}
+(add-hook 'gnus-article-prepare-hook
+ (function
+ (lambda ()
+ (if (mime/exist-encoded-word-in-subject)
+ (setq mime/no-encoding-header-fields '("X-Nsubject"))
+ (setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
+ ))))
+\end{verbatim}
+
+
+\chapter{tm-view}
+
+tm-view is a module which is used to examine the MIME messages.
+It provides a mime/viewer-mode for that purpose.
+
+Regarding the functions of mime/viewer-mode, refer to
+\ref{sec:mime/viewer-mode} section.
+
+\section{Defining Conditions of Decoding}
+
+A mime/content-decoding-condition variable is used to define the methods
+which will be called at decoding. It replaces a
+mime/content-decoding-method-alist variable of tm-view version 4.x.
+
+A mime/content-decoding-method-alist only allowed you to define a
+method used for each content-type/subtype. Now a
+mime/content-decoding-condition variable allows you to write more
+complicated statements to describe the more detailed conditions to determine
+which method is to be use.
+
+A mime/content-decoding-condition variable is defined as a list with the
+following syntax.
+
+\begin{eqnarray*}
+ (condition_1 \;\; condition_2 \;\; ...)
+\end{eqnarray*}
+
+\noindent Each condition is an association list with the following
+syntax.
+
+\begin{eqnarray*}
+ ((field-type_1 \; . \; value_1) \;\;
+ (field-type_2 \; . \; value_2) \;\; ...)
+\end{eqnarray*}
+
+\noindent
+
+For example, if you want to call the external method named tm-plain
+to decode every text/plain type content, you can define the condition like
+
+\begin{quote}
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+\end{quote}
+
+\noindent As you notice, now you can define the arguments to pass to a
+external method. Refer to \ref{sec:method-arguments} section for more
+explanation.
+
+This condition definition will match all contents whose types are text/plain.
+Here is an another example.
+
+\begin{quote}
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
+ (mode . "play"))
+\end{quote}
+
+\noindent This will match the content whose type is text/plain and
+the mode is play.
+
+
+\begin{quote}
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
+ (mode . "play"))
+\end{quote}
+
+\noindent This will match all contents which have a mode of play.
+
+The conditions defined in a mime/content-decoding-condition variable
+are examined from top to bottom. The first matching condition
+becomes valid and the method specified in that condition definition
+will be executed.
+
+
+\subsection{arguments of method}
+\label{sec:method-arguments}
+
+You can specify the method field of the condition definition in two
+different ways.
+
+\begin{eqnarray*}
+ (method \; . \; SYMBOL)
+\end{eqnarray*}
+
+\noindent or
+
+\begin{eqnarray*}
+ (method \; STRING \; FLAG \; ARGUMENT_1 \; ARGUMENT_2 \; ...)
+\end{eqnarray*}
+
+\noindent can be accepted.
+
+When a symbol is specified in the method field, it will be called as
+an internal method.
+
+When a list is specified in the method field, it will be called as an
+external method. The list below shows the meaning of the parameters
+when the external method is specified in the method field.
+
+\begin{description}
+\item [STRING] name of an external method
+\item [FLAG] if t, both the content header and the content body are
+ passed to an external method. if nil, only the content body is
+ passed to an external method.
+\item [ARGUMENT$_x$] list of arguments passed to an external method
+\end{description}
+
+An argument passed to an external method can be in one of the following
+formats.
+
+\begin{quote}
+ \begin{tabular}{lcl}
+ STRING&:&string itself \\
+ 'SYMBOL&:&value gotten using SYMBOL as a key (see below) \\
+ 'STRING&:&value gotten using STRING as a key (see below)
+ \end{tabular}
+\end{quote}
+
+'SYMBOL can be one of the following.
+
+\begin{quote}
+ \begin{tabular}{lcl}
+ 'file&:&name of a file holding the original content \\
+ 'type&:&content-type/sub-type \\
+ 'encoding&:&content-transfer-encoding \\
+ 'mode&:&decoding mode \\
+ 'name&:&name of a file created by decode operation
+ \end{tabular}
+\end{quote}
+
+\noindent 'STRING is used to search a parameter of the Content-Type
+field whose name matches with it, and pass the value of that parameter
+to the external method.
+
+
+\subsection{examples}
+
+The default definition of a mime/content-decoding-condition variable is
+shown below.
+
+\begin{verbatim}
+(defvar mime/content-decoding-condition
+ '(((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "text/x-latex")
+ (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "audio/basic")
+ (method "tm-au" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/gif")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/jpeg")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-xbm")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-pic")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "video/mpeg")`
+ (method "tm-mpeg" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "application/octet-stream")
+ (method "tm-file" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "message/partial")
+ (method . mime/decode-message/partial-region))
+ ((method "metamail" t
+ "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
+ ))
+\end{verbatim}
+
+For example, if you want to use metamail to decode any contents,
+
+\begin{verbatim}
+(setq mime/content-decoding-condition
+ '(
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
+ ))
+\end{verbatim}
+
+\noindent will work.
+
+A mime/content-decoding-condition variable provides you of very flexible
+way to define the conditions of decoding. It can be simple if you only
+need the a few decoding methods, while it can be very complicated if you
+want to use the separate decoding method for each type/mode combination.
+
+
+\section{Method Script}
+\label{sec:method}
+
+The methods are written in shell script. The arguments passed from tm-view.el
+to each method can be customized using mime/content-decoding-condition
+variable. If you use the tm-provided setting of
+mime/content-decoding-condition variable, the following arguments are
+passed to the method.
+
+\medskip
+\begin{center}
+ \begin{tabular}{|c|l|} \hline
+ argument & \multicolumn{1}{|c|}{ meaning }\\ \hline
+ \$1 & file name before decoded \\
+ \$2 & Content-Type (type/sub-type) \\
+ \$3 & encoding
+ \{7bit / quoted-printable / base64 / 8bit / binary / ...\}\\
+ \$4 & decoding-mode \{play / extract / print\} \\
+ \$5 & file name after decoded \\ \hline
+ \end{tabular}
+\end{center}
+\medskip
+
+Exceptionally, no method is used to restore message/partial messages
+into one message. It is done by tm-view.el itself.
+
+
+\section{Changing Appearance}
+
+Each content in the preview buffer is shown in the following format.
+
+\begin{verbatim}
+[1 (text/plain)]
+
+body
+\end{verbatim}
+
+\noindent tm-view shows one content in three separate portions.
+
+\begin{itemize}
+\item content subject
+\item content header
+\item content body
+\end{itemize}
+
+\noindent
+
+
+\subsection{content subject}
+
+A content subject indicates the beginning of a content in the preview
+buffer. By default, it will be shown as below.
+
+\begin{quote}
+ [cid title (type)]
+\end{quote}
+
+\noindent The cid field shows the position of a content in the message.
+It can be considered as the chapter number in the message. The title
+field is composed of the text string from the Subject and the
+Content-Description field. The type field is a copy of a
+text string specified in the type/subtype field of the content.
+
+You can customize how the content subject appears in the preview
+buffer by modifying a definition of mime/make-content-subject-function
+variable. The tm-view provides a following definition as a default.
+
+\begin{verbatim}
+(defvar mime/make-content-subject-function
+ (function
+ (lambda (cid subj ctype)
+ (insert
+ (format "[%s %s (%s)]\n"
+ (if (listp cid)
+ (mapconcat (function
+ (lambda (num)
+ (format "%s" (+ num 1))
+ ))
+ cid ".")
+ "0")
+ subj (car ctype)))
+ )))
+\end{verbatim}
+
+\noindent The following is an example of the customization.
+
+\begin{verbatim}
+(setq mime/make-content-subject-function
+ (function
+ (lambda (cid subj ctype)
+ (if (not (member (car ctype) mime/default-showing-Content-Type-list))
+ (insert
+ (format "[%s %s (%s)]\n"
+ (if (listp cid)
+ (mapconcat (function
+ (lambda (num)
+ (format "%s" (+ num 1))
+ ))
+ cid ".")
+ "0")
+ subj (car ctype))))
+ )))
+\end{verbatim}
+
+\noindent This will show the content subjects only for the contents whose body
+portions are to be hidden.
+
+
+\subsection{content header}
+
+A content header shows the header portion of a content in the preview
+buffer. The default setup will show no content headers.
+
+You can customize how the content header appears in the preview
+buffer by modifying a definition of mime/make-content-header-filter
+variable. The tm-view provides a following default definition.
+
+
+\begin{verbatim}
+(defvar mime/make-content-header-filter
+ (function
+ (lambda (cid)
+ (if (listp cid)
+ (delete-region (goto-char (point-min))
+ (or (and (re-search-forward "^$" nil t)
+ (match-end 0))
+ (point-max))
+ )
+ )
+ )))
+\end{verbatim}
+
+\noindent The default setting removes all content headers
+until it detects a blank line delimiting the headers and the body.
+If you change a mime/make-content-header-filter variable like
+
+\begin{verbatim}
+(setq mime/make-content-header-filter
+ (function
+ (lambda (cid)
+ )))
+\end{verbatim}
+
+\noindent you will see all headers in the content header portion.
+
+
+\subsection{content body}
+
+According to the type of content, the body portion of the content
+is managed by tm-view using
+
+\begin{enumerate}
+\item Hide
+\item Process
+\end{enumerate}
+
+\noindent techniques before it is put in the preview buffer.
+
+'Hide' is performed to prevent showing the non-text type content body
+in the preview buffer. A mime/default-showing-Content-Type-list
+variable defines which type of contents will NOT be hidden. It has
+the following default value.
+
+\begin{verbatim}
+(defvar mime/default-showing-Content-Type-list
+ '("text/plain" "text/richtext" "text/enriched" "text/x-latex" nil))
+\end{verbatim}
+
+\noindent All contents are hidden except text/plain, text/richtext,
+text/enriched, text/x-latex, and non-MIME contents.
+
+A content body which was not "hidden" is then "processed". A list
+in a mime/content-filter-alist variable will be searched looking up
+an entry which matches with the content-type of a content. If a matching
+entry is found, the function defined in that entry will be called
+to "process" a content body.
+
+A mime/content-filter-alist variable has nil as a default value. It
+will have non-nil after loading tm-rich.el which contains the following
+lines.
+
+\begin{verbatim}
+(aput 'mime/content-filter-alist
+ "text/enriched" (function mime/decode-text/enriched-body))
+\end{verbatim}
+
+\noindent This is defining a process to be done to the text/enriched
+type content body. A function mime/decode-text/enriched-body will
+be called if a text/enriched body need to be "processed".
+
+
+\section{Restrictions}
+
+A decode-b.c file in the tm package is the source of the BASE64
+decoder. As it was not thoroughly tested, it may not work for you.
+But at least you can see what it wants to do so that you can correct
+errors in the source code. (\verb+^+\_\verb+^+;
+
+Or you can use mmencode in the metamail package to decode the BASE64
+encoded messages.
+
+Use mmencode to decode the Quoted-Printable messages. The tm package
+does not include the decoder for Quoted-Printable.
+
+
+\chapter{tiny-mime}
+
+tiny-mime is a multi-lingual MIME style message header
+encoder/decoder based on RFC 1522 for Mule, NEmacs, and NEpoch. It
+is based on Mr. Enami's ISO-2022-JP Base64 MIME header decoder which
+could decode only ISO-2022-JP Base64-encoded headers. The following list
+shows some of the functional enhancemets I made in tiny-mime.
+
+\begin{itemize}
+\item unfolding at decoding
+\item encoding/decoding multilingual character sets, such as,
+ ISO-2022-JP, ISO-2022-JP-2, ISO-2022-CN, ISO-2022-KR, ISO-8859-*,
+ US-ASCII, EUC-KR
+\item Q-encoding
+\item compliance with RFC 1522
+\end{itemize}
+
+\noindent and more.
+
+tiny-mime is a MIME headers encoder/decoder in the tm package and used
+by tm-view and tm-MUAs.
+
+
+\section{mime/decode-message-header}
+
+{\tt mime/decode-message-header} is a command to decode the MIME headers.
+You need to load tiny-mime before you can use this command.
+
+{\list{}{\leftmargin=8ex}\item[]
+\par
+M-x {\tt mime/decode-message-header}
+\endlist}
+
+\noindent will decode the MIME headers in the current buffer.
+
+tm-MUAs and tm-view use this command to decode the MIME headers.
+Therefore, it may not be required to explicitly execute this command if
+you are using them.
+
+
+\section{mime/decode-region}
+
+You can decode the MIME messages within the specified region by executing
+
+{\list{}{\leftmargin=8ex}\item[]
+\par
+M-x {\tt mime/decode-region}
+\endlist}
+
+\noindent This is useful when you want to decode the MIME headers
+which are yanked from the referenced article.
+
+
+\chapter{Reporting Bugs}
+
+Please report tm bugs you find to fj.editor.emacs or send a mail to
+tm ML, $<$tm@@chamonix.jaist.ac.jp$>$.
+
+Via tm ML, You can report bugs of tm, obtain the latest release of tm
+package, and discuss the future enhancements to tm. To join tm ML,
+send a mail to
+
+\begin{center}
+ tm-admin@@chamonix.jaist.ac.jp
+\end{center}
+
+\noindent Since the user registration is manually done, please write
+the mail body in human-recognizable language (\verb+^+\_\verb+^+).
+
+\end{document}
+@
+
+
+5.2
+log
+@*** empty log message ***
+@
+text
+@d10 1
+a10 1
+\date{\verb$Id: tm-eng.tex,v 5.2 1994/10/11 17:17:05 morioka Exp $}
+d44 1
+d147 9
+@
--- /dev/null
+\documentstyle[a4j]{jreport}
+
+\title{tm ÀâÌÀ½ñ}
+\author{¼é²¬ ÃÎɧ\\
+ morioka@jaist.ac.jp}
+\date{\verb$Id: tm-jp.tex,v 5.4 1994/10/17 02:58:20 morioka Exp $}
+
+\begin{document}
+
+\maketitle
+\tableofcontents
+
+\chapter{¤Ï¤¸¤á¤Ë}
+
+tm ¤Ï GNU Emacs ¤Ç MIME ¤ò³Ú¤·¤à¤¿¤á¤Î package ¤Ç¤¹¡£tm ¤ò»È¤¦¤È¡¢
+
+\begin{itemize}
+\item mime/viewer-mode ¤ò»È¤Ã¤¿ MIME message ¤Î±ÜÍ÷¡¦ºÆÀ¸
+\item ¿¸À¸ì header ¤Î encode/decode
+\item mh-e, GNUS, RMAIL ¤Ç¤Î MIME µ¡Ç½¤Î¶¯²½
+\end{itemize}
+
+\noindent ¤¬¹Ô¤Ê¤¨¤Þ¤¹¡£
+
+
+\section{Module °ìÍ÷}
+
+tm ¤Ï°Ê²¼¤Î module ¤«¤é¤Ê¤ê¤Þ¤¹¡£
+
+\begin{itemize}
+\item {\bf tiny-mime} : MIME header encoder/decoder
+\item {\bf tm-view} : MIME viewer
+\item {\bf tm-misc} : tm-MUA ¤Î¶¦ÄÌ module
+\item {\bf tm-MUAs} : MUA ¤Î MIME µ¡Ç½¶¯²½ module
+ \begin{itemize}
+ \item {\bf tm-mh-e} : mh-e ÍѤΠtm-MUA
+ \item {\bf tm-gnus} : GNUS ÍѤΠtm-MUA
+ \item {\bf tm-rmail} : RMAIL ÍѤΠtm-MUA
+ \item {\bf tm-vm} : vm ÍѤΠtm-MUA
+ \end{itemize}
+\item {\bf tm-setup} tm-MUA ¤ÎÀßÄê module
+\item {\bf mime-setup} MIME ´Ø·¸¤ÎÀßÄê module
+\end{itemize}
+
+
+\chapter{Emacs version Ê̤ε¡Ç½¤ª¤è¤ÓÀ©¸Â}
+
+\section{Emacs (original)}
+
+Original ¤Î Emacs ¤Ç¤Ï¡¢ÅöÁ³¤Î¤³¤È¤Ê¤¬¤é¡¢Ã±°ìʸ»ú½¸¹ç¤·¤«»È¤¨¤Þ¤»¤ó¡£
+
+
+\section{NEmacs, NEpoch}
+
+NEmacs ¤Ç¤Ï¡¢ISO-2022-JP ¤ª¤è¤Ó US-ASCII ¤¬»È¤¨¤Þ¤¹¡£
+
+
+\section{Mule}
+
+ISO-2022-JP, ISO-2022-JP-2, US-ASCII, ISO-8859-1..9, ISO-2022-CN,
+ISO-2022-KR, EUC-KR ¤Ê¤É¤Î¿¸À¸ì header ¤¬»È¤¨¤Þ¤¹¡£¤Þ¤¿¡¢´Ø¿ô
+mime/set-charset-and-encoding ¤ÇÄɲá¦Êѹ¹¤¬¤Ç¤¤Þ¤¹¡£
+
+
+\chapter{Install ¤ÈÀßÄê}
+
+\section{Install}
+
+Install ¤Ï¼¡¤Î¼ê½ç¤Ç¹Ô¤Ê¤¤¤Þ¤¹¡£
+
+\begin{enumerate}
+\item Makefile ¤Î bindir ¤ò¼«Ê¬¤Î´Ä¶¤Ë¹ç¤ï¤»¤Æ½ñ¤´¹¤¨¤ë¡£
+\item methods/ °Ê²¼¤Ë¤¢¤ë method script ¤ò \ref{sec:method} Àá¤ò»²¾È¤·
+ ¤Æ¡¢¼«Ê¬¤Î´Ä¶¤Ë¹ç¤¦¤è¤¦¤Ë½ñ¤´¹¤¨¤ë¡£
+\item make all ¤¹¤ë¡£
+\item make install ¤¹¤ë¡£
+\item *.el ¤ò Emacs ¤ÎÊÑ¿ô load-path ¤Ç»ØÄꤵ¤ì¤¿ directory ¤Ë copy ¤¹¤ë¡£
+\end{enumerate}
+
+\noindent{\bf [Ãí°Õ]}
+\begin{itemize}
+\item tm-mh-e3.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢mh-e version 3.* ¤ò load
+ ¤·¤¿¾õÂ֤ǹԤʤäƲ¼¤µ¤¤¡£
+\item tm-gnus3.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢GNUS 3 ¤¬ load ¤µ¤ì¤¿¾õ
+ Â֤ǹԤʤäƲ¼¤µ¤¤¡£
+\item tl-18.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢Emacs 18 ¤Ç¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£
+\item tl-orig.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢original Emacs ¤Ç¹Ô¤Ê¤Ã¤Æ
+ ²¼¤µ¤¤¡£
+\item tl-nemacs.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢NEmacs ¤Ç¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£
+\item tl-mule.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢Mule ¤Ç¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£
+\item Emacs 19 ¤Ç byte-compile ¤·¤¿ module ¤Ï Emacs 18 ¤Ç¤ÏÆ°¤¤Þ¤»¤ó¡£
+\end{itemize}
+
+
+\section{ÀßÄê}
+
+¤³¤Î package ¤Ë¤Ï mime-setup.el ¤È tm-setup.el ¤È¤¤¤¦´Ê°×ÀßÄê file ¤¬
+Éí°¤·¤Æ¤¤¤Þ¤¹¡£mime-setup.el ¤Ç¤Ï encoding ¤â´Þ¤á¤¿ÀßÄê¤ò¹Ô¤Ê¤¤¡¢
+tm-setup ¤Ç¤Ï tm-MUA ¤Ë´Ø¤¹¤ëÀßÄê¤Î¤ß¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£
+
+\subsection{mime-setup}
+
+\begin{verbatim}
+(load "mime-setup")
+\end{verbatim}
+
+\noindent ¤È¤¹¤ë¤È MIME ¤Ë´Ø¤¹¤ë³Æ¼ïÀßÄê¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£mime-setup ¤Ï
+tm-setup ¤òÆɤó¤Ç¤¤¤ë¤Î¤Ç¡¢mime-setup ¤ò»È¤¦¾ì¹ç¡¢tm-setup ¤ò load ¤¹
+¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
+
+mime-setup ¤Ç¤Ï signature ¤Î¼«Æ°ÀÚÂؤ¨ tool ¤âÉí°¤·¤Æ¤¤¤Þ¤¹¡£
+message header ¤Î field ¤Ë¹ç¤ï¤»¤Æ signature ¤Î¼«Æ°ÀÚÂؤò¹Ô¤Ê¤¤¤¿¤¤¾ì
+¹ç¤Ï .emacs ¤Ë°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£¡Ê¾Ü¤·¤¯¤Ï signature.el
+¤ÎÀâÌÀ½ñ¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡Ë
+
+\begin{verbatim}
+(setq signature-file-alist
+ '((("Newsgroups" . "jokes") . "~/.signature-jokes")
+ (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun")
+ (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun")
+ (("To" . "tea") . "~/.signature-jokes")
+ (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal")
+ ))
+\end{verbatim}
+
+mime-setup ¤ò»È¤¦¾ì¹ç¤Ï¡¢mime.el ¤¬É¬ÍפǤ¹¡£¤Þ¤¿¡¢SuperCite ¤ò»È¤¦¾ì
+¹ç¤Ï¡¢SuperCite ¤âɬÍפǤ¹¡£
+
+
+\subsection{tm-setup}
+
+tm-setup ¤Ï tm-MUA ¤ÎÀßÄê¤Î¤ß¤ò¹Ô¤Ê¤¦ module ¤Ç¤¹¡£mime-setup ¤ò load
+¤·¤Æ¤¤¤ë¾ì¹ç¡¢¤³¤ì¤òÍÛ¤Ë load ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¤¬¡¢mime-setup ¤ò»È
+¤¤¤¿¤¯¤Ê¤¤¾ì¹ç¡¢°Ê²¼¤Î¤è¤¦¤Ë¤³¤ì¤ò load ¤·¤Æ²¼¤µ¤¤¡£
+
+\begin{verbatim}
+(load "tm-setup")
+\end{verbatim}
+
+
+\subsection{vm}
+
+vm ¤ò»È¤¦¾ì¹ç¤Ï .vm ¤« .emacs ¤Ë
+
+\begin{verbatim}
+(load "tm-vm")
+\end{verbatim}
+
+\noindent ¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£
+
+
+\subsection{ÀßÄê file ¤ò»È¤ï¤Ê¤¤¾ì¹ç}
+
+tm-setup.el ¤ò»²¹Í¤Ë¤·¤Æ²¼¤µ¤¤¡£
+
+
+\subsection{MH ¤ÎÀßÄê}
+
+¤Þ¤¿¡¢MH ¤¬ MH-6.8JP2 ¤Î¾ì¹ç¡¢.mh\_profile ¤Ë
+
+\begin{verbatim}
+scan: -form scan.mime
+inc: -form inc.mime
+repl: -form replcomps.mime
+showproc: mhl
+\end{verbatim}
+
+\noindent ¤òÄɲ䷤Ƥ¯¤À¤µ¤¤¡£¤Þ¤¿¡¢¤½¤ì°Ê³°¤Î MH ¤Î½èÍý¤Ï Emacs ¤Î¦
+¤Ç¼è¤ê»ÅÀÚ¤ë¤Î¤Ç¡¢MH ¤ÎÀßÄê¤Ï¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
+
+
+\chapter{tm-MUA}
+
+``tm-MUA'' ¤È¤¤¤¦¤Î¤Ï¡¢mh-e, GNUS, RMAIL ¤Ê¤É¤Î MUA ¤Î¤¿¤á¤Î MIME µ¡Ç½
+¶¯²½ module ¤ÎÁí¾Î¤Ç¤¹¡£
+
+¸½ºß¡¢tm-MUA ¤Ë¤Ï¡¢
+
+\begin{itemize}
+\item {\bf tm-mh-e} : mh-e ÍѤΠtm-MUA
+\item {\bf tm-gnus} : GNUS ÍѤΠtm-MUA
+\item {\bf tm-rmail} : RMAIL ÍѤΠtm-MUA
+\item {\bf tm-vm} : VM ÍѤΠtm-MUA
+\end{itemize}
+
+\noindent ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¾Ï¤Ç¤Ï¤³¤ì¤é¤Î module ¤Ë´Ø¤·¤ÆÀâÌÀ¤·¤Þ¤¹¡£
+
+
+\section{Summary mode}
+
+tm-MUA ¤ò»È¤¦¤È¡¢¸µ¤Î MUA ¤Î Summary mode ¤ËÂФ·¤Æ°Ê²¼¤Îµ¡Ç½¤¬Äɲ䵤ì
+¤Þ¤¹¡£
+
+\medskip
+\begin{center}
+ \begin{tabular}{|l|l|}\hline
+ key & µ¡Ç½ \\ \hline
+ M-t & MIME header ¤Î decode ¤Ë´Ø¤¹¤ë toggle \\
+ v & ËÜʸ¤ËÆþ¤ê¡¢mime/view-mode ¤Ë°Ü¤ë \\ \hline
+ \end{tabular}
+\end{center}
+\medskip
+
+
+\section{mime/viewer-mode}
+\label{sec:mime/viewer-mode}
+
+tm-MUA ¤ò»È¤¦¤È¡¢Summary mode ¤Ç {\bf v} ¡Êvm ¤Ç¤Ï {\bf Z}¡Ë¤ò²¡¤¹¤³¤È
+¤Ë¤è¤Ã¤Æ¡¢mime/viewer-mode ¤È¤¤¤¦ MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Î mode
+¤ËÆþ¤ê¤Þ¤¹¡£mime/viewer-mode ¤Ë¤Ï°Ê²¼¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£
+
+\medskip
+\begin{center}
+ \begin{tabular}{|l|l|}\hline
+ key & µ¡Ç½ \\ \hline
+ u & ¾å¤Î content ¤ËÌá¤ë \\
+ & message ¤Î°ìÈÖ¾å¤Î content ¤Ç¤³¤ì¤ò¹Ô¤Ê¤¦¤È Summary mode
+ ¤ËÌá¤ë (*1) \\
+ p & Á°¤Î content ¤Ë°ÜÆ°¤¹¤ë \\
+ n & ¼¡¤Î content ¤Ë°ÜÆ°¤¹¤ë \\
+ SPC & scroll up ¤¹¤ë \\
+ M-SPC & scroll down ¤¹¤ë \\
+ DEL & scroll down ¤¹¤ë \\
+ RET & ¼¡¤Î¹Ô¤Ë°ÜÆ°¤¹¤ë \\
+ M-RET & Á°¤Î¹Ô¤Ë°ÜÆ°¤¹¤ë \\
+ v & content ¤òºÆÀ¸¤¹¤ë (*2) \\
+ e & content ¤«¤é file ¤ò¼è¤ê½Ð¤¹ (*2) \\
+ C-c C-p & content ¤ò°õºþ¤¹¤ë (*2) \\ \hline
+ \end{tabular}
+\end{center}
+\medskip
+
+\bigskip
+
+\newcounter{asteriskcount}
+\noindent{\bf ¡ÎÃí°Õ¡Ï}
+\vspace{-1ex}
+{\list{(*\arabic{asteriskcount})}{\usecounter{asteriskcount}\leftmargin=8ex}
+\item tm-mh-e, tm-gnus, tm-rmail ¤Ê¤É¤Ç tm-view ¤ÎÀßÄê¤ò¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢
+ Summary mode ¤Ë¤ÏÌá¤ê¤Þ¤»¤ó¡£
+\item ¼ÂºÝ¤ÎÆ°ºî¤ÏÂбþ¤¹¤ë method ¤Ë°Í¤ê¤Þ¤¹¡£
+\endlist}
+
+
+\section{tm-gnus ¤Î customize}
+
+\subsection{article ¤ò save ¤¹¤ë»þ decoding ¤·¤Ê¤¤}
+
+article ¤ò save ¤¹¤ë»þ¡¢Êݸ¤µ¤ì¤ë message ¤Ï¤½¤Î»þɽ¼¨¤µ¤ì¤Æ¤¤¤ë¤è¤¦
+¤Ë¡¢¤½¤Î»þ¤Î MIME header decoding mode ¤Ë±þ¤¸¤Æ save ¤µ¤ì¤Þ¤¹¡£
+
+¤·¤«¤·¡¢article ¤ò save ¤¹¤ë»þ¡¢¾ï¤Ë¡¢MIME header decoding ¤ò¹Ô¤Ê¤ï¤Ê
+¤¤¡¢À¸¤Î message ¤ÇÊݸ¤·¤¿¤¤¾ì¹ç¤Ï¡¢ÊÑ¿ô
+tm-gnus/set-mime-header-decoding-mode ¤ÎÃͤò nil ¤Ë¤·¤Æ¡¢MIME header
+decoding ¤ò¹Ô¤Ê¤ï¤Ê¤¤ mode ¤Ë¤·¤Æ¡¢article save ´Ø¿ô¤ò¼Â¹Ô¤¹¤ë¤è¤¦¤ËÀß
+Äꤷ¤Æ²¼¤µ¤¤¡£
+
+Save ¤Î¼Â¹Ô¸å¡¢MIME header decoding mode ¤òÁ°¤Î¾õÂÖ¤ËÌᤷ¤¿¤¤¾ì¹ç¤Ï¡¢
+°Ê²¼¤Î¤è¤¦¤Ë¡¢°ì»þÊÑ¿ô¤Ë MIME header decoding mode ¤òÊݸ¤·¤Æ¤ª¤±¤Ð OK
+¤Ç¤¹¡£
+
+\begin{verbatim}
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (article save ´Ø¿ô)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )
+\end{verbatim}
+
+°Ê²¼¤Ë¡¢mh-e ¤Î folder ¤Ë save ¤¹¤ë¾ì¹ç¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£
+
+\begin{verbatim}
+(add-hook 'gnus-Startup-hook
+ (function
+ (lambda ()
+ (setq gnus-default-article-saver
+ (function
+ (lambda ()
+ (interactive)
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (gnus-Subject-save-in-folder)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )))))))
+(add-hook 'gnus-startup-hook
+ (function
+ (lambda ()
+ (setq gnus-default-article-saver
+ (function
+ (lambda ()
+ (interactive)
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (gnus-summary-save-in-folder)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )))))))
+\end{verbatim}
+
+\subsection{reply ¤¹¤ë»þ Subject ¤Î encoding Ë¡¤ò reply ¸µ¤Ë¹ç¤ï¤»¤ë}
+
+Reply ¤¹¤ë»þ¡¢reply ¸µ¤Î Subject ¤Ë ASCII °Ê³°¤Îʸ»ú½¸¹ç¤ÎÆþ¤Ã¤Æ¤¤¤ë
+¾ì¹ç¡¢reply ¸µ¤¬ MIME encode ¤µ¤ì¤Æ¤¤¤¿¤é encode ¤·¡¢¤½¤¦¤Ç¤Ê¤«¤Ã¤¿¤é
+À¸¤ÇÆþ¤ì¤¿¤¤¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Þ¤¹¡£
+
+\begin{verbatim}
+(add-hook 'gnus-article-prepare-hook
+ (function
+ (lambda ()
+ (if (mime/exist-encoded-word-in-subject)
+ (setq mime/no-encoding-header-fields '("X-Nsubject"))
+ (setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
+ ))))
+\end{verbatim}
+
+
+\chapter{tm-view}
+
+tm-view ¤Ï MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Îµ¡Ç½¤òÄ󶡤¹¤ë module ¤Ç¤¹¡£
+tm-view ¤Ï mime/viewer-mode ¤È¤¤¤¦ mode ¤òÄ󶡤·¤Þ¤¹¡£
+
+mime/viewer-mode ¤Îµ¡Ç½¤Ë´Ø¤·¤Æ¤Ï¡¢\ref{sec:mime/viewer-mode} Àá¤ò»²¾È
+¤·¤Æ²¼¤µ¤¤¡£
+
+\section{content ¤Î decode ¾ò·ï¤ÎÀßÄê}
+
+ÊÑ¿ô mime/content-decoding-condition ¤Ï decode »þ¤Î method ¤ò»ØÄꤹ¤ë
+¤¿¤á¤ÎÊÑ¿ô¤Ç¡¢tm-view 4 ¤ÎÊÑ¿ô mime/content-decoding-method-alist ¤ËÁê
+Åö¤·¤Þ¤¹¡£
+
+ÊÑ¿ô mime/content-decoding-method-alist ¤Ç¤Ï¡¢Ã±¤Ë
+content-type/subtype ¤ËÂФ¹¤ë method ¤ò»ØÄꤹ¤ë¤³¤È¤·¤«¤Ç¤¤Þ¤»¤ó¤Ç¤·
+¤¿¤¬¡¢ÊÑ¿ô mime/content-decoding-condition ¤Ç¤Ï decode »þ¤ÎÀ©Ìó¾ò·ï¤ò
+½ñ¤¯¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+
+ÊÑ¿ô mime/content-decoding-condition ¤Ï¡¢
+
+\begin{eqnarray*}
+ (¾ò·ï_1 \;\; ¾ò·ï_2 \;\; ...)
+\end{eqnarray*}
+
+\noindent ¤È¤¤¤¦·Á¤ò¤·¤¿ list ¤Ç¡¢³Æ¾ò·ï¤Ï
+
+\begin{eqnarray*}
+ ((field-type_1 \; . \; value_1) \;\;
+ (field-type_2 \; . \; value_2) \;\; ...)
+\end{eqnarray*}
+
+\noindent ¤È¤¤¤¦·Á¤ÎÏ¢ÁÛ list ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
+
+Î㤨¤Ð¡¢text/plain ¤Î»þ¡¢tm-plain ¤òµ¯Æ°¤¹¤ë»þ¡¢
+
+\begin{quote}
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+\end{quote}
+
+\noindent ¤È¤¤¤¦¾ò·ï¤ò½ñ¤¤Þ¤¹¡£¸«¤Æ¤ÎÄ̤ꡢ³°Éô method ¤Î°ú¿ô¤¬½ñ¤±¤ë
+¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¾Ü¤·¤¯¤Ï \ref{sec:method-arguments} Àá¤Ç½Ò¤Ù¤Þ¤¹¡£
+
+¤³¤Î¾ò·ï¤Ï text/plain ¤Ç¤¢¤ë content ¤Ê¤éÁ´¤Æ¤Î decoding-mode ¤Ç͸ú¤Ç
+¤¹¡£¤·¤«¤·¡¢
+
+\begin{quote}
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
+ (mode . "play"))
+\end{quote}
+
+\noindent ¤Ê¤é¡¢play mode °Ê³°¤Ç¤Ï͸ú¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
+
+µÕ¤Ë¡¢
+
+\begin{quote}
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
+ (mode . "play"))
+\end{quote}
+
+\noindent ¤Ê¤é¡¢Á´¤Æ¤Î content-type ¤Î play mode ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤¹¡£
+
+¤³¤¦¤·¤Æ³Æ¾ò·ï¤òÁ°¤«¤é¸«¤Æ¹Ô¤¡¢ºÇ½é¤Ë͸ú¤Ë¤Ê¤Ã¤¿¾ò·ï¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
+
+
+\subsection{method ¤Î°ú¿ô¤Î»ØÄê¤Î»ÅÊý}
+\label{sec:method-arguments}
+
+¾ò·ï¤Î method field ¤Ï
+
+\begin{eqnarray*}
+ (method \; . \; SYMBOL)
+\end{eqnarray*}
+
+\noindent ¤«
+
+\begin{eqnarray*}
+ (method \; ʸ»úÎó \; FLAG \; °ú¿ô_1 \; °ú¿ô_2 \; ...)
+\end{eqnarray*}
+
+\noindent ¤È¤¤¤¦·Á¤ò¤·¤Æ¤¤¤Þ¤¹¡£
+
+method field ¤ÎÃͤ¬ symbol ¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢ÆâÉô method ¤È¤·¤Æµ¯Æ°¤µ¤ì¤Þ
+¤¹¡£
+
+method field ¤ÎÃͤ¬ list ¤Ç¤¢¤ë¾ì¹ç¡¢³°Éô method ¤È¤·¤Æµ¯Æ°¤µ¤ì¤Þ¤¹¡£
+¤³¤Î¾ì¹ç¡¢
+
+\begin{quote}
+ \begin{tabular}{lcl}
+ ʸ»úÎó&:&³°Éô method ¤Î̾Á° \\
+ FLAG&:& t ¤Ê¤é content header ¤â³°Éô method ¤ËÅϤ¹¡£
+ nil ¤Ê¤é content body ¤Î¤ß¤òÅϤ¹¡£\\
+ °ú¿ôÎó&:&³°Éô method ¤Î°ú¿ô
+ \end{tabular}
+\end{quote}
+
+\noindent ¤È²ò¼á¤µ¤ì¤Þ¤¹¡£
+
+¤Þ¤¿¡¢³°Éô method ¤Î°ú¿ô¤Ï¼¡¤Î¤è¤¦¤Ê·Á¼°¤Ç½ñ¤¤Þ¤¹¡£
+
+\begin{quote}
+ \begin{tabular}{lcl}
+ ʸ»úÎó&:&¤½¤Îʸ»úÎó¤òÅϤ¹ \\
+ 'SYMBOL&:&SYMBOL ¤ò key ¤È¤·¤¿ÃͤòÅϤ¹\\
+ 'ʸ»úÎó&:&ʸ»úÎó¤ò key ¤È¤·¤¿ÃͤòÅϤ¹
+ \end{tabular}
+\end{quote}
+
+'SYMBOL ¤Ç»ØÄê¤Ç¤¤ë¤â¤Î¤Ë¤Ï¡¢
+
+\begin{quote}
+ \begin{tabular}{lcl}
+ 'file&:&content ¤òÅϤ¹¤¿¤á¤Î file ̾ \\
+ 'type&:&content-type/sub-type ̾ \\
+ 'encoding&:&content-transfer-encoding \\
+ 'mode&:&decoding mode \\
+ 'name&:&file ¤ËÍ¾ì¹ç¤Î file ̾
+ \end{tabular}
+\end{quote}
+
+\noindent ¤Ê¤É¤¬¤¢¤ê¡¢'ʸ»úÎó ¤Ç¤Ï Content-Type field ¤Î parameter ¤Î
+Ãͤ¬»ØÄê¤Ç¤¤Þ¤¹¡£
+
+
+\subsection{Îã}
+
+½é´üÃͤϰʲ¼¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
+
+\begin{verbatim}
+(defvar mime/content-decoding-condition
+ '(((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "text/x-latex")
+ (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "audio/basic")
+ (method "tm-au" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/gif")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/jpeg")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-xbm")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-pic")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "video/mpeg")`
+ (method "tm-mpeg" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "application/octet-stream")
+ (method "tm-file" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "message/partial")
+ (method . mime/decode-message/partial-region))
+ ((method "metamail" t
+ "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
+ ))
+\end{verbatim}
+
+Î㤨¤Ð¡¢¡ÖÁ´Éô metamail »È¤¦¤ó¤ä¡×¤È¤¤¤¦¾ì¹ç¡¢
+
+\begin{verbatim}
+(setq mime/content-decoding-condition
+ '(
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
+ ))
+\end{verbatim}
+
+\noindent ¤È¤¹¤ì¤Ð OK ¤Ç¤¹¡£
+
+¹©Éפ¹¤ì¤Ð¡¢¤«¤Ê¤êÊ£»¨¤Ê¾ò·ï¤¬½ñ¤±¤ë¤Ç¤·¤ç¤¦¡£
+
+
+\section{method script}
+\label{sec:method}
+
+³Æ method ¤Ï shell script ¤Ç½ñ¤¤Þ¤¹¡£tm-verw.el ¤«¤éÅϤµ¤ì¤ë°ú¿ô¤Ï¡¢
+ÊÑ¿ô mime/content-decoding-condition ¤Ç»ØÄê¤Ç¤¤Þ¤¹¤¬¡¢É¸½àŪ¤Ê°ú¿ôÎó
+¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
+
+\medskip
+\begin{center}
+ \begin{tabular}{|c|l|} \hline
+ °ú¿ô & \multicolumn{1}{|c|}{ ÃÍ }\\ \hline
+ \$1 & decode Á°¤Î file ̾ \\
+ \$2 & Content-Type (type/sub-type) \\
+ \$3 & encoding
+ \{7bit / quoted-printable / base64 / 8bit / binary / ...\}\\
+ \$4 & decoding-mode \{play / extract / print\} \\
+ \$5 & file ̾ \\ \hline
+ \end{tabular}
+\end{center}
+\medskip
+
+¤Þ¤¿¡¢message/partial ¤À¤±¤Ï tm-view.el ¼«¿È¤ÇÉü¸µ¤·¤Þ¤¹¡£
+
+
+\section{ɽ¼¨}
+
+mime/viewer-mode ¤ËÆþ¤ë¤È¡¢³Æ content ¤Ï preview buffer ¤Ë
+
+\begin{verbatim}
+[1 (text/plain)]
+
+ËÜʸ
+\end{verbatim}
+
+\noindent ¤Î¤è¤¦¤Ë²Ã¹©¤µ¤ì¤Æɽ¼¨¤µ¤ì¤Þ¤¹¡£tm-view ¤Ç¤Ï content ¤òɽ¼¨
+¤¹¤ëºÝ¡¢
+
+\begin{itemize}
+\item content subject
+\item content header
+\item content body
+\end{itemize}
+
+\noindent ¤È¤¤¤¦£³¤Ä¤ÎÉôʬ¤Ëʬ¤±¤Æ°·¤ï¤ì¤Þ¤¹¡£
+
+
+\subsection{content subject}
+
+content subject ¤Ï preview buffer ¤Ç content ¤ÎÀèƬ¤òɽ¤¹¤¿¤á¤ÎÉôʬ¤Ç¡¢
+ɸ½à¤Ç¤Ï¡¢
+
+\begin{quote}
+ [cid Âê̾ (·¿)]
+\end{quote}
+
+\noindent ¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£cid ¤Ï message ¤ÎÃæ¤Ç¤Î content ¤Î°ÌÃÖ
+¤òɽ¤¹¤â¤Î¤Ç¡¢ÀáÈÖ¹æ¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£Âê̾¤Ï¡¢Subject ¤ä
+Content-Description ¤Ê¤É¤Ë½ñ¤«¤ì¤¿Ê¸»úÎ󤫤éºî¤é¤ì¤Þ¤¹¡£·¿¤Ï
+Content-Type ¤Ë½ñ¤«¤ì¤¿ type/subtype ¤Î¤³¤È¤Ç¤¹¡£
+
+¤³¤Î content subject ¤Îɽ¼¨¤ÏÊÑ¿ô mime/make-content-subject-function
+¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤¤Þ¤¹¡£´ûÄêÃͤϡ¢
+
+\begin{verbatim}
+(defvar mime/make-content-subject-function
+ (function
+ (lambda (cid subj ctype)
+ (insert
+ (format "[%s %s (%s)]\n"
+ (if (listp cid)
+ (mapconcat (function
+ (lambda (num)
+ (format "%s" (+ num 1))
+ ))
+ cid ".")
+ "0")
+ subj (car ctype)))
+ )))
+\end{verbatim}
+
+\noindent ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢Î㤨¤Ð¡¢
+
+\begin{verbatim}
+(setq mime/make-content-subject-function
+ (function
+ (lambda (cid subj ctype)
+ (if (not (member (car ctype) mime/default-showing-Content-Type-list))
+ (insert
+ (format "[%s %s (%s)]\n"
+ (if (listp cid)
+ (mapconcat (function
+ (lambda (num)
+ (format "%s" (+ num 1))
+ ))
+ cid ".")
+ "0")
+ subj (car ctype))))
+ )))
+\end{verbatim}
+
+\noindent ¤È¤¹¤ì¤Ð±£¤µ¤ì¤¿ content ¤À¤± content subject ¤òɽ¼¨¤¹¤ë¤è¤¦
+¤Ë¤Ç¤¤Þ¤¹¡£
+
+
+\subsection{content header}
+
+content header ¤Ï preview buffer ¤Ç content header ¤òɽ¼¨¤¹¤ë¤¿¤á¤ÎÉô
+ʬ¤Ç¤¹¡£É¸½à¤Ç¤Ï¶õ¹Ô¤Ë¤Ê¤ê¤Þ¤¹¡£
+
+¤³¤Î content header ¤Îɽ¼¨¤ÏÊÑ¿ô mime/make-content-header-filter ¤Ë¤è¤Ã
+¤ÆÀßÄê¤Ç¤¤Þ¤¹¡£´ûÄêÃͤϡ¢
+
+\begin{verbatim}
+(defvar mime/make-content-header-filter
+ (function
+ (lambda (cid)
+ (if (listp cid)
+ (delete-region (goto-char (point-min))
+ (or (and (re-search-forward "^$" nil t)
+ (match-end 0))
+ (point-max))
+ )
+ )
+ )))
+\end{verbatim}
+
+\noindent ¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢content header ¤ò body ¤È¤Î¶¤Î¶õ¹Ô¤Þ¤Çºï½ü¤¹
+¤ë¤È¤¤¤¦É÷¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£Î㤨¤Ð¡¢
+
+\begin{verbatim}
+(setq mime/make-content-header-filter
+ (function
+ (lambda (cid)
+ )))
+\end{verbatim}
+
+\noindent ¤È¤¹¤ì¤Ð¡¢Á´¤Æ¤Î content header field ¤òɽ¼¨¤Ç¤¤Þ¤¹¡£
+
+
+\subsection{content body}
+
+preview buffer ¤Ë content body ¤òɽ¼¨¤¹¤ëºÝ¡¢content-type Ëè¤Ë
+
+\begin{enumerate}
+\item ±£ÊÃ
+\item ²Ã¹©
+\end{enumerate}
+
+\noindent ¤È¤¤¤¦½èÍý¤¬¹Ô¤Ê¤ï¤ì¤Þ¤¹¡£
+
+±£ÊäÏÈó text part ¤ò±£¤¹¤¿¤á¤Î½èÍý¤Ç¡¢ÊÑ¿ô
+mime/default-showing-Content-Type-list ¤ËÀßÄꤵ¤ì¤¿ content-type °Ê³°
+¤Î content ¤¬±£Ê䵤ì¤Þ¤¹¡£¤³¤ÎÊÑ¿ô¤Î´ûÄêÃͤϡ¢
+
+\begin{verbatim}
+(defvar mime/default-showing-Content-Type-list
+ '("text/plain" "text/richtext" "text/enriched" "text/x-latex" nil))
+\end{verbatim}
+
+\noindent ¤Ç¡¢text/plain, text/richtext, text/enriched, text/x-latex,
+µÚ¤Ó¡¢Èó MIME content ¤Î¤ß¤¬É½¼¨¤µ¤ì¡¢¤½¤ì°Ê³°¤Ï¡¢±£Ê䵤ì¤Þ¤¹¡£
+
+±£Ê䵤ì¤Ê¤«¤Ã¤¿ content ¤ËÂФ·¤Æ¡¢²Ã¹©½èÍý¤¬¹Ô¤Ê¤ï¤ì¤Þ¤¹¡£¤½¤Î
+content ¤Î content-type ¤ò key ¤Ë¤·¤ÆÊÑ¿ô mime/content-filter-alist ¤ò
+°ú¤¡¢¤½¤ÎÃÍÉô¤Ë½ñ¤«¤ì¤¿´Ø¿ô¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
+
+ÊÑ¿ô mime/content-filter-alist ¤Î´ûÄêÃÍ¤Ï nil ¤Ç¤¹¤¬¡¢tm-rich.el ¤ò
+load ¤¹¤ë¤È¡¢
+
+\begin{verbatim}
+(aput 'mime/content-filter-alist
+ "text/enriched" (function mime/decode-text/enriched-body))
+\end{verbatim}
+
+\noindent ¤Î¤è¤¦¤Ë text/enriched ¤ËÂФ¹¤ë²Ã¹©½èÍý¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£
+
+
+\section{À©¸Â}
+
+Éí°¤Î BASE64 decoder ¤Ç¤¢¤ë decode-b.c ¤Ï¤¤¤¤²Ã¸º¤Êºî¤ê¤Ê¤Î¤Ç¡¢Æ°¤«¤Ê
+¤«¤Ã¤¿¤é¡¢Ã»¤¤¥×¥í¥°¥é¥à¤Ê¤Î¤Ç¡¢°Õ¤òµâ¤ó¤Ç½¤Àµ¤·¤Æ²¼¤µ¤¤¡£
+(\verb+^+\_\verb+^+;
+
+¤Þ¤¿¡¢metamail Éí°¤Î mmencode ¤ò»È¤Ã¤Æ decode ¤·¤Æ¤âÎɤ¤¤Ç¤·¤ç¤¦¡£
+
+¤Þ¤¿¡¢Quoted-Printable ¤Î decoder ¤ÏÉí°¤·¤Þ¤»¤ó¤Î¤Ç¡¢mmencode ¤ò»È¤Ã
+¤Æ²¼¤µ¤¤¡£
+
+
+\chapter{tiny-mime}
+
+tiny-mime ¤Ï Mule, NEmacs, NEpoch ¾å¤ÇÆ°ºî¤¹¤ë MIME header ¤Î
+encoder/decoder ¤Ç¤¹¡£tiny-mime ¤Ï¡¢ÀΡ¢¤¨¤Ê¤ß ¤Ä¤°¤È¤â ¤µ¤ó¤¬
+fj.editor.emacs ¤ËÅê¹Æ¤µ¤ì¤¿ ISO-2022-JP MIME header decoder ¤ò¸µ¤Ë¤·
+¤Æ¤¤¤Þ¤¹¡£
+
+¸½ºß¤Ç¤Ï¡¢Åö»þ¤Î¤â¤Î¤ËÈæ¤Ù¡¢
+
+\begin{itemize}
+\item decoding »þ¤Ë¤ª¤±¤ë unfolding µ¡Ç½¤ÎÄɲÃ
+\item ISO-2022-JP ¤Ë²Ã¤¨¡¢ISO-2022-KR, ISO-8859-*, US-ASCII ¤Ê¤É¤Î¿¸À
+ ¸ì header ¤Î encode/decode µ¡Ç½¤ÎÄɲÃ
+\item Q-encoding ¤ÎÄɲÃ
+\item RFC 1522 ¤Ø¤ÎÂбþ
+\end{itemize}
+
+\noindent ¤È¤¤¤Ã¤¿µ¡Ç½¶¯²½¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
+
+tiny-mime ¤Ï tm ¤Ë¤ª¤±¤ë MIME header encoder/decoder ¤Ç¤¢¤ê¡¢tm-view,
+tm-MUA ¤¬¤³¤ì¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
+
+
+\section{mime/decode-message-header}
+
+{\tt mime/decode-message-header} ¤Ï MIME header ¤ò decode ¤¹¤ë¤¿¤á¤ÎÌ¿
+Îá¤Ç¤¹¡£tiny-mime ¤¬ load ¤µ¤ì¤Æ¤¤¤ë¾õÂ֤ǡ¢decode ¤·¤¿¤¤ buffer ¤Î¾å
+¤Ç¡¢
+
+{\list{}{\leftmargin=8ex}\item[]
+\par
+M-x {\tt mime/decode-message-header}
+\endlist}
+
+\noindent ¤ò¼Â¹Ô¤¹¤ë¤È¡¢¤½¤Î buffer ¾å¤Î MIME header ¤¬ decode ¤µ¤ì¤Þ
+¤¹¡£
+
+tm-MUA ¤ä tm-view ¤Ï¤³¤ÎÌ¿Îá¤ò¸Æ¤ó¤Ç¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤é¤òÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢
+Íۤˤ³¤ÎÌ¿Îá¤ò¼Â¹Ô¤¹¤ëɬÍפÏ̵¤¤¤Ç¤·¤ç¤¦¡£
+
+
+\section{mime/decode-region}
+
+region ¤ËÂФ·¤Æ¡¢
+
+{\list{}{\leftmargin=8ex}\item[]
+\par
+M-x {\tt mime/decode-region}
+\endlist}
+
+\noindent ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢°úÍÑ¤Ê¤É¤Ç buffer ¤Ë»Ä¤Ã¤¿ MIME header ¤ò
+decode ¤Ç¤¤Þ¤¹¡£
+
+
+\chapter{¥Ð¥°Êó¹ð¤Î»ÅÊý}
+
+tm ¤Î¥Ð¥°¤ò¸«¤Ä¤±¤¿¤é fj.editor.emacs ¤Ë post ¤¹¤ë¤«¡¢tm ML
+$<$tm@chamonix.jaist.ac.jp$>$ ¤Ë mail ¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
+
+tm ML ¤Ç¤Ï tm ¤Î¥Ð¥°¾ðÊó¤Î¸ò´¹¤äºÇ¿·ÈǤÎÇÛÉÛ¡¢tm ¤Î²þÎɤ˴ؤ¹¤ëµÄÏÀ¤ò
+¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£tm ML ¤Ë»²²Ã¤·¤¿¤¤Êý¤Ï
+
+\begin{center}
+ tm-admin@chamonix.jaist.ac.jp
+\end{center}
+
+\noindent ¤Þ¤Ç mail ¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£ÅÐÏ¿¤Ï¼êÆ°¤Ç¤¹¤Î¤Ç¡¢¤Ç¤¤ì¤Ð¡¢¼«Á³
+¸À¸ì¤Ç½ñ¤¤¤Æ²¼¤µ¤¤¡£(\verb+^+\_\verb+^+)
+
+\end{document}
--- /dev/null
+head 5.4;
+access;
+symbols;
+locks; strict;
+comment @% @;
+
+
+5.4
+date 94.10.17.02.58.20; author morioka; state Exp;
+branches;
+next 5.3;
+
+5.3
+date 94.10.17.02.54.15; author morioka; state Exp;
+branches;
+next 5.2;
+
+5.2
+date 94.10.11.17.17.05; author morioka; state Exp;
+branches;
+next 5.1;
+
+5.1
+date 94.09.26.14.52.00; author morioka; state Exp;
+branches;
+next 5.0;
+
+5.0
+date 94.09.26.14.46.30; author morioka; state Exp;
+branches;
+next 2.1;
+
+2.1
+date 94.09.02.09.41.08; author morioka; state Exp;
+branches;
+next 2.0;
+
+2.0
+date 94.09.02.07.42.01; author morioka; state Exp;
+branches;
+next 1.2;
+
+1.2
+date 94.09.01.02.11.05; author morioka; state Exp;
+branches;
+next 1.1;
+
+1.1
+date 94.08.31.11.18.40; author morioka; state Exp;
+branches;
+next ;
+
+
+desc
+@@
+
+
+5.4
+log
+@vm ¤Ë´Ø¤¹¤ëµ½Ò¤òÄɲä·¤¿¡£
+@
+text
+@\documentstyle[a4j]{jreport}
+
+\title{tm ÀâÌÀ½ñ}
+\author{¼é²¬ ÃÎɧ\\
+ morioka@@jaist.ac.jp}
+\date{\verb$Id: tm-jp.tex,v 5.3 1994/10/17 02:54:15 morioka Exp morioka $}
+
+\begin{document}
+
+\maketitle
+\tableofcontents
+
+\chapter{¤Ï¤¸¤á¤Ë}
+
+tm ¤Ï GNU Emacs ¤Ç MIME ¤ò³Ú¤·¤à¤¿¤á¤Î package ¤Ç¤¹¡£tm ¤ò»È¤¦¤È¡¢
+
+\begin{itemize}
+\item mime/viewer-mode ¤ò»È¤Ã¤¿ MIME message ¤Î±ÜÍ÷¡¦ºÆÀ¸
+\item ¿¸À¸ì header ¤Î encode/decode
+\item mh-e, GNUS, RMAIL ¤Ç¤Î MIME µ¡Ç½¤Î¶¯²½
+\end{itemize}
+
+\noindent ¤¬¹Ô¤Ê¤¨¤Þ¤¹¡£
+
+
+\section{Module °ìÍ÷}
+
+tm ¤Ï°Ê²¼¤Î module ¤«¤é¤Ê¤ê¤Þ¤¹¡£
+
+\begin{itemize}
+\item {\bf tiny-mime} : MIME header encoder/decoder
+\item {\bf tm-view} : MIME viewer
+\item {\bf tm-misc} : tm-MUA ¤Î¶¦ÄÌ module
+\item {\bf tm-MUAs} : MUA ¤Î MIME µ¡Ç½¶¯²½ module
+ \begin{itemize}
+ \item {\bf tm-mh-e} : mh-e ÍѤΠtm-MUA
+ \item {\bf tm-gnus} : GNUS ÍѤΠtm-MUA
+ \item {\bf tm-rmail} : RMAIL ÍѤΠtm-MUA
+ \item {\bf tm-vm} : vm ÍѤΠtm-MUA
+ \end{itemize}
+\item {\bf tm-setup} tm-MUA ¤ÎÀßÄê module
+\item {\bf mime-setup} MIME ´Ø·¸¤ÎÀßÄê module
+\end{itemize}
+
+
+\chapter{Emacs version Ê̤ε¡Ç½¤ª¤è¤ÓÀ©¸Â}
+
+\section{Emacs (original)}
+
+Original ¤Î Emacs ¤Ç¤Ï¡¢ÅöÁ³¤Î¤³¤È¤Ê¤¬¤é¡¢Ã±°ìʸ»ú½¸¹ç¤·¤«»È¤¨¤Þ¤»¤ó¡£
+
+
+\section{NEmacs, NEpoch}
+
+NEmacs ¤Ç¤Ï¡¢ISO-2022-JP ¤ª¤è¤Ó US-ASCII ¤¬»È¤¨¤Þ¤¹¡£
+
+
+\section{Mule}
+
+ISO-2022-JP, ISO-2022-JP-2, US-ASCII, ISO-8859-1..9, ISO-2022-CN,
+ISO-2022-KR, EUC-KR ¤Ê¤É¤Î¿¸À¸ì header ¤¬»È¤¨¤Þ¤¹¡£¤Þ¤¿¡¢´Ø¿ô
+mime/set-charset-and-encoding ¤ÇÄɲá¦Êѹ¹¤¬¤Ç¤¤Þ¤¹¡£
+
+
+\chapter{Install ¤ÈÀßÄê}
+
+\section{Install}
+
+Install ¤Ï¼¡¤Î¼ê½ç¤Ç¹Ô¤Ê¤¤¤Þ¤¹¡£
+
+\begin{enumerate}
+\item Makefile ¤Î bindir ¤ò¼«Ê¬¤Î´Ä¶¤Ë¹ç¤ï¤»¤Æ½ñ¤´¹¤¨¤ë¡£
+\item methods/ °Ê²¼¤Ë¤¢¤ë method script ¤ò \ref{sec:method} Àá¤ò»²¾È¤·
+ ¤Æ¡¢¼«Ê¬¤Î´Ä¶¤Ë¹ç¤¦¤è¤¦¤Ë½ñ¤´¹¤¨¤ë¡£
+\item make all ¤¹¤ë¡£
+\item make install ¤¹¤ë¡£
+\item *.el ¤ò Emacs ¤ÎÊÑ¿ô load-path ¤Ç»ØÄꤵ¤ì¤¿ directory ¤Ë copy ¤¹¤ë¡£
+\end{enumerate}
+
+\noindent{\bf [Ãí°Õ]}
+\begin{itemize}
+\item tm-mh-e3.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢mh-e version 3.* ¤ò load
+ ¤·¤¿¾õÂ֤ǹԤʤäƲ¼¤µ¤¤¡£
+\item tm-gnus3.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢GNUS 3 ¤¬ load ¤µ¤ì¤¿¾õ
+ Â֤ǹԤʤäƲ¼¤µ¤¤¡£
+\item tl-18.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢Emacs 18 ¤Ç¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£
+\item tl-orig.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢original Emacs ¤Ç¹Ô¤Ê¤Ã¤Æ
+ ²¼¤µ¤¤¡£
+\item tl-nemacs.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢NEmacs ¤Ç¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£
+\item tl-mule.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢Mule ¤Ç¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£
+\item Emacs 19 ¤Ç byte-compile ¤·¤¿ module ¤Ï Emacs 18 ¤Ç¤ÏÆ°¤¤Þ¤»¤ó¡£
+\end{itemize}
+
+
+\section{ÀßÄê}
+
+¤³¤Î package ¤Ë¤Ï mime-setup.el ¤È tm-setup.el ¤È¤¤¤¦´Ê°×ÀßÄê file ¤¬
+Éí°¤·¤Æ¤¤¤Þ¤¹¡£mime-setup.el ¤Ç¤Ï encoding ¤â´Þ¤á¤¿ÀßÄê¤ò¹Ô¤Ê¤¤¡¢
+tm-setup ¤Ç¤Ï tm-MUA ¤Ë´Ø¤¹¤ëÀßÄê¤Î¤ß¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£
+
+\subsection{mime-setup}
+
+\begin{verbatim}
+(load "mime-setup")
+\end{verbatim}
+
+\noindent ¤È¤¹¤ë¤È MIME ¤Ë´Ø¤¹¤ë³Æ¼ïÀßÄê¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£mime-setup ¤Ï
+tm-setup ¤òÆɤó¤Ç¤¤¤ë¤Î¤Ç¡¢mime-setup ¤ò»È¤¦¾ì¹ç¡¢tm-setup ¤ò load ¤¹
+¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
+
+mime-setup ¤Ç¤Ï signature ¤Î¼«Æ°ÀÚÂؤ¨ tool ¤âÉí°¤·¤Æ¤¤¤Þ¤¹¡£
+message header ¤Î field ¤Ë¹ç¤ï¤»¤Æ signature ¤Î¼«Æ°ÀÚÂؤò¹Ô¤Ê¤¤¤¿¤¤¾ì
+¹ç¤Ï .emacs ¤Ë°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£¡Ê¾Ü¤·¤¯¤Ï signature.el
+¤ÎÀâÌÀ½ñ¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡Ë
+
+\begin{verbatim}
+(setq signature-file-alist
+ '((("Newsgroups" . "jokes") . "~/.signature-jokes")
+ (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun")
+ (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun")
+ (("To" . "tea") . "~/.signature-jokes")
+ (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal")
+ ))
+\end{verbatim}
+
+mime-setup ¤ò»È¤¦¾ì¹ç¤Ï¡¢mime.el ¤¬É¬ÍפǤ¹¡£¤Þ¤¿¡¢SuperCite ¤ò»È¤¦¾ì
+¹ç¤Ï¡¢SuperCite ¤âɬÍפǤ¹¡£
+
+
+\subsection{tm-setup}
+
+tm-setup ¤Ï tm-MUA ¤ÎÀßÄê¤Î¤ß¤ò¹Ô¤Ê¤¦ module ¤Ç¤¹¡£mime-setup ¤ò load
+¤·¤Æ¤¤¤ë¾ì¹ç¡¢¤³¤ì¤òÍÛ¤Ë load ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¤¬¡¢mime-setup ¤ò»È
+¤¤¤¿¤¯¤Ê¤¤¾ì¹ç¡¢°Ê²¼¤Î¤è¤¦¤Ë¤³¤ì¤ò load ¤·¤Æ²¼¤µ¤¤¡£
+
+\begin{verbatim}
+(load "tm-setup")
+\end{verbatim}
+
+
+\subsection{vm}
+
+vm ¤ò»È¤¦¾ì¹ç¤Ï .vm ¤« .emacs ¤Ë
+
+\begin{verbatim}
+(load "tm-vm")
+\end{verbatim}
+
+\noindent ¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£
+
+
+\subsection{ÀßÄê file ¤ò»È¤ï¤Ê¤¤¾ì¹ç}
+
+tm-setup.el ¤ò»²¹Í¤Ë¤·¤Æ²¼¤µ¤¤¡£
+
+
+\subsection{MH ¤ÎÀßÄê}
+
+¤Þ¤¿¡¢MH ¤¬ MH-6.8JP2 ¤Î¾ì¹ç¡¢.mh\_profile ¤Ë
+
+\begin{verbatim}
+scan: -form scan.mime
+inc: -form inc.mime
+repl: -form replcomps.mime
+showproc: mhl
+\end{verbatim}
+
+\noindent ¤òÄɲ䷤Ƥ¯¤À¤µ¤¤¡£¤Þ¤¿¡¢¤½¤ì°Ê³°¤Î MH ¤Î½èÍý¤Ï Emacs ¤Î¦
+¤Ç¼è¤ê»ÅÀÚ¤ë¤Î¤Ç¡¢MH ¤ÎÀßÄê¤Ï¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
+
+
+\chapter{tm-MUA}
+
+``tm-MUA'' ¤È¤¤¤¦¤Î¤Ï¡¢mh-e, GNUS, RMAIL ¤Ê¤É¤Î MUA ¤Î¤¿¤á¤Î MIME µ¡Ç½
+¶¯²½ module ¤ÎÁí¾Î¤Ç¤¹¡£
+
+¸½ºß¡¢tm-MUA ¤Ë¤Ï¡¢
+
+\begin{itemize}
+\item {\bf tm-mh-e} : mh-e ÍѤΠtm-MUA
+\item {\bf tm-gnus} : GNUS ÍѤΠtm-MUA
+\item {\bf tm-rmail} : RMAIL ÍѤΠtm-MUA
+\item {\bf tm-vm} : VM ÍѤΠtm-MUA
+\end{itemize}
+
+\noindent ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¾Ï¤Ç¤Ï¤³¤ì¤é¤Î module ¤Ë´Ø¤·¤ÆÀâÌÀ¤·¤Þ¤¹¡£
+
+
+\section{Summary mode}
+
+tm-MUA ¤ò»È¤¦¤È¡¢¸µ¤Î MUA ¤Î Summary mode ¤ËÂФ·¤Æ°Ê²¼¤Îµ¡Ç½¤¬Äɲ䵤ì
+¤Þ¤¹¡£
+
+\medskip
+\begin{center}
+ \begin{tabular}{|l|l|}\hline
+ key & µ¡Ç½ \\ \hline
+ M-t & MIME header ¤Î decode ¤Ë´Ø¤¹¤ë toggle \\
+ v & ËÜʸ¤ËÆþ¤ê¡¢mime/view-mode ¤Ë°Ü¤ë \\ \hline
+ \end{tabular}
+\end{center}
+\medskip
+
+
+\section{mime/viewer-mode}
+\label{sec:mime/viewer-mode}
+
+tm-MUA ¤ò»È¤¦¤È¡¢Summary mode ¤Ç {\bf v} ¡Êvm ¤Ç¤Ï {\bf Z}¡Ë¤ò²¡¤¹¤³¤È
+¤Ë¤è¤Ã¤Æ¡¢mime/viewer-mode ¤È¤¤¤¦ MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Î mode
+¤ËÆþ¤ê¤Þ¤¹¡£mime/viewer-mode ¤Ë¤Ï°Ê²¼¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£
+
+\medskip
+\begin{center}
+ \begin{tabular}{|l|l|}\hline
+ key & µ¡Ç½ \\ \hline
+ u & ¾å¤Î content ¤ËÌá¤ë \\
+ & message ¤Î°ìÈÖ¾å¤Î content ¤Ç¤³¤ì¤ò¹Ô¤Ê¤¦¤È Summary mode
+ ¤ËÌá¤ë (*1) \\
+ p & Á°¤Î content ¤Ë°ÜÆ°¤¹¤ë \\
+ n & ¼¡¤Î content ¤Ë°ÜÆ°¤¹¤ë \\
+ SPC & scroll up ¤¹¤ë \\
+ M-SPC & scroll down ¤¹¤ë \\
+ DEL & scroll down ¤¹¤ë \\
+ RET & ¼¡¤Î¹Ô¤Ë°ÜÆ°¤¹¤ë \\
+ M-RET & Á°¤Î¹Ô¤Ë°ÜÆ°¤¹¤ë \\
+ v & content ¤òºÆÀ¸¤¹¤ë (*2) \\
+ e & content ¤«¤é file ¤ò¼è¤ê½Ð¤¹ (*2) \\
+ C-c C-p & content ¤ò°õºþ¤¹¤ë (*2) \\ \hline
+ \end{tabular}
+\end{center}
+\medskip
+
+\bigskip
+
+\newcounter{asteriskcount}
+\noindent{\bf ¡ÎÃí°Õ¡Ï}
+\vspace{-1ex}
+{\list{(*\arabic{asteriskcount})}{\usecounter{asteriskcount}\leftmargin=8ex}
+\item tm-mh-e, tm-gnus, tm-rmail ¤Ê¤É¤Ç tm-view ¤ÎÀßÄê¤ò¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢
+ Summary mode ¤Ë¤ÏÌá¤ê¤Þ¤»¤ó¡£
+\item ¼ÂºÝ¤ÎÆ°ºî¤ÏÂбþ¤¹¤ë method ¤Ë°Í¤ê¤Þ¤¹¡£
+\endlist}
+
+
+\section{tm-gnus ¤Î customize}
+
+\subsection{article ¤ò save ¤¹¤ë»þ decoding ¤·¤Ê¤¤}
+
+article ¤ò save ¤¹¤ë»þ¡¢Êݸ¤µ¤ì¤ë message ¤Ï¤½¤Î»þɽ¼¨¤µ¤ì¤Æ¤¤¤ë¤è¤¦
+¤Ë¡¢¤½¤Î»þ¤Î MIME header decoding mode ¤Ë±þ¤¸¤Æ save ¤µ¤ì¤Þ¤¹¡£
+
+¤·¤«¤·¡¢article ¤ò save ¤¹¤ë»þ¡¢¾ï¤Ë¡¢MIME header decoding ¤ò¹Ô¤Ê¤ï¤Ê
+¤¤¡¢À¸¤Î message ¤ÇÊݸ¤·¤¿¤¤¾ì¹ç¤Ï¡¢ÊÑ¿ô
+tm-gnus/set-mime-header-decoding-mode ¤ÎÃͤò nil ¤Ë¤·¤Æ¡¢MIME header
+decoding ¤ò¹Ô¤Ê¤ï¤Ê¤¤ mode ¤Ë¤·¤Æ¡¢article save ´Ø¿ô¤ò¼Â¹Ô¤¹¤ë¤è¤¦¤ËÀß
+Äꤷ¤Æ²¼¤µ¤¤¡£
+
+Save ¤Î¼Â¹Ô¸å¡¢MIME header decoding mode ¤òÁ°¤Î¾õÂÖ¤ËÌᤷ¤¿¤¤¾ì¹ç¤Ï¡¢
+°Ê²¼¤Î¤è¤¦¤Ë¡¢°ì»þÊÑ¿ô¤Ë MIME header decoding mode ¤òÊݸ¤·¤Æ¤ª¤±¤Ð OK
+¤Ç¤¹¡£
+
+\begin{verbatim}
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (article save ´Ø¿ô)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )
+\end{verbatim}
+
+°Ê²¼¤Ë¡¢mh-e ¤Î folder ¤Ë save ¤¹¤ë¾ì¹ç¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£
+
+\begin{verbatim}
+(add-hook 'gnus-Startup-hook
+ (function
+ (lambda ()
+ (setq gnus-default-article-saver
+ (function
+ (lambda ()
+ (interactive)
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (gnus-Subject-save-in-folder)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )))))))
+(add-hook 'gnus-startup-hook
+ (function
+ (lambda ()
+ (setq gnus-default-article-saver
+ (function
+ (lambda ()
+ (interactive)
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (gnus-summary-save-in-folder)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )))))))
+\end{verbatim}
+
+\subsection{reply ¤¹¤ë»þ Subject ¤Î encoding Ë¡¤ò reply ¸µ¤Ë¹ç¤ï¤»¤ë}
+
+Reply ¤¹¤ë»þ¡¢reply ¸µ¤Î Subject ¤Ë ASCII °Ê³°¤Îʸ»ú½¸¹ç¤ÎÆþ¤Ã¤Æ¤¤¤ë
+¾ì¹ç¡¢reply ¸µ¤¬ MIME encode ¤µ¤ì¤Æ¤¤¤¿¤é encode ¤·¡¢¤½¤¦¤Ç¤Ê¤«¤Ã¤¿¤é
+À¸¤ÇÆþ¤ì¤¿¤¤¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Þ¤¹¡£
+
+\begin{verbatim}
+(add-hook 'gnus-article-prepare-hook
+ (function
+ (lambda ()
+ (if (mime/exist-encoded-word-in-subject)
+ (setq mime/no-encoding-header-fields '("X-Nsubject"))
+ (setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
+ ))))
+\end{verbatim}
+
+
+\chapter{tm-view}
+
+tm-view ¤Ï MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Îµ¡Ç½¤òÄ󶡤¹¤ë module ¤Ç¤¹¡£
+tm-view ¤Ï mime/viewer-mode ¤È¤¤¤¦ mode ¤òÄ󶡤·¤Þ¤¹¡£
+
+mime/viewer-mode ¤Îµ¡Ç½¤Ë´Ø¤·¤Æ¤Ï¡¢\ref{sec:mime/viewer-mode} Àá¤ò»²¾È
+¤·¤Æ²¼¤µ¤¤¡£
+
+\section{content ¤Î decode ¾ò·ï¤ÎÀßÄê}
+
+ÊÑ¿ô mime/content-decoding-condition ¤Ï decode »þ¤Î method ¤ò»ØÄꤹ¤ë
+¤¿¤á¤ÎÊÑ¿ô¤Ç¡¢tm-view 4 ¤ÎÊÑ¿ô mime/content-decoding-method-alist ¤ËÁê
+Åö¤·¤Þ¤¹¡£
+
+ÊÑ¿ô mime/content-decoding-method-alist ¤Ç¤Ï¡¢Ã±¤Ë
+content-type/subtype ¤ËÂФ¹¤ë method ¤ò»ØÄꤹ¤ë¤³¤È¤·¤«¤Ç¤¤Þ¤»¤ó¤Ç¤·
+¤¿¤¬¡¢ÊÑ¿ô mime/content-decoding-condition ¤Ç¤Ï decode »þ¤ÎÀ©Ìó¾ò·ï¤ò
+½ñ¤¯¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+
+ÊÑ¿ô mime/content-decoding-condition ¤Ï¡¢
+
+\begin{eqnarray*}
+ (¾ò·ï_1 \;\; ¾ò·ï_2 \;\; ...)
+\end{eqnarray*}
+
+\noindent ¤È¤¤¤¦·Á¤ò¤·¤¿ list ¤Ç¡¢³Æ¾ò·ï¤Ï
+
+\begin{eqnarray*}
+ ((field-type_1 \; . \; value_1) \;\;
+ (field-type_2 \; . \; value_2) \;\; ...)
+\end{eqnarray*}
+
+\noindent ¤È¤¤¤¦·Á¤ÎÏ¢ÁÛ list ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
+
+Î㤨¤Ð¡¢text/plain ¤Î»þ¡¢tm-plain ¤òµ¯Æ°¤¹¤ë»þ¡¢
+
+\begin{quote}
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+\end{quote}
+
+\noindent ¤È¤¤¤¦¾ò·ï¤ò½ñ¤¤Þ¤¹¡£¸«¤Æ¤ÎÄ̤ꡢ³°Éô method ¤Î°ú¿ô¤¬½ñ¤±¤ë
+¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¾Ü¤·¤¯¤Ï \ref{sec:method-arguments} Àá¤Ç½Ò¤Ù¤Þ¤¹¡£
+
+¤³¤Î¾ò·ï¤Ï text/plain ¤Ç¤¢¤ë content ¤Ê¤éÁ´¤Æ¤Î decoding-mode ¤Ç͸ú¤Ç
+¤¹¡£¤·¤«¤·¡¢
+
+\begin{quote}
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
+ (mode . "play"))
+\end{quote}
+
+\noindent ¤Ê¤é¡¢play mode °Ê³°¤Ç¤Ï͸ú¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
+
+µÕ¤Ë¡¢
+
+\begin{quote}
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
+ (mode . "play"))
+\end{quote}
+
+\noindent ¤Ê¤é¡¢Á´¤Æ¤Î content-type ¤Î play mode ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤¹¡£
+
+¤³¤¦¤·¤Æ³Æ¾ò·ï¤òÁ°¤«¤é¸«¤Æ¹Ô¤¡¢ºÇ½é¤Ë͸ú¤Ë¤Ê¤Ã¤¿¾ò·ï¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
+
+
+\subsection{method ¤Î°ú¿ô¤Î»ØÄê¤Î»ÅÊý}
+\label{sec:method-arguments}
+
+¾ò·ï¤Î method field ¤Ï
+
+\begin{eqnarray*}
+ (method \; . \; SYMBOL)
+\end{eqnarray*}
+
+\noindent ¤«
+
+\begin{eqnarray*}
+ (method \; ʸ»úÎó \; FLAG \; °ú¿ô_1 \; °ú¿ô_2 \; ...)
+\end{eqnarray*}
+
+\noindent ¤È¤¤¤¦·Á¤ò¤·¤Æ¤¤¤Þ¤¹¡£
+
+method field ¤ÎÃͤ¬ symbol ¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢ÆâÉô method ¤È¤·¤Æµ¯Æ°¤µ¤ì¤Þ
+¤¹¡£
+
+method field ¤ÎÃͤ¬ list ¤Ç¤¢¤ë¾ì¹ç¡¢³°Éô method ¤È¤·¤Æµ¯Æ°¤µ¤ì¤Þ¤¹¡£
+¤³¤Î¾ì¹ç¡¢
+
+\begin{quote}
+ \begin{tabular}{lcl}
+ ʸ»úÎó&:&³°Éô method ¤Î̾Á° \\
+ FLAG&:& t ¤Ê¤é content header ¤â³°Éô method ¤ËÅϤ¹¡£
+ nil ¤Ê¤é content body ¤Î¤ß¤òÅϤ¹¡£\\
+ °ú¿ôÎó&:&³°Éô method ¤Î°ú¿ô
+ \end{tabular}
+\end{quote}
+
+\noindent ¤È²ò¼á¤µ¤ì¤Þ¤¹¡£
+
+¤Þ¤¿¡¢³°Éô method ¤Î°ú¿ô¤Ï¼¡¤Î¤è¤¦¤Ê·Á¼°¤Ç½ñ¤¤Þ¤¹¡£
+
+\begin{quote}
+ \begin{tabular}{lcl}
+ ʸ»úÎó&:&¤½¤Îʸ»úÎó¤òÅϤ¹ \\
+ 'SYMBOL&:&SYMBOL ¤ò key ¤È¤·¤¿ÃͤòÅϤ¹\\
+ 'ʸ»úÎó&:&ʸ»úÎó¤ò key ¤È¤·¤¿ÃͤòÅϤ¹
+ \end{tabular}
+\end{quote}
+
+'SYMBOL ¤Ç»ØÄê¤Ç¤¤ë¤â¤Î¤Ë¤Ï¡¢
+
+\begin{quote}
+ \begin{tabular}{lcl}
+ 'file&:&content ¤òÅϤ¹¤¿¤á¤Î file ̾ \\
+ 'type&:&content-type/sub-type ̾ \\
+ 'encoding&:&content-transfer-encoding \\
+ 'mode&:&decoding mode \\
+ 'name&:&file ¤ËÍ¾ì¹ç¤Î file ̾
+ \end{tabular}
+\end{quote}
+
+\noindent ¤Ê¤É¤¬¤¢¤ê¡¢'ʸ»úÎó ¤Ç¤Ï Content-Type field ¤Î parameter ¤Î
+Ãͤ¬»ØÄê¤Ç¤¤Þ¤¹¡£
+
+
+\subsection{Îã}
+
+½é´üÃͤϰʲ¼¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
+
+\begin{verbatim}
+(defvar mime/content-decoding-condition
+ '(((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "text/x-latex")
+ (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "audio/basic")
+ (method "tm-au" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/gif")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/jpeg")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-xbm")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-pic")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "video/mpeg")`
+ (method "tm-mpeg" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "application/octet-stream")
+ (method "tm-file" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "message/partial")
+ (method . mime/decode-message/partial-region))
+ ((method "metamail" t
+ "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
+ ))
+\end{verbatim}
+
+Î㤨¤Ð¡¢¡ÖÁ´Éô metamail »È¤¦¤ó¤ä¡×¤È¤¤¤¦¾ì¹ç¡¢
+
+\begin{verbatim}
+(setq mime/content-decoding-condition
+ '(
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
+ ))
+\end{verbatim}
+
+\noindent ¤È¤¹¤ì¤Ð OK ¤Ç¤¹¡£
+
+¹©Éפ¹¤ì¤Ð¡¢¤«¤Ê¤êÊ£»¨¤Ê¾ò·ï¤¬½ñ¤±¤ë¤Ç¤·¤ç¤¦¡£
+
+
+\section{method script}
+\label{sec:method}
+
+³Æ method ¤Ï shell script ¤Ç½ñ¤¤Þ¤¹¡£tm-verw.el ¤«¤éÅϤµ¤ì¤ë°ú¿ô¤Ï¡¢
+ÊÑ¿ô mime/content-decoding-condition ¤Ç»ØÄê¤Ç¤¤Þ¤¹¤¬¡¢É¸½àŪ¤Ê°ú¿ôÎó
+¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
+
+\medskip
+\begin{center}
+ \begin{tabular}{|c|l|} \hline
+ °ú¿ô & \multicolumn{1}{|c|}{ ÃÍ }\\ \hline
+ \$1 & decode Á°¤Î file ̾ \\
+ \$2 & Content-Type (type/sub-type) \\
+ \$3 & encoding
+ \{7bit / quoted-printable / base64 / 8bit / binary / ...\}\\
+ \$4 & decoding-mode \{play / extract / print\} \\
+ \$5 & file ̾ \\ \hline
+ \end{tabular}
+\end{center}
+\medskip
+
+¤Þ¤¿¡¢message/partial ¤À¤±¤Ï tm-view.el ¼«¿È¤ÇÉü¸µ¤·¤Þ¤¹¡£
+
+
+\section{ɽ¼¨}
+
+mime/viewer-mode ¤ËÆþ¤ë¤È¡¢³Æ content ¤Ï preview buffer ¤Ë
+
+\begin{verbatim}
+[1 (text/plain)]
+
+ËÜʸ
+\end{verbatim}
+
+\noindent ¤Î¤è¤¦¤Ë²Ã¹©¤µ¤ì¤Æɽ¼¨¤µ¤ì¤Þ¤¹¡£tm-view ¤Ç¤Ï content ¤òɽ¼¨
+¤¹¤ëºÝ¡¢
+
+\begin{itemize}
+\item content subject
+\item content header
+\item content body
+\end{itemize}
+
+\noindent ¤È¤¤¤¦£³¤Ä¤ÎÉôʬ¤Ëʬ¤±¤Æ°·¤ï¤ì¤Þ¤¹¡£
+
+
+\subsection{content subject}
+
+content subject ¤Ï preview buffer ¤Ç content ¤ÎÀèƬ¤òɽ¤¹¤¿¤á¤ÎÉôʬ¤Ç¡¢
+ɸ½à¤Ç¤Ï¡¢
+
+\begin{quote}
+ [cid Âê̾ (·¿)]
+\end{quote}
+
+\noindent ¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£cid ¤Ï message ¤ÎÃæ¤Ç¤Î content ¤Î°ÌÃÖ
+¤òɽ¤¹¤â¤Î¤Ç¡¢ÀáÈÖ¹æ¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£Âê̾¤Ï¡¢Subject ¤ä
+Content-Description ¤Ê¤É¤Ë½ñ¤«¤ì¤¿Ê¸»úÎ󤫤éºî¤é¤ì¤Þ¤¹¡£·¿¤Ï
+Content-Type ¤Ë½ñ¤«¤ì¤¿ type/subtype ¤Î¤³¤È¤Ç¤¹¡£
+
+¤³¤Î content subject ¤Îɽ¼¨¤ÏÊÑ¿ô mime/make-content-subject-function
+¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤¤Þ¤¹¡£´ûÄêÃͤϡ¢
+
+\begin{verbatim}
+(defvar mime/make-content-subject-function
+ (function
+ (lambda (cid subj ctype)
+ (insert
+ (format "[%s %s (%s)]\n"
+ (if (listp cid)
+ (mapconcat (function
+ (lambda (num)
+ (format "%s" (+ num 1))
+ ))
+ cid ".")
+ "0")
+ subj (car ctype)))
+ )))
+\end{verbatim}
+
+\noindent ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢Î㤨¤Ð¡¢
+
+\begin{verbatim}
+(setq mime/make-content-subject-function
+ (function
+ (lambda (cid subj ctype)
+ (if (not (member (car ctype) mime/default-showing-Content-Type-list))
+ (insert
+ (format "[%s %s (%s)]\n"
+ (if (listp cid)
+ (mapconcat (function
+ (lambda (num)
+ (format "%s" (+ num 1))
+ ))
+ cid ".")
+ "0")
+ subj (car ctype))))
+ )))
+\end{verbatim}
+
+\noindent ¤È¤¹¤ì¤Ð±£¤µ¤ì¤¿ content ¤À¤± content subject ¤òɽ¼¨¤¹¤ë¤è¤¦
+¤Ë¤Ç¤¤Þ¤¹¡£
+
+
+\subsection{content header}
+
+content header ¤Ï preview buffer ¤Ç content header ¤òɽ¼¨¤¹¤ë¤¿¤á¤ÎÉô
+ʬ¤Ç¤¹¡£É¸½à¤Ç¤Ï¶õ¹Ô¤Ë¤Ê¤ê¤Þ¤¹¡£
+
+¤³¤Î content header ¤Îɽ¼¨¤ÏÊÑ¿ô mime/make-content-header-filter ¤Ë¤è¤Ã
+¤ÆÀßÄê¤Ç¤¤Þ¤¹¡£´ûÄêÃͤϡ¢
+
+\begin{verbatim}
+(defvar mime/make-content-header-filter
+ (function
+ (lambda (cid)
+ (if (listp cid)
+ (delete-region (goto-char (point-min))
+ (or (and (re-search-forward "^$" nil t)
+ (match-end 0))
+ (point-max))
+ )
+ )
+ )))
+\end{verbatim}
+
+\noindent ¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢content header ¤ò body ¤È¤Î¶¤Î¶õ¹Ô¤Þ¤Çºï½ü¤¹
+¤ë¤È¤¤¤¦É÷¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£Î㤨¤Ð¡¢
+
+\begin{verbatim}
+(setq mime/make-content-header-filter
+ (function
+ (lambda (cid)
+ )))
+\end{verbatim}
+
+\noindent ¤È¤¹¤ì¤Ð¡¢Á´¤Æ¤Î content header field ¤òɽ¼¨¤Ç¤¤Þ¤¹¡£
+
+
+\subsection{content body}
+
+preview buffer ¤Ë content body ¤òɽ¼¨¤¹¤ëºÝ¡¢content-type Ëè¤Ë
+
+\begin{enumerate}
+\item ±£ÊÃ
+\item ²Ã¹©
+\end{enumerate}
+
+\noindent ¤È¤¤¤¦½èÍý¤¬¹Ô¤Ê¤ï¤ì¤Þ¤¹¡£
+
+±£ÊäÏÈó text part ¤ò±£¤¹¤¿¤á¤Î½èÍý¤Ç¡¢ÊÑ¿ô
+mime/default-showing-Content-Type-list ¤ËÀßÄꤵ¤ì¤¿ content-type °Ê³°
+¤Î content ¤¬±£Ê䵤ì¤Þ¤¹¡£¤³¤ÎÊÑ¿ô¤Î´ûÄêÃͤϡ¢
+
+\begin{verbatim}
+(defvar mime/default-showing-Content-Type-list
+ '("text/plain" "text/richtext" "text/enriched" "text/x-latex" nil))
+\end{verbatim}
+
+\noindent ¤Ç¡¢text/plain, text/richtext, text/enriched, text/x-latex,
+µÚ¤Ó¡¢Èó MIME content ¤Î¤ß¤¬É½¼¨¤µ¤ì¡¢¤½¤ì°Ê³°¤Ï¡¢±£Ê䵤ì¤Þ¤¹¡£
+
+±£Ê䵤ì¤Ê¤«¤Ã¤¿ content ¤ËÂФ·¤Æ¡¢²Ã¹©½èÍý¤¬¹Ô¤Ê¤ï¤ì¤Þ¤¹¡£¤½¤Î
+content ¤Î content-type ¤ò key ¤Ë¤·¤ÆÊÑ¿ô mime/content-filter-alist ¤ò
+°ú¤¡¢¤½¤ÎÃÍÉô¤Ë½ñ¤«¤ì¤¿´Ø¿ô¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
+
+ÊÑ¿ô mime/content-filter-alist ¤Î´ûÄêÃÍ¤Ï nil ¤Ç¤¹¤¬¡¢tm-rich.el ¤ò
+load ¤¹¤ë¤È¡¢
+
+\begin{verbatim}
+(aput 'mime/content-filter-alist
+ "text/enriched" (function mime/decode-text/enriched-body))
+\end{verbatim}
+
+\noindent ¤Î¤è¤¦¤Ë text/enriched ¤ËÂФ¹¤ë²Ã¹©½èÍý¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£
+
+
+\section{À©¸Â}
+
+Éí°¤Î BASE64 decoder ¤Ç¤¢¤ë decode-b.c ¤Ï¤¤¤¤²Ã¸º¤Êºî¤ê¤Ê¤Î¤Ç¡¢Æ°¤«¤Ê
+¤«¤Ã¤¿¤é¡¢Ã»¤¤¥×¥í¥°¥é¥à¤Ê¤Î¤Ç¡¢°Õ¤òµâ¤ó¤Ç½¤Àµ¤·¤Æ²¼¤µ¤¤¡£
+(\verb+^+\_\verb+^+;
+
+¤Þ¤¿¡¢metamail Éí°¤Î mmencode ¤ò»È¤Ã¤Æ decode ¤·¤Æ¤âÎɤ¤¤Ç¤·¤ç¤¦¡£
+
+¤Þ¤¿¡¢Quoted-Printable ¤Î decoder ¤ÏÉí°¤·¤Þ¤»¤ó¤Î¤Ç¡¢mmencode ¤ò»È¤Ã
+¤Æ²¼¤µ¤¤¡£
+
+
+\chapter{tiny-mime}
+
+tiny-mime ¤Ï Mule, NEmacs, NEpoch ¾å¤ÇÆ°ºî¤¹¤ë MIME header ¤Î
+encoder/decoder ¤Ç¤¹¡£tiny-mime ¤Ï¡¢ÀΡ¢¤¨¤Ê¤ß ¤Ä¤°¤È¤â ¤µ¤ó¤¬
+fj.editor.emacs ¤ËÅê¹Æ¤µ¤ì¤¿ ISO-2022-JP MIME header decoder ¤ò¸µ¤Ë¤·
+¤Æ¤¤¤Þ¤¹¡£
+
+¸½ºß¤Ç¤Ï¡¢Åö»þ¤Î¤â¤Î¤ËÈæ¤Ù¡¢
+
+\begin{itemize}
+\item decoding »þ¤Ë¤ª¤±¤ë unfolding µ¡Ç½¤ÎÄɲÃ
+\item ISO-2022-JP ¤Ë²Ã¤¨¡¢ISO-2022-KR, ISO-8859-*, US-ASCII ¤Ê¤É¤Î¿¸À
+ ¸ì header ¤Î encode/decode µ¡Ç½¤ÎÄɲÃ
+\item Q-encoding ¤ÎÄɲÃ
+\item RFC 1522 ¤Ø¤ÎÂбþ
+\end{itemize}
+
+\noindent ¤È¤¤¤Ã¤¿µ¡Ç½¶¯²½¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
+
+tiny-mime ¤Ï tm ¤Ë¤ª¤±¤ë MIME header encoder/decoder ¤Ç¤¢¤ê¡¢tm-view,
+tm-MUA ¤¬¤³¤ì¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
+
+
+\section{mime/decode-message-header}
+
+{\tt mime/decode-message-header} ¤Ï MIME header ¤ò decode ¤¹¤ë¤¿¤á¤ÎÌ¿
+Îá¤Ç¤¹¡£tiny-mime ¤¬ load ¤µ¤ì¤Æ¤¤¤ë¾õÂ֤ǡ¢decode ¤·¤¿¤¤ buffer ¤Î¾å
+¤Ç¡¢
+
+{\list{}{\leftmargin=8ex}\item[]
+\par
+M-x {\tt mime/decode-message-header}
+\endlist}
+
+\noindent ¤ò¼Â¹Ô¤¹¤ë¤È¡¢¤½¤Î buffer ¾å¤Î MIME header ¤¬ decode ¤µ¤ì¤Þ
+¤¹¡£
+
+tm-MUA ¤ä tm-view ¤Ï¤³¤ÎÌ¿Îá¤ò¸Æ¤ó¤Ç¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤é¤òÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢
+Íۤˤ³¤ÎÌ¿Îá¤ò¼Â¹Ô¤¹¤ëɬÍפÏ̵¤¤¤Ç¤·¤ç¤¦¡£
+
+
+\section{mime/decode-region}
+
+region ¤ËÂФ·¤Æ¡¢
+
+{\list{}{\leftmargin=8ex}\item[]
+\par
+M-x {\tt mime/decode-region}
+\endlist}
+
+\noindent ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢°úÍÑ¤Ê¤É¤Ç buffer ¤Ë»Ä¤Ã¤¿ MIME header ¤ò
+decode ¤Ç¤¤Þ¤¹¡£
+
+
+\chapter{¥Ð¥°Êó¹ð¤Î»ÅÊý}
+
+tm ¤Î¥Ð¥°¤ò¸«¤Ä¤±¤¿¤é fj.editor.emacs ¤Ë post ¤¹¤ë¤«¡¢tm ML
+$<$tm@@chamonix.jaist.ac.jp$>$ ¤Ë mail ¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
+
+tm ML ¤Ç¤Ï tm ¤Î¥Ð¥°¾ðÊó¤Î¸ò´¹¤äºÇ¿·ÈǤÎÇÛÉÛ¡¢tm ¤Î²þÎɤ˴ؤ¹¤ëµÄÏÀ¤ò
+¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£tm ML ¤Ë»²²Ã¤·¤¿¤¤Êý¤Ï
+
+\begin{center}
+ tm-admin@@chamonix.jaist.ac.jp
+\end{center}
+
+\noindent ¤Þ¤Ç mail ¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£ÅÐÏ¿¤Ï¼êÆ°¤Ç¤¹¤Î¤Ç¡¢¤Ç¤¤ì¤Ð¡¢¼«Á³
+¸À¸ì¤Ç½ñ¤¤¤Æ²¼¤µ¤¤¡£(\verb+^+\_\verb+^+)
+
+\end{document}
+@
+
+
+5.3
+log
+@tm-vm ¤Ë´Ø¤¹¤ëµ½Ò¤òÄɲä·¤¿¡£
+@
+text
+@d6 1
+a6 1
+\date{\verb$Id: tm-jp.tex,v 1.1 1994/10/17 02:38:18 morioka Exp morioka $}
+d39 1
+@
+
+
+5.2
+log
+@content ¤Îɽ¼¨¤ÎºÝ¤Î filter ÊÑ¿ô¤Ë´Ø¤¹¤ëµ½Ò¤òÄɲä·¤¿¡£
+@
+text
+@d6 1
+a6 1
+\date{\verb$Id: tm-jp.tex,v 5.1 1994/09/26 14:52:00 morioka Exp morioka $}
+d140 11
+d182 1
+d207 3
+a209 4
+tm-MUA ¤ò»È¤¦¤È¡¢Summary mode ¤Ç {\bf v} ¤ò²¡¤¹¤³¤È¤Ë¤è¤Ã¤Æ¡¢
+mime/viewer-mode ¤È¤¤¤¦ MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Î mode ¤ËÆþ¤ê¤Þ¤¹
+¡Ê⤷¡¢vm ¤Ç¤Ï°ã¤¦ key ¤Ë bind ¤·¤Æ¤¤¤ë¤½¤¦¤Ç¤¹¡Ë¡£mime/viewer-mode
+¤Ë¤Ï°Ê²¼¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£
+@
+
+
+5.1
+log
+@mime/view-mode ¤È¤Ê¤Ã¤Æ¤¤¤ëÉôʬ¤ò mime/viewer-mode ¤Ë½¤Àµ¤·¤¿¡£
+@
+text
+@d6 1
+a6 1
+\date{\verb$Id: tm-jp.tex,v 5.0 1994/09/26 14:46:30 morioka Exp morioka $}
+d18 1
+a19 1
+\item mime/viewer-mode ¤ò»È¤Ã¤¿ MIME message ¤Î±ÜÍ÷¡¦ºÆÀ¸
+d51 1
+a55 13
+\begin{description}
+\item[¡ÎÃí°Õ¡Ï] outline.el ¤Ï NEmacs Éí°¤Î¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢outln-18.el
+ ¤ò»È¤¦¤³¤È¤ò¿ä¾©¤·¤Þ¤¹¡£outln-18.el ¤ò»È¤¦¾ì¹ç¤Ï¡¢¤³¤ì¤ò outline.el
+ ¤Ë link ¤òÄ¥¤ë¤«¡¢rename ¤·¤Æ²¼¤µ¤¤¡£
+
+ outln-18.el ¤ò»È¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢outline.el ¤Ë
+
+\begin{verbatim}
+(provide 'outline)
+\end{verbatim}
+
+ \noindent ¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£
+\end{description}
+a56 1
+
+a62 15
+\begin{description}
+\item[¡ÎÃí°Õ¡Ï] Emacs 18 base ¤Î Mule (Mule 1.1 ¤Ê¤É¡Ë¤Ç¤Ï¡¢Mule Éí°
+ ¤Î outline.el ¤ÎÂå¤ï¤ê¤Ëoutln-18.el ¤ò»È¤¦¤³¤È¤ò¿ä¾©¤·¤Þ¤¹¡£
+ outln-18.el ¤ò»È¤¦¾ì¹ç¤Ï¡¢¤³¤ì¤ò outline.el ¤Ë link ¤òÄ¥¤ë¤«¡¢rename
+ ¤·¤Æ²¼¤µ¤¤¡£
+
+ outln-18.el ¤ò»È¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢outline.el ¤Ë
+
+\begin{verbatim}
+(provide 'outline)
+\end{verbatim}
+
+ \noindent ¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£
+\end{description}
+
+a109 7
+mime-setup.el ¤Ïɸ½à¤Ç¤Ï SuperCite ¤ÎÀßÄê¤â¹Ô¤Ê¤¤¤Þ¤¹¡£¤³¤ì¤ò¤ä¤á¤ë¾ì
+¹ç .emacs ¤Ë°Ê²¼¤Î¤â¤Î¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£
+
+\begin{verbatim}
+(setq mime-setup-use-sc nil)
+\end{verbatim}
+
+d211 3
+d502 153
+@
+
+
+5.0
+log
+@tm-view 5.1 ¤ËÂбþ¤·¤¿ÀâÌÀʸ¤ÎÊѹ¹¤ò¹Ô¤Ê¤Ã¤¿¡£
+@
+text
+@d6 1
+a6 1
+\date{\verb$Id: tm-jp.tex,v 2.1 1994/09/02 09:41:08 morioka Exp morioka $}
+d19 1
+a19 1
+\item mime/view-mode ¤ò»È¤Ã¤¿ MIME message ¤Î±ÜÍ÷¡¦ºÆÀ¸
+@
+
+
+2.1
+log
+@scroll-up, scroll-down ¤òÉÕ¤±²Ã¤¨¤¿¡£
+@
+text
+@d6 1
+a6 1
+\date{\verb$Id: tm-jp.tex,v 2.0 1994/09/02 07:42:01 morioka Exp morioka $}
+d227 2
+a228 2
+\section{mime/view-mode}
+\label{sec:mime/view-mode}
+d231 3
+a233 2
+mime/view-mode ¤È¤¤¤¦ MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Î minor-mode ¤ËÆþ¤ê
+¤Þ¤¹¡£mime/view-mode ¤Ë¤Ï°Ê²¼¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£
+a252 3
+mime/view-mode ¤Ï minor-mode ¤Ê¤Î¤Ç¡¢¸µ¤Î MUA ¤Î Article mode ¤Î
+mime/view-mode ¤È¤Ö¤Ä¤«¤Ã¤Æ¤¤¤Ê¤¤µ¡Ç½¤Ï¡¢¸µ¤Î MUA ¤Îµ¡Ç½¤¬»È¤¨¤Þ¤¹¡£
+
+d339 60
+a398 2
+tm-view ¤Ï minor-mode ¤Î mime/view-mode ¤È major-mode ¤Î
+mime/show-message-mode ¤òÄ󶡤·¤Þ¤¹¡£
+d400 1
+a400 3
+mime/view-mode ¤Îµ¡Ç½¤Ë´Ø¤·¤Æ¤Ï¡¢\ref{sec:mime/view-mode} Àá¤ò»²¾È¤·¤Æ
+²¼¤µ¤¤¡£mime/show-message-mode ¤Ï mime/view-mode ¤ò¸Æ¤ó¤Ç¤¤¤ë¤Î¤Ç¡¢¤½
+¤ì¤¬ major-mode ¤Ç¤¢¤ë¤³¤È¤ò½ü¤±¤Ð¡¢mime/view-mode ¤ÈƱ¤¸¤Ç¤¹¡£
+d403 2
+a404 1
+\section{tm-view ¤Î customize}
+d406 1
+a406 1
+\subsection{Emacs ¤ÎÀßÄê}
+d408 3
+a410 1
+\subsubsection{method ¤Î»ØÄê}
+d412 1
+a412 2
+.emacs ¤Ë°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤òÆþ¤ì¤Æ¡¢³Æ Content-Type ¤ËÂбþ¤¹¤ë method¤ò
+»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+d414 32
+a445 11
+\begin{verbatim}
+(setq mime/content-decoding-method-alist
+ '(("audio/basic" . "tm-au")
+ ("image/gif" . "tm-image")
+ ("image/jpeg" . "tm-image")
+ ("image/x-pic" . "tm-image")
+ ("video/mpeg" . "tm-mpeg")
+ ("application/octet-stream" . "tm-file")
+ ("text/x-latex" . "tm-latex")
+ ))
+\end{verbatim}
+d447 1
+d449 9
+a457 1
+\subsubsection{content header ¤Îɽ¼¨}
+d459 2
+a460 4
+mime/view-minor-mode ¤Ç¤Ï¡¢MIME ·Á¼°¤Î content ¤ÎÆâ¡¢¤½¤Î content ¤Î
+content-type ¤¬ÊÑ¿ô
+mime/default-showing-Content-Type-list ¤Ç»ØÄꤵ¤ì¤¿¤â¤Î¤Ç¤Ê¤±¤ì¤Ð±£¤·
+¤Þ¤¹¡£
+a461 4
+¤³¤Î¤è¤¦¤Ë¡¢content ¤¬±£¤µ¤ì¤ë¾ì¹ç¤Ç¤â¡¢ÉáÄÌ¤Ï content header ¤È
+content body ¤Î£±¹ÔÌܤÏɽ¼¨¤µ¤ì¤Þ¤¹¤¬¡¢ÊÑ¿ô mime/hide-content-header
+¤ò t ¤Ë¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢content header ¤Î£±¹ÔÌܤΤߤòɽ¼¨¤¹¤ë¤è¤¦¤Ë¤Ç
+¤¤Þ¤¹¡£
+d463 1
+d465 32
+a496 1
+\subsubsection{ÆâÉô decoder ¤Î»ÈÍÑ}
+d498 1
+a498 2
+°Ê²¼¤Î¤è¤¦¤ËÊÑ¿ô mime/use-internal-decoder ¤ò t ¤Ë¤¹¤ë¤È¡¢Base64 ¤Î
+decode ¤òÆâÉô decoder ¤ò»È¤Ã¤Æ¹Ô¤Ê¤¤¤Þ¤¹¡£
+d501 4
+a504 1
+(setq mime/use-internal-decoder t)
+d507 1
+a507 3
+¤·¤«¤·¤Ê¤¬¤é¡¢ÆâÉô decoder ¤Ï¤¹¤´¤¯ÃÙ¤¤¤Î¤Ç (\verb+^+\_\verb+^+;
+decode-b ¤¬Æ°¤«¤Ê¤¤¤« mmencode ¤¬¤Ê¤¤¾ì¹ç°Ê³°¤Ï»ØÄꤷ¤Ê¤¤Êý¤¬Îɤ¤¤Ç¤·¤ç
+¤¦¡£
+d509 1
+d511 2
+a512 1
+\subsection{method script}
+d515 3
+a517 2
+³Æ method ¤Ï shell script ¤Ç½ñ¤¤Þ¤¹¡£tm-body.el ¤«¤éÅϤµ¤ì¤ë°ú¿ô¤Ï°Ê
+²¼¤ÎÄ̤ê¤Ç¤¹¡£
+d533 1
+a533 1
+¤Þ¤¿¡¢message/partial ¤À¤±¤Ï tm-body.el ¼«¿È¤ÇÉü¸µ¤·¤Þ¤¹¡£
+a536 2
+
+message/external-body ¤Ë´Ø¤·¤Æ¤Ï¸½ºß¤Î¤È¤³¤í¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£
+@
+
+
+2.0
+log
+@¹½À®¤òÊѤ¨¤¿¡£
+@
+text
+@d6 1
+a6 1
+\date{\verb$Id: tm-jp.tex,v 1.2 1994/09/01 02:11:05 morioka Exp morioka $}
+d243 2
+d255 1
+a255 4
+\noindent{\bf [Ãí°Õ]}
+
+(*1) tm-mh-e, tm-gnus, tm-rmail ¤Ê¤É¤Ç tm-view ¤ÎÀßÄê¤ò¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢
+Summary mode ¤Ë¤ÏÌá¤ê¤Þ¤»¤ó¡£
+d257 8
+a264 1
+(*2) ¼ÂºÝ¤ÎÆ°ºî¤ÏÂбþ¤¹¤ë method ¤Ë°Í¤ê¤Þ¤¹¡£
+@
+
+
+1.2
+log
+@̾Á°¤Î¤È¤³¤í¤Ë E-mail address ¤òÉÕ¤±²Ã¤¨¤¿¡£
+@
+text
+@d6 1
+a6 1
+\date{\verb$Id: tm-jp.tex,v 1.1 1994/08/31 11:18:40 morioka Exp morioka $}
+d55 15
+d76 15
+d195 6
+a200 1
+\chapter{»È¤¤Êý}
+d202 7
+a208 1
+\section{tm-MUA}
+a209 1
+tm-mh-e, tm-gnus, tm-rmail ¤Ê¤É¤Î tm-MUA ¤Î´ðËÜŪ¤Ê»È¤¤Êý¤òÀâÌÀ¤·¤Þ¤¹¡£
+d211 1
+a211 1
+\subsection{Summary mode}
+d213 2
+a214 2
+tm-MUA ¤ò»È¤¦¤È¸µ¤Î MUA ¤Î Summary mode ¤ËÂФ·¤Æ°Ê²¼¤Îµ¡Ç½¤¬Äɲ䵤ì¤Þ
+¤¹¡£
+d226 3
+a228 1
+\subsection{mime/view-mode}
+d230 3
+a232 2
+mime/view-mode ¤Ï¡¢MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Î minor-mode ¤Ç¤¹¡£¸µ¤Î
+MUA ¤Î Article mode ¤ËÂФ·¤Æ°Ê²¼¤Îµ¡Ç½¤¬Äɲ䵤ì¤Þ¤¹¡£
+d250 3
+d261 72
+a332 1
+\section{tiny-mime}
+d334 3
+a336 3
+mime/decode-region ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢°úÍÑ¤Ê¤É¤Ç buffer ¤Ë»Ä¤Ã¤¿ MIME
+header ¤ò decode ¤Ç¤¤Þ¤¹¡£¡Ê¾Ü¤·¤¯¤Ï tiny-mime ¤ÎÀâÌÀ½ñ¤ò»²¾È¤·¤Æ²¼¤µ
+¤¤¡Ë
+d338 3
+a341 1
+\chapter{Customize}
+d343 1
+a343 1
+\section{tm-view}
+d347 2
+d364 16
+d381 1
+a381 3
+decode ¤òÆâÉô decoder ¤ò»È¤Ã¤Æ¹Ô¤Ê¤¤¤Þ¤¹¡£¡Ê¤¹¤´¤¯ÃÙ¤¤¤Ç¤¹
+(\verb+^+\_\verb+^+; decode-b ¤¬Æ°¤«¤Ê¤¤¤« mmencode ¤¬¤Ê¤¤¾ì¹ç°Ê³°¤Ï»Ø
+Äꤷ¤Ê¤¤Êý¤¬Îɤ¤¤Ç¤·¤ç¤¦¡Ë
+d387 4
+d392 1
+a392 1
+\subsection{method script ¤ÎÀßÄê}
+d415 1
+a415 1
+\subsection{À©¸Â}
+d429 21
+a449 1
+\section{tm-gnus}
+d451 2
+a452 1
+\subsection{article ¤ò save ¤¹¤ë»þ decoding ¤·¤Ê¤¤}
+d454 3
+a456 2
+article ¤ò save ¤¹¤ë»þ¡¢Êݸ¤µ¤ì¤ë message ¤Ï¤½¤Î»þɽ¼¨¤µ¤ì¤Æ¤¤¤ë¤è¤¦
+¤Ë¡¢¤½¤Î»þ¤Î MIME header decoding mode ¤Ë±þ¤¸¤Æ save ¤µ¤ì¤Þ¤¹¡£
+d458 4
+a461 5
+¤·¤«¤·¡¢article ¤ò save ¤¹¤ë»þ¡¢¾ï¤Ë¡¢MIME header decoding ¤ò¹Ô¤Ê¤ï¤Ê
+¤¤¡¢À¸¤Î message ¤ÇÊݸ¤·¤¿¤¤¾ì¹ç¤Ï¡¢ÊÑ¿ô
+tm-gnus/set-mime-header-decoding-mode ¤ÎÃͤò nil ¤Ë¤·¤Æ¡¢MIME header
+decoding ¤ò¹Ô¤Ê¤ï¤Ê¤¤ mode ¤Ë¤·¤Æ¡¢article save ´Ø¿ô¤ò¼Â¹Ô¤¹¤ë¤è¤¦¤ËÀß
+Äꤷ¤Æ²¼¤µ¤¤¡£
+d463 2
+a464 3
+Save ¤Î¼Â¹Ô¸å¡¢MIME header decoding mode ¤òÁ°¤Î¾õÂÖ¤ËÌᤷ¤¿¤¤¾ì¹ç¤Ï¡¢
+°Ê²¼¤Î¤è¤¦¤Ë¡¢°ì»þÊÑ¿ô¤Ë MIME header decoding mode ¤òÊݸ¤·¤Æ¤ª¤±¤Ð OK
+¤Ç¤¹¡£
+d466 2
+a467 7
+\begin{verbatim}
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (article save ´Ø¿ô)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )
+\end{verbatim}
+a468 1
+°Ê²¼¤Ë¡¢mh-e ¤Î folder ¤Ë save ¤¹¤ë¾ì¹ç¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£
+d470 1
+a470 26
+\begin{verbatim}
+(add-hook 'gnus-Startup-hook
+ (function
+ (lambda ()
+ (setq gnus-default-article-saver
+ (function
+ (lambda ()
+ (interactive)
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (gnus-Subject-save-in-folder)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )))))))
+(add-hook 'gnus-startup-hook
+ (function
+ (lambda ()
+ (setq gnus-default-article-saver
+ (function
+ (lambda ()
+ (interactive)
+ (let ((mm mime/header-decoding-mode))
+ (tm-gnus/set-mime-header-decoding-mode nil)
+ (gnus-summary-save-in-folder)
+ (tm-gnus/set-mime-header-decoding-mode mm)
+ )))))))
+\end{verbatim}
+d472 1
+a472 1
+\subsection{reply ¤¹¤ë»þ Subject ¤Î encoding Ë¡¤ò reply ¸µ¤Ë¹ç¤ï¤»¤ë}
+d474 4
+a477 3
+Reply ¤¹¤ë»þ¡¢reply ¸µ¤Î Subject ¤Ë ASCII °Ê³°¤Îʸ»ú½¸¹ç¤ÎÆþ¤Ã¤Æ¤¤¤ë
+¾ì¹ç¡¢reply ¸µ¤¬ MIME encode ¤µ¤ì¤Æ¤¤¤¿¤é encode ¤·¡¢¤½¤¦¤Ç¤Ê¤«¤Ã¤¿¤é
+À¸¤ÇÆþ¤ì¤¿¤¤¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Þ¤¹¡£
+d479 2
+a480 9
+\begin{verbatim}
+(add-hook 'gnus-article-prepare-hook
+ (function
+ (lambda ()
+ (if (mime/exist-encoded-word-in-subject)
+ (setq mime/no-encoding-header-fields '("X-Nsubject"))
+ (setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
+ ))))
+\end{verbatim}
+@
+
+
+1.1
+log
+@Initial revision
+@
+text
+@d4 3
+a6 2
+\author{¼é²¬ ÃÎɧ}
+\date{\verb$Id$}
+@
;;;
(defconst mime/viewer-RCS-ID
- "$Id: tm-view.el,v 5.5 1994/10/02 17:54:17 morioka Exp $")
+ "$Id: tm-view.el,v 5.9 1994/10/11 15:14:07 morioka Exp $")
(defconst mime/viewer-version
(and (string-match "[0-9][0-9.]*" mime/viewer-RCS-ID)
)
(progn
(narrow-to-region (point-min)
- (progn
- (search-forward "\n\n" nil t)
- (match-beginning 0)
- ))
+ (or (and (search-forward "\n\n" nil t)
+ (match-beginning 0)
+ )
+ (point-max)))
(or
(message/get-field-body "Content-Description")
(message/get-field-body "Subject")
(switch-to-buffer obuf)
(setq nb (point))
(insert str)
- (setq ne (- (point) 1))
+ (setq ne (point))
(save-excursion
(save-restriction
(narrow-to-region nb ne)
(goto-char nb)
(funcall mime/make-content-subject-function cid subj ctype)
(setq ne (point-max))
- (setq dest (nconc dest (list (list nb ne buf beg end))))
+ (setq dest (nconc dest (list (list nb (- ne 1) buf beg end))))
))
+ (goto-char ne)
(setq r (cdr r))
)
(set-buffer-modified-p nil)
(define-key keymap "n" 'mime/next-content)
(define-key keymap " " 'mime/scroll-up-content)
(define-key keymap "\M- " 'mime/scroll-down-content)
+ (define-key keymap "\177" 'mime/scroll-down-content)
+ (define-key keymap "\C-m" 'mime/next-line-content)
+ (define-key keymap "\C-\M-m" 'mime/previous-line-content)
(define-key keymap "v" 'mime/play-content)
(define-key keymap "e" 'mime/extract-content)
(define-key keymap "\C-c\C-p" 'mime/print-content)
))
))
-(defun mime/scroll-up-content ()
+(defun mime/scroll-up-content (&optional h)
(interactive)
+ (if (null h)
+ (setq h (- (window-height) 1))
+ )
(let ((fcl mime/preview-flat-content-list)
(p (point))
- (h (- (window-height) 1))
np)
(setq np (or (catch 'tag
(while fcl
(goto-char np)
)))
-(defun mime/scroll-down-content ()
+(defun mime/scroll-down-content (&optional h)
(interactive)
+ (if (null h)
+ (setq h (- (window-height) 1))
+ )
(let ((fcl mime/preview-flat-content-list)
(p (point))
- (h (- (window-height) 1))
pp)
(setq pp (or (let ((i (- (length fcl) 1)))
(catch 'tag
(goto-char pp)
)))
+(defun mime/next-line-content ()
+ (interactive)
+ (mime/scroll-up-content 1)
+ )
+
+(defun mime/previous-line-content ()
+ (interactive)
+ (mime/scroll-down-content 1)
+ )
+
(defun mime/exit-view-mode ()
(interactive)
(kill-buffer (current-buffer))
--- /dev/null
+;;;
+;;; tm-vm.el : tm-MUA for vm
+;;;
+;;; by MASUTANI Yasuhiro <masutani@me.es.osaka-u.ac.jp>
+;;;
+;;; Plese insert (load "tm-vm") in .vm or .emacs.
+;;;
+
+(define-key vm-mode-map "Z" 'tm-vm/view-message)
+
+(require 'tl-list)
+(require 'tm-view)
+
+(setq mime/go-to-top-node-method-alist
+ (put-alist 'vm-mode
+ (function
+ (lambda ()
+ (mime/exit-view-mode)
+ (let ((w (get-buffer-window mime/output-buffer-name)))
+ (if w (delete-window w)))
+ (vm-display vm-summary-buffer t
+ '(mime/exit-view-mode)
+ '(this-command))
+ (vm-widen-page)
+ (goto-char (point-max))
+ (widen)
+ (narrow-to-region (point)
+ (vm-vheaders-of
+ (car vm-message-pointer)))
+ (goto-char (point-min))
+ (if vm-honor-page-delimiters
+ (vm-narrow-to-page))
+ (select-window (get-buffer-window vm-summary-buffer))
+ ))
+ mime/go-to-top-node-method-alist))
+
+(defun tm-vm/view-message ()
+ "Decode and view MIME message for VM"
+ (interactive)
+ (vm-follow-summary-cursor)
+ (vm-select-folder-buffer)
+ (vm-check-for-killed-summary)
+ (vm-error-if-folder-empty)
+ (vm-display (current-buffer) t '(tm-vm/view-message)
+ '(tm-vm/view-mesage reading-message))
+ (vm-widen-page)
+ (goto-char (point-max))
+ (widen)
+ (narrow-to-region (point) (vm-start-of (car vm-message-pointer)))
+ (goto-char (point-min))
+ (select-window (vm-get-buffer-window (current-buffer)))
+ (mime/viewer-mode))