1 \documentstyle[a4j]{jreport}
6 \date{\verb$Id: tm-jp.tex,v 5.1 1994/09/26 14:52:00 morioka Exp $}
15 tm ¤Ï GNU Emacs ¤Ç MIME ¤ò³Ú¤·¤à¤¿¤á¤Î package ¤Ç¤¹¡£tm ¤ò»È¤¦¤È¡¢
18 \item ¿¸À¸ì header ¤Î encode/decode
19 \item mime/viewer-mode ¤ò»È¤Ã¤¿ MIME message ¤Î±ÜÍ÷¡¦ºÆÀ¸
20 \item mh-e, GNUS, RMAIL ¤Ç¤Î MIME µ¡Ç½¤Î¶¯²½
23 \noindent ¤¬¹Ô¤Ê¤¨¤Þ¤¹¡£
28 tm ¤Ï°Ê²¼¤Î module ¤«¤é¤Ê¤ê¤Þ¤¹¡£
31 \item {\bf tiny-mime} : MIME header encoder/decoder
32 \item {\bf tm-view} : MIME viewer
33 \item {\bf tm-misc} : tm-MUA ¤Î¶¦ÄÌ module
34 \item {\bf tm-MUAs} : MUA ¤Î MIME µ¡Ç½¶¯²½ module
36 \item {\bf tm-mh-e} : mh-e ÍѤΠtm-MUA
37 \item {\bf tm-gnus} : GNUS ÍѤΠtm-MUA
38 \item {\bf tm-rmail} : RMAIL ÍѤΠtm-MUA
40 \item {\bf tm-setup} tm-MUA ¤ÎÀßÄê module
41 \item {\bf mime-setup} MIME ´Ø·¸¤ÎÀßÄê module
45 \chapter{Emacs version Ê̤ε¡Ç½¤ª¤è¤ÓÀ©¸Â}
47 \section{Emacs (original)}
49 Original ¤Î Emacs ¤Ç¤Ï¡¢ÅöÁ³¤Î¤³¤È¤Ê¤¬¤é¡¢Ã±°ìʸ»ú½¸¹ç¤·¤«»È¤¨¤Þ¤»¤ó¡£
51 \section{NEmacs, NEpoch}
53 NEmacs ¤Ç¤Ï¡¢ISO-2022-JP ¤ª¤è¤Ó US-ASCII ¤¬»È¤¨¤Þ¤¹¡£
56 \item[¡ÎÃí°Õ¡Ï] outline.el ¤Ï NEmacs Éí°¤Î¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢outln-18.el
57 ¤ò»È¤¦¤³¤È¤ò¿ä¾©¤·¤Þ¤¹¡£outln-18.el ¤ò»È¤¦¾ì¹ç¤Ï¡¢¤³¤ì¤ò outline.el
58 ¤Ë link ¤òÄ¥¤ë¤«¡¢rename ¤·¤Æ²¼¤µ¤¤¡£
60 outln-18.el ¤ò»È¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢outline.el ¤Ë
66 \noindent ¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£
72 ISO-2022-JP, ISO-2022-JP-2, US-ASCII, ISO-8859-1..9, ISO-2022-CN,
73 ISO-2022-KR, EUC-KR ¤Ê¤É¤Î¿¸À¸ì header ¤¬»È¤¨¤Þ¤¹¡£¤Þ¤¿¡¢´Ø¿ô
74 mime/set-charset-and-encoding ¤ÇÄɲá¦Êѹ¹¤¬¤Ç¤¤Þ¤¹¡£
77 \item[¡ÎÃí°Õ¡Ï] Emacs 18 base ¤Î Mule (Mule 1.1 ¤Ê¤É¡Ë¤Ç¤Ï¡¢Mule Éí°
78 ¤Î outline.el ¤ÎÂå¤ï¤ê¤Ëoutln-18.el ¤ò»È¤¦¤³¤È¤ò¿ä¾©¤·¤Þ¤¹¡£
79 outln-18.el ¤ò»È¤¦¾ì¹ç¤Ï¡¢¤³¤ì¤ò outline.el ¤Ë link ¤òÄ¥¤ë¤«¡¢rename
82 outln-18.el ¤ò»È¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢outline.el ¤Ë
88 \noindent ¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£
92 \chapter{Install ¤ÈÀßÄê}
96 Install ¤Ï¼¡¤Î¼ê½ç¤Ç¹Ô¤Ê¤¤¤Þ¤¹¡£
99 \item Makefile ¤Î bindir ¤ò¼«Ê¬¤Î´Ä¶¤Ë¹ç¤ï¤»¤Æ½ñ¤´¹¤¨¤ë¡£
100 \item methods/ °Ê²¼¤Ë¤¢¤ë method script ¤ò \ref{sec:method} Àá¤ò»²¾È¤·
101 ¤Æ¡¢¼«Ê¬¤Î´Ä¶¤Ë¹ç¤¦¤è¤¦¤Ë½ñ¤´¹¤¨¤ë¡£
102 \item make all ¤¹¤ë¡£
103 \item make install ¤¹¤ë¡£
104 \item *.el ¤ò Emacs ¤ÎÊÑ¿ô load-path ¤Ç»ØÄꤵ¤ì¤¿ directory ¤Ë copy ¤¹¤ë¡£
107 \noindent{\bf [Ãí°Õ]}
109 \item tm-mh-e3.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢mh-e version 3.* ¤ò load
110 ¤·¤¿¾õÂ֤ǹԤʤäƲ¼¤µ¤¤¡£
111 \item tm-gnus3.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢GNUS 3 ¤¬ load ¤µ¤ì¤¿¾õ
113 \item tl-18.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢Emacs 18 ¤Ç¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£
114 \item tl-orig.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢original Emacs ¤Ç¹Ô¤Ê¤Ã¤Æ
116 \item tl-nemacs.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢NEmacs ¤Ç¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£
117 \item tl-mule.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢Mule ¤Ç¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£
118 \item Emacs 19 ¤Ç byte-compile ¤·¤¿ module ¤Ï Emacs 18 ¤Ç¤ÏÆ°¤¤Þ¤»¤ó¡£
124 ¤³¤Î package ¤Ë¤Ï mime-setup.el ¤È tm-setup.el ¤È¤¤¤¦´Ê°×ÀßÄê file ¤¬
125 Éí°¤·¤Æ¤¤¤Þ¤¹¡£mime-setup.el ¤Ç¤Ï encoding ¤â´Þ¤á¤¿ÀßÄê¤ò¹Ô¤Ê¤¤¡¢
126 tm-setup ¤Ç¤Ï tm-MUA ¤Ë´Ø¤¹¤ëÀßÄê¤Î¤ß¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£
128 \subsection{mime-setup}
134 \noindent ¤È¤¹¤ë¤È MIME ¤Ë´Ø¤¹¤ë³Æ¼ïÀßÄê¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£mime-setup ¤Ï
135 tm-setup ¤òÆɤó¤Ç¤¤¤ë¤Î¤Ç¡¢mime-setup ¤ò»È¤¦¾ì¹ç¡¢tm-setup ¤ò load ¤¹
138 mime-setup.el ¤Ïɸ½à¤Ç¤Ï SuperCite ¤ÎÀßÄê¤â¹Ô¤Ê¤¤¤Þ¤¹¡£¤³¤ì¤ò¤ä¤á¤ë¾ì
139 ¹ç .emacs ¤Ë°Ê²¼¤Î¤â¤Î¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£
142 (setq mime-setup-use-sc nil)
145 mime-setup ¤Ç¤Ï signature ¤Î¼«Æ°ÀÚÂؤ¨ tool ¤âÉí°¤·¤Æ¤¤¤Þ¤¹¡£
146 message header ¤Î field ¤Ë¹ç¤ï¤»¤Æ signature ¤Î¼«Æ°ÀÚÂؤò¹Ô¤Ê¤¤¤¿¤¤¾ì
147 ¹ç¤Ï .emacs ¤Ë°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£¡Ê¾Ü¤·¤¯¤Ï signature.el
148 ¤ÎÀâÌÀ½ñ¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡Ë
151 (setq signature-file-alist
152 '((("Newsgroups" . "jokes") . "~/.signature-jokes")
153 (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun")
154 (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun")
155 (("To" . "tea") . "~/.signature-jokes")
156 (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal")
160 mime-setup ¤ò»È¤¦¾ì¹ç¤Ï¡¢mime.el ¤¬É¬ÍפǤ¹¡£¤Þ¤¿¡¢SuperCite ¤ò»È¤¦¾ì
161 ¹ç¤Ï¡¢SuperCite ¤âɬÍפǤ¹¡£
164 \subsection{tm-setup}
166 tm-setup ¤Ï tm-MUA ¤ÎÀßÄê¤Î¤ß¤ò¹Ô¤Ê¤¦ module ¤Ç¤¹¡£mime-setup ¤ò load
167 ¤·¤Æ¤¤¤ë¾ì¹ç¡¢¤³¤ì¤òÍÛ¤Ë load ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¤¬¡¢mime-setup ¤ò»È
168 ¤¤¤¿¤¯¤Ê¤¤¾ì¹ç¡¢°Ê²¼¤Î¤è¤¦¤Ë¤³¤ì¤ò load ¤·¤Æ²¼¤µ¤¤¡£
175 \subsection{ÀßÄê file ¤ò»È¤ï¤Ê¤¤¾ì¹ç}
177 tm-setup.el ¤ò»²¹Í¤Ë¤·¤Æ²¼¤µ¤¤¡£
180 \subsection{MH ¤ÎÀßÄê}
182 ¤Þ¤¿¡¢MH ¤¬ MH-6.8JP2 ¤Î¾ì¹ç¡¢.mh\_profile ¤Ë
185 scan: -form scan.mime
187 repl: -form replcomps.mime
191 \noindent ¤òÄɲ䷤Ƥ¯¤À¤µ¤¤¡£¤Þ¤¿¡¢¤½¤ì°Ê³°¤Î MH ¤Î½èÍý¤Ï Emacs ¤Î¦
192 ¤Ç¼è¤ê»ÅÀÚ¤ë¤Î¤Ç¡¢MH ¤ÎÀßÄê¤Ï¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
197 ``tm-MUA'' ¤È¤¤¤¦¤Î¤Ï¡¢mh-e, GNUS, RMAIL ¤Ê¤É¤Î MUA ¤Î¤¿¤á¤Î MIME µ¡Ç½
198 ¶¯²½ module ¤ÎÁí¾Î¤Ç¤¹¡£
203 \item {\bf tm-mh-e} : mh-e ÍѤΠtm-MUA
204 \item {\bf tm-gnus} : GNUS ÍѤΠtm-MUA
205 \item {\bf tm-rmail} : RMAIL ÍѤΠtm-MUA
208 \noindent ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¾Ï¤Ç¤Ï¤³¤ì¤é¤Î module ¤Ë´Ø¤·¤ÆÀâÌÀ¤·¤Þ¤¹¡£
211 \section{Summary mode}
213 tm-MUA ¤ò»È¤¦¤È¡¢¸µ¤Î MUA ¤Î Summary mode ¤ËÂФ·¤Æ°Ê²¼¤Îµ¡Ç½¤¬Äɲ䵤ì
218 \begin{tabular}{|l|l|}\hline
220 M-t & MIME header ¤Î decode ¤Ë´Ø¤¹¤ë toggle \\
221 v & ËÜʸ¤ËÆþ¤ê¡¢mime/view-mode ¤Ë°Ü¤ë \\ \hline
227 \section{mime/viewer-mode}
228 \label{sec:mime/viewer-mode}
230 tm-MUA ¤ò»È¤¦¤È¡¢Summary mode ¤Ç {\bf v} ¤ò²¡¤¹¤³¤È¤Ë¤è¤Ã¤Æ¡¢
231 mime/viewer-mode ¤È¤¤¤¦ MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Î mode ¤ËÆþ¤ê¤Þ¤¹
232 ¡Ê⤷¡¢vm ¤Ç¤Ï°ã¤¦ key ¤Ë bind ¤·¤Æ¤¤¤ë¤½¤¦¤Ç¤¹¡Ë¡£mime/viewer-mode
233 ¤Ë¤Ï°Ê²¼¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£
237 \begin{tabular}{|l|l|}\hline
239 u & ¾å¤Î content ¤ËÌá¤ë \\
240 & message ¤Î°ìÈÖ¾å¤Î content ¤Ç¤³¤ì¤ò¹Ô¤Ê¤¦¤È Summary mode
242 p & Á°¤Î content ¤Ë°ÜÆ°¤¹¤ë \\
243 n & ¼¡¤Î content ¤Ë°ÜÆ°¤¹¤ë \\
244 SPC & scroll up ¤¹¤ë \\
245 M-SPC & scroll down ¤¹¤ë \\
246 v & content ¤òºÆÀ¸¤¹¤ë (*2) \\
247 e & content ¤«¤é file ¤ò¼è¤ê½Ð¤¹ (*2) \\
248 C-c C-p & content ¤ò°õºþ¤¹¤ë (*2) \\ \hline
255 \newcounter{asteriskcount}
256 \noindent{\bf ¡ÎÃí°Õ¡Ï}
258 {\list{(*\arabic{asteriskcount})}{\usecounter{asteriskcount}\leftmargin=8ex}
259 \item tm-mh-e, tm-gnus, tm-rmail ¤Ê¤É¤Ç tm-view ¤ÎÀßÄê¤ò¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢
260 Summary mode ¤Ë¤ÏÌá¤ê¤Þ¤»¤ó¡£
261 \item ¼ÂºÝ¤ÎÆ°ºî¤ÏÂбþ¤¹¤ë method ¤Ë°Í¤ê¤Þ¤¹¡£
265 \section{tm-gnus ¤Î customize}
267 \subsection{article ¤ò save ¤¹¤ë»þ decoding ¤·¤Ê¤¤}
269 article ¤ò save ¤¹¤ë»þ¡¢Êݸ¤µ¤ì¤ë message ¤Ï¤½¤Î»þɽ¼¨¤µ¤ì¤Æ¤¤¤ë¤è¤¦
270 ¤Ë¡¢¤½¤Î»þ¤Î MIME header decoding mode ¤Ë±þ¤¸¤Æ save ¤µ¤ì¤Þ¤¹¡£
272 ¤·¤«¤·¡¢article ¤ò save ¤¹¤ë»þ¡¢¾ï¤Ë¡¢MIME header decoding ¤ò¹Ô¤Ê¤ï¤Ê
273 ¤¤¡¢À¸¤Î message ¤ÇÊݸ¤·¤¿¤¤¾ì¹ç¤Ï¡¢ÊÑ¿ô
274 tm-gnus/set-mime-header-decoding-mode ¤ÎÃͤò nil ¤Ë¤·¤Æ¡¢MIME header
275 decoding ¤ò¹Ô¤Ê¤ï¤Ê¤¤ mode ¤Ë¤·¤Æ¡¢article save ´Ø¿ô¤ò¼Â¹Ô¤¹¤ë¤è¤¦¤ËÀß
278 Save ¤Î¼Â¹Ô¸å¡¢MIME header decoding mode ¤òÁ°¤Î¾õÂÖ¤ËÌᤷ¤¿¤¤¾ì¹ç¤Ï¡¢
279 °Ê²¼¤Î¤è¤¦¤Ë¡¢°ì»þÊÑ¿ô¤Ë MIME header decoding mode ¤òÊݸ¤·¤Æ¤ª¤±¤Ð OK
283 (let ((mm mime/header-decoding-mode))
284 (tm-gnus/set-mime-header-decoding-mode nil)
286 (tm-gnus/set-mime-header-decoding-mode mm)
290 °Ê²¼¤Ë¡¢mh-e ¤Î folder ¤Ë save ¤¹¤ë¾ì¹ç¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£
293 (add-hook 'gnus-Startup-hook
296 (setq gnus-default-article-saver
300 (let ((mm mime/header-decoding-mode))
301 (tm-gnus/set-mime-header-decoding-mode nil)
302 (gnus-Subject-save-in-folder)
303 (tm-gnus/set-mime-header-decoding-mode mm)
305 (add-hook 'gnus-startup-hook
308 (setq gnus-default-article-saver
312 (let ((mm mime/header-decoding-mode))
313 (tm-gnus/set-mime-header-decoding-mode nil)
314 (gnus-summary-save-in-folder)
315 (tm-gnus/set-mime-header-decoding-mode mm)
319 \subsection{reply ¤¹¤ë»þ Subject ¤Î encoding Ë¡¤ò reply ¸µ¤Ë¹ç¤ï¤»¤ë}
321 Reply ¤¹¤ë»þ¡¢reply ¸µ¤Î Subject ¤Ë ASCII °Ê³°¤Îʸ»ú½¸¹ç¤ÎÆþ¤Ã¤Æ¤¤¤ë
322 ¾ì¹ç¡¢reply ¸µ¤¬ MIME encode ¤µ¤ì¤Æ¤¤¤¿¤é encode ¤·¡¢¤½¤¦¤Ç¤Ê¤«¤Ã¤¿¤é
323 À¸¤ÇÆþ¤ì¤¿¤¤¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Þ¤¹¡£
326 (add-hook 'gnus-article-prepare-hook
329 (if (mime/exist-encoded-word-in-subject)
330 (setq mime/no-encoding-header-fields '("X-Nsubject"))
331 (setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
338 tm-view ¤Ï MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Îµ¡Ç½¤òÄ󶡤¹¤ë module ¤Ç¤¹¡£
339 tm-view ¤Ï mime/viewer-mode ¤È¤¤¤¦ mode ¤òÄ󶡤·¤Þ¤¹¡£
341 mime/viewer-mode ¤Îµ¡Ç½¤Ë´Ø¤·¤Æ¤Ï¡¢\ref{sec:mime/viewer-mode} Àá¤ò»²¾È
344 \section{content ¤Î decode ¾ò·ï¤ÎÀßÄê}
346 ÊÑ¿ô mime/content-decoding-condition ¤Ï decode »þ¤Î method ¤ò»ØÄꤹ¤ë
347 ¤¿¤á¤ÎÊÑ¿ô¤Ç¡¢tm-view 4 ¤ÎÊÑ¿ô mime/content-decoding-method-alist ¤ËÁê
350 ÊÑ¿ô mime/content-decoding-method-alist ¤Ç¤Ï¡¢Ã±¤Ë
351 content-type/subtype ¤ËÂФ¹¤ë method ¤ò»ØÄꤹ¤ë¤³¤È¤·¤«¤Ç¤¤Þ¤»¤ó¤Ç¤·
352 ¤¿¤¬¡¢ÊÑ¿ô mime/content-decoding-condition ¤Ç¤Ï decode »þ¤ÎÀ©Ìó¾ò·ï¤ò
355 ÊÑ¿ô mime/content-decoding-condition ¤Ï¡¢
358 (¾ò·ï_1 \;\; ¾ò·ï_2 \;\; ...)
361 \noindent ¤È¤¤¤¦·Á¤ò¤·¤¿ list ¤Ç¡¢³Æ¾ò·ï¤Ï
364 ((field-type_1 \; . \; value_1) \;\;
365 (field-type_2 \; . \; value_2) \;\; ...)
368 \noindent ¤È¤¤¤¦·Á¤ÎÏ¢ÁÛ list ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
370 Î㤨¤Ð¡¢text/plain ¤Î»þ¡¢tm-plain ¤òµ¯Æ°¤¹¤ë»þ¡¢
373 ((type . "text/plain")
374 (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
377 \noindent ¤È¤¤¤¦¾ò·ï¤ò½ñ¤¤Þ¤¹¡£¸«¤Æ¤ÎÄ̤ꡢ³°Éô method ¤Î°ú¿ô¤¬½ñ¤±¤ë
378 ¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¾Ü¤·¤¯¤Ï \ref{sec:method-arguments} Àá¤Ç½Ò¤Ù¤Þ¤¹¡£
380 ¤³¤Î¾ò·ï¤Ï text/plain ¤Ç¤¢¤ë content ¤Ê¤éÁ´¤Æ¤Î decoding-mode ¤Ç͸ú¤Ç
384 ((type . "text/plain")
385 (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
389 \noindent ¤Ê¤é¡¢play mode °Ê³°¤Ç¤Ï͸ú¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
394 ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
398 \noindent ¤Ê¤é¡¢Á´¤Æ¤Î content-type ¤Î play mode ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤¹¡£
400 ¤³¤¦¤·¤Æ³Æ¾ò·ï¤òÁ°¤«¤é¸«¤Æ¹Ô¤¡¢ºÇ½é¤Ë͸ú¤Ë¤Ê¤Ã¤¿¾ò·ï¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
403 \subsection{method ¤Î°ú¿ô¤Î»ØÄê¤Î»ÅÊý}
404 \label{sec:method-arguments}
406 ¾ò·ï¤Î method field ¤Ï
409 (method \; . \; SYMBOL)
415 (method \; ʸ»úÎó \; FLAG \; °ú¿ô_1 \; °ú¿ô_2 \; ...)
418 \noindent ¤È¤¤¤¦·Á¤ò¤·¤Æ¤¤¤Þ¤¹¡£
420 method field ¤ÎÃͤ¬ symbol ¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢ÆâÉô method ¤È¤·¤Æµ¯Æ°¤µ¤ì¤Þ
423 method field ¤ÎÃͤ¬ list ¤Ç¤¢¤ë¾ì¹ç¡¢³°Éô method ¤È¤·¤Æµ¯Æ°¤µ¤ì¤Þ¤¹¡£
428 ʸ»úÎó&:&³°Éô method ¤Î̾Á° \\
429 FLAG&:& t ¤Ê¤é content header ¤â³°Éô method ¤ËÅϤ¹¡£
430 nil ¤Ê¤é content body ¤Î¤ß¤òÅϤ¹¡£\\
431 °ú¿ôÎó&:&³°Éô method ¤Î°ú¿ô
435 \noindent ¤È²ò¼á¤µ¤ì¤Þ¤¹¡£
437 ¤Þ¤¿¡¢³°Éô method ¤Î°ú¿ô¤Ï¼¡¤Î¤è¤¦¤Ê·Á¼°¤Ç½ñ¤¤Þ¤¹¡£
441 ʸ»úÎó&:&¤½¤Îʸ»úÎó¤òÅϤ¹ \\
442 'SYMBOL&:&SYMBOL ¤ò key ¤È¤·¤¿ÃͤòÅϤ¹\\
443 'ʸ»úÎó&:&ʸ»úÎó¤ò key ¤È¤·¤¿ÃͤòÅϤ¹
447 'SYMBOL ¤Ç»ØÄê¤Ç¤¤ë¤â¤Î¤Ë¤Ï¡¢
451 'file&:&content ¤òÅϤ¹¤¿¤á¤Î file ̾ \\
452 'type&:&content-type/sub-type ̾ \\
453 'encoding&:&content-transfer-encoding \\
454 'mode&:&decoding mode \\
455 'name&:&file ¤ËÍ¾ì¹ç¤Î file ̾
459 \noindent ¤Ê¤É¤¬¤¢¤ê¡¢'ʸ»úÎó ¤Ç¤Ï Content-Type field ¤Î parameter ¤Î
465 ½é´üÃͤϰʲ¼¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
468 (defvar mime/content-decoding-condition
469 '(((type . "text/plain")
470 (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
471 ((type . "text/x-latex")
472 (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
473 ((type . "audio/basic")
474 (method "tm-au" nil 'file 'type 'encoding 'mode 'name))
475 ((type . "image/gif")
476 (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
477 ((type . "image/jpeg")
478 (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
479 ((type . "image/tiff")
480 (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
481 ((type . "image/x-tiff")
482 (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
483 ((type . "image/x-xbm")
484 (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
485 ((type . "image/x-pic")
486 (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
487 ((type . "video/mpeg")`
488 (method "tm-mpeg" nil 'file 'type 'encoding 'mode 'name))
489 ((type . "application/octet-stream")
490 (method "tm-file" nil 'file 'type 'encoding 'mode 'name))
491 ((type . "message/partial")
492 (method . mime/decode-message/partial-region))
493 ((method "metamail" t
494 "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
498 Î㤨¤Ð¡¢¡ÖÁ´Éô metamail »È¤¦¤ó¤ä¡×¤È¤¤¤¦¾ì¹ç¡¢
501 (setq mime/content-decoding-condition
503 ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
507 \noindent ¤È¤¹¤ì¤Ð OK ¤Ç¤¹¡£
509 ¹©Éפ¹¤ì¤Ð¡¢¤«¤Ê¤êÊ£»¨¤Ê¾ò·ï¤¬½ñ¤±¤ë¤Ç¤·¤ç¤¦¡£
512 \section{method script}
515 ³Æ method ¤Ï shell script ¤Ç½ñ¤¤Þ¤¹¡£tm-verw.el ¤«¤éÅϤµ¤ì¤ë°ú¿ô¤Ï¡¢
516 ÊÑ¿ô mime/content-decoding-condition ¤Ç»ØÄê¤Ç¤¤Þ¤¹¤¬¡¢É¸½àŪ¤Ê°ú¿ôÎó
521 \begin{tabular}{|c|l|} \hline
522 °ú¿ô & \multicolumn{1}{|c|}{ ÃÍ }\\ \hline
523 \$1 & decode Á°¤Î file ̾ \\
524 \$2 & Content-Type (type/sub-type) \\
526 \{7bit / quoted-printable / base64 / 8bit / binary / ...\}\\
527 \$4 & decoding-mode \{play / extract / print\} \\
528 \$5 & file ̾ \\ \hline
533 ¤Þ¤¿¡¢message/partial ¤À¤±¤Ï tm-view.el ¼«¿È¤ÇÉü¸µ¤·¤Þ¤¹¡£
538 Éí°¤Î BASE64 decoder ¤Ç¤¢¤ë decode-b.c ¤Ï¤¤¤¤²Ã¸º¤Êºî¤ê¤Ê¤Î¤Ç¡¢Æ°¤«¤Ê
539 ¤«¤Ã¤¿¤é¡¢Ã»¤¤¥×¥í¥°¥é¥à¤Ê¤Î¤Ç¡¢°Õ¤òµâ¤ó¤Ç½¤Àµ¤·¤Æ²¼¤µ¤¤¡£
542 ¤Þ¤¿¡¢metamail Éí°¤Î mmencode ¤ò»È¤Ã¤Æ decode ¤·¤Æ¤âÎɤ¤¤Ç¤·¤ç¤¦¡£
544 ¤Þ¤¿¡¢Quoted-Printable ¤Î decoder ¤ÏÉí°¤·¤Þ¤»¤ó¤Î¤Ç¡¢mmencode ¤ò»È¤Ã
550 tiny-mime ¤Ï Mule, NEmacs, NEpoch ¾å¤ÇÆ°ºî¤¹¤ë MIME header ¤Î
551 encoder/decoder ¤Ç¤¹¡£tiny-mime ¤Ï¡¢ÀΡ¢¤¨¤Ê¤ß ¤Ä¤°¤È¤â ¤µ¤ó¤¬
552 fj.editor.emacs ¤ËÅê¹Æ¤µ¤ì¤¿ ISO-2022-JP MIME header decoder ¤ò¸µ¤Ë¤·
555 ¸½ºß¤Ç¤Ï¡¢Åö»þ¤Î¤â¤Î¤ËÈæ¤Ù¡¢
558 \item decoding »þ¤Ë¤ª¤±¤ë unfolding µ¡Ç½¤ÎÄɲÃ
559 \item ISO-2022-JP ¤Ë²Ã¤¨¡¢ISO-2022-KR, ISO-8859-*, US-ASCII ¤Ê¤É¤Î¿¸À
560 ¸ì header ¤Î encode/decode µ¡Ç½¤ÎÄɲÃ
561 \item Q-encoding ¤ÎÄɲÃ
562 \item RFC 1522 ¤Ø¤ÎÂбþ
565 \noindent ¤È¤¤¤Ã¤¿µ¡Ç½¶¯²½¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
567 tiny-mime ¤Ï tm ¤Ë¤ª¤±¤ë MIME header encoder/decoder ¤Ç¤¢¤ê¡¢tm-view,
568 tm-MUA ¤¬¤³¤ì¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
571 \section{mime/decode-message-header}
573 {\tt mime/decode-message-header} ¤Ï MIME header ¤ò decode ¤¹¤ë¤¿¤á¤ÎÌ¿
574 Îá¤Ç¤¹¡£tiny-mime ¤¬ load ¤µ¤ì¤Æ¤¤¤ë¾õÂ֤ǡ¢decode ¤·¤¿¤¤ buffer ¤Î¾å
577 {\list{}{\leftmargin=8ex}\item[]
579 M-x {\tt mime/decode-message-header}
582 \noindent ¤ò¼Â¹Ô¤¹¤ë¤È¡¢¤½¤Î buffer ¾å¤Î MIME header ¤¬ decode ¤µ¤ì¤Þ
585 tm-MUA ¤ä tm-view ¤Ï¤³¤ÎÌ¿Îá¤ò¸Æ¤ó¤Ç¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤é¤òÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢
586 Íۤˤ³¤ÎÌ¿Îá¤ò¼Â¹Ô¤¹¤ëɬÍפÏ̵¤¤¤Ç¤·¤ç¤¦¡£
589 \section{mime/decode-region}
593 {\list{}{\leftmargin=8ex}\item[]
595 M-x {\tt mime/decode-region}
598 \noindent ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢°úÍÑ¤Ê¤É¤Ç buffer ¤Ë»Ä¤Ã¤¿ MIME header ¤ò
602 \chapter{¥Ð¥°Êó¹ð¤Î»ÅÊý}
604 tm ¤Î¥Ð¥°¤ò¸«¤Ä¤±¤¿¤é fj.editor.emacs ¤Ë post ¤¹¤ë¤«¡¢tm ML
605 $<$tm@chamonix.jaist.ac.jp$>$ ¤Ë mail ¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
607 tm ML ¤Ç¤Ï tm ¤Î¥Ð¥°¾ðÊó¤Î¸ò´¹¤äºÇ¿·ÈǤÎÇÛÉÛ¡¢tm ¤Î²þÎɤ˴ؤ¹¤ëµÄÏÀ¤ò
608 ¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£tm ML ¤Ë»²²Ã¤·¤¿¤¤Êý¤Ï
611 tm-admin@chamonix.jaist.ac.jp
614 \noindent ¤Þ¤Ç mail ¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£ÅÐÏ¿¤Ï¼êÆ°¤Ç¤¹¤Î¤Ç¡¢¤Ç¤¤ì¤Ð¡¢¼«Á³
615 ¸À¸ì¤Ç½ñ¤¤¤Æ²¼¤µ¤¤¡£(\verb+^+\_\verb+^+)