--- /dev/null
+Mon Dec 18 11:16:18 1995 Morioka Tomohiko <morioka@jaist.ac.jp>
+
+ * tm: Version 7.36 was released.
+ * tm/gnus: Version 7.25 was released.
+
+ * methods/tm-au: new implementation
+
+Mon Dec 18 10:45:02 1995 Morioka Tomohiko <morioka@jaist.ac.jp>
+
+ * tm-view.el (mime-viewer/quit): New implementation
+
+ * tm-view.el (mime-viewer/show-summary): New function:
+ it is bound with `h' key.
+
+ * tm-view.el (mime-viewer/show-summary-method): New variable
+
+Mon Dec 18 01:32:23 1995 Morioka Tomohiko <morioka@jaist.ac.jp>
+
+ * methods/tmdecode, methods/tm-plain:
+ replaced by NAGIRA Naoki <naoki-n@pdi.co.jp>'s code.
+
+Sun Dec 17 14:35:01 1995 Morioka Tomohiko <morioka@jaist.ac.jp>
+
+ * tm-view.el: setting for "image/x-mag"
+
+Sun Dec 17 14:29:17 1995 Morioka Tomohiko <morioka@jaist.ac.jp>
+
+ * tm-pgp.el: application/pgp-encrypted support
+
+ * tm-pgp.el (mime-article/check-pgp-signature): bug fix
+
+ * tm-pgp.el: setting for "text/x-pgp"
+
+ * tm-setup.el: setting for tm-image.el when XEmacs is running.
+
+ * tm-image.el:
+ Filters were merged to function `mime-preview/filter-for-image'.
+
+Sat Dec 16 14:59:29 1995 Morioka Tomohiko <morioka@jaist.ac.jp>
+
+ * tm-image.el: Initial revision
tm/config.tm tm/Makefile tm/mk-tm \
tm/tm-mule.el tm/tm-nemacs.el tm/tm-orig.el tm/tm-def.el \
tm/tm-eword.el tm/tm-ew-d.el tm/tm-ew-e.el \
- tm/tm-view.el tm/tm-parse.el tm/tm-rich.el \
+ tm/tm-view.el tm/tm-parse.el \
+ tm/tm-rich.el tm/tm-image.el \
tm/tm-play.el tm/tm-partial.el tm/tm-pgp.el \
tm/tm-ftp.el tm/tm-latex.el tm/tm-html.el tm/tm-file.el \
tm/tm-tar.el \
FILES = $(TM_FILES) $(TM_MUA_FILES) $(MEL_FILES) $(TL_FILES)
-TARFILE = tm7.35.tar.gz
+TARFILE = tm7.36.tar.gz
18:
[README for tm (English Version)]
by MORIOKA Tomohiko <morioka@jaist.ac.jp>
and KOBAYASHI Shuhei <shuhei@cmpt01.phys.tohoku.ac.jp>
-$Id: README.en,v 7.5 1995/12/07 11:24:57 morioka Exp morioka $
+$Id: README.en,v 7.6 1995/12/18 11:16:18 morioka Exp $
1 What's tm?
10 TODO
-- automatic MIME preview support for another MUA
-- better XEmacs support (e.g. inline image)
+- MUA specific key bind system for mime/viewer-mode
+- better identification calculus system as successor of atype system
- development of internal method for message/external-body based on
tm-ftp
-- development good MIME composer
+- better automatic MIME preview support
- etc.
#
-# $Id: Makefile,v 1.1 1995/07/17 16:41:30 morioka Exp morioka $
+# $Id: Makefile,v 2.0 1995/12/17 17:58:43 morioka Exp morioka $
#
EMACS=mule
-MAKEINFO=$(EMACS) -batch -q -no-site-file $< -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer
+MAKEINFO=$(EMACS) -batch -q -no-site-file $< -l texinfmt -f texinfo-format-buffer -f save-buffer
+# MAKEINFO=$(EMACS) -batch -q -no-site-file $< -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer
# MAKEINFO=makeinfo $<
INFO_JA = tm_ja.info tm-gnus_ja.info tm-mh-e_ja.info
-INFO_EN = tm_en.info tm-gnus_en.info
+INFO_EN = tm_en.info tm-gnus_en.info tm-mh-e_en.info
-OLFILES = # tiny-mime-eng.ol
-TEXFILES= signature-jp.tex # tiny-mime-eng.tex
-DVIFILES= tm-eng.dvi signature-jp.dvi # tiny-mime-eng.dvi
-PSFILES = signature-jp.# ps tiny-mime-eng.ps
+TEXFILES= signature-jp.tex
+DVIFILES= signature-jp.dvi
GOMI = *.aux *.toc *.log \
*.cp *.cps *.fn *.fns *.vr *.vrs *.ky *.pg *.tp \
$(DVIFILES) *.ps *~
-.SUFFIXES: .ol .tex .dvi .ps .texi .info
+.SUFFIXES: .texi .info .dvi .ol .tex
+
+.texi.info:
+ $(MAKEINFO)
.ol.tex:
ol2 < $< | plain2 -tex -tstyle=a4j > $@
jlatex $<
jlatex $<
-.texi.info:
- $(MAKEINFO)
-
-.dvi.ps:
- dvi2ps $< > $@
-
all: $(DVI)
info: $(INFO_JA) $(INFO_EN)
-tm_en.info:
-
-tm-gnus_en.info:
- makeinfo $<
-
tex: $(TEXFILES)
$(DVIFILES): $(TEXFILES)
-ps: $(PSFILES)
-
-$(PSFILES): $(DVIFILES)
-
clean:
rm $(GOMI)
--- /dev/null
+@c $Id: tm-ew-d=en.texi,v 2.0 1995/12/17 16:15:57 morioka Exp $
+
+@node encoded-word decoding, article-buffer, function to preview, Functions of tm-view
+@comment node-name, next, previous, up
+@subsection encoded-word decoding
+@cindex encoded-word
+@cindex non-ASCII field
+@cindex message header
+
+tm-view can decode encoded-word defined in RFC 1522.
+
+
+@deffn{Command} mime/decode-message-header
+
+It decodes encoded-words in message header of current buffer.
+@end deffn
+
+
+@deffn{Command} mime-eword/decode-region beg end &optional unfolding
+
+It decodes encoded-words in region @var{beg} to @var{end}.
+
+If @var{unfolding} is non-nil, folded fields are unfolded.
+@end deffn
+
+
+@deffn{Function} mime-eword/decode-string str
+
+It decodes encoded-words in @var{str}.
+
+Folded string is unfolded.
+@end deffn
--- /dev/null
+@c $Id: tm-ew-d=ja.texi,v 2.0 1995/12/17 22:54:40 morioka Exp $
+
+@node encoded-word decoding, , function to preview, Functions of tm-view
+@comment node-name, next, previous, up
+@subsection encoded-word decoding
+@cindex encoded-word
+@cindex non-ASCII field
+@cindex message header
+
+tm-view ¤Ï RFC 1522 ¤Çµ¬Äꤵ¤ì¤¿ encoded-word ¤ò decode ¤¹¤ë¤¿¤á¤Î´Ø¿ô
+¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
+
+
+@deffn{Command} mime/decode-message-header
+
+current buffer ¤Î message header Ãæ¤Î encoded-word ¤ò decode ¤·¤Þ¤¹¡£
+@end deffn
+
+
+@deffn{Command} mime-eword/decode-region beg end &optional unfolding
+
+@var{beg} ¤È @var{end} ¤Ç°Ï¤Þ¤ì¤¿ÎΰèÃæ¤Î encoded-word ¤ò decode ¤·¤Þ
+¤¹¡£
+
+@var{unfolding} ¤¬ non-nil ¤Î¾ì¹ç¡¢fold ¤µ¤ì¤¿ field ¤ò unfolding ¤·¤Þ
+¤¹¡£
+@end deffn
+
+
+@deffn{Function} mime-eword/decode-string str
+
+@var{str} ¤Î encoded-word ¤ò decode ¤·¤Þ¤¹¡£
+
+fold ¤µ¤ì¤¿Ê¸»úÎó¤Ï unfolding ¤µ¤ì¤Þ¤¹¡£
+@end deffn
--- /dev/null
+@c $Id: tm-ew_en.texi,v 1.1 1995/12/13 09:27:39 morioka Exp $
+
+@node encoded-word, customize, tm-view, Top
+@comment node-name, next, previous, up
+@chapter encoded-word
+@cindex encoded-word
+@cindex non-ASCII field
+@cindex message header
+
+tm has some functions about encoded-word defined in RFC 1522.
+
+@menu
+* encoded-word decoding:: decode
+* encoded-word encoding:: encode
+* encoded-word utility::
+@end menu
+
+
+@node encoded-word encoding, encoded-word utility, encoded-word, encoded-word
+@comment node-name, next, previous, up
+@section encoded-word encoding
+
+@deffn{Command} mime/encode-message-header
+
+It encodes non-ASCII characters in message header of current buffer.
+@end deffn
+
+
+@deffn{Function} mime/encode-field str
+
+It encodes @var{str} as a field.
+@end deffn
+
+
+@deffn{Function} mime-eword/encode-string str &optional column mode
+
+It encodes @var{str}.
+
+@var{column} specifies start column. Default value is 0.
+
+@var{mode} specifies where @var{str} is in. Available values are
+@code{text}, @code{comment}, @code{phrase}. Default value is
+@code{phrase}.
+@end deffn
+
+
+@node encoded-word utility, , encoded-word encoding, encoded-word
+@comment node-name, next, previous, up
+@section encoded-word utility
+
+@deffn{Function} mime/exist-encoded-word-in-subject
+
+If there are encoded-words in Subject: field in current buffer,
+it returns field-body of the Subject: field.
+@end deffn
--- /dev/null
+@c $Id: tm-ew=ja.texi,v 4.0 1995/12/17 22:55:44 morioka Exp $
+
+@node encoded-word, customize, tm-view, Top
+@comment node-name, next, previous, up
+@chapter encoded-word
+@cindex encoded-word
+@cindex non-ASCII field
+@cindex message header
+
+tm ¤Ï RFC 1522¡ÊÈó ASCII text ¤Î¤¿¤á¤Î message header ¤Î³ÈÄ¥¡Ë¤Çµ¬Äꤵ
+¤ì¤¿ encoded-word ¤ò°·¤¦¤¿¤á¤Î´Ø¿ô¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
+
+@menu
+* encoded-word decoding:: decode
+* encoded-word encoding:: encode
+* encoded-word utility::
+@end menu
+
+
+@node encoded-word encoding, encoded-word utility, encoded-word, encoded-word
+@comment node-name, next, previous, up
+@section encoded-word encoding
+
+@deffn{Command} mime/encode-message-header
+
+current buffer ¤Î message header Ãæ¤ÎÈó ASCII ʸ»úÎó¤ò encoded-word ¤È
+¤·¤Æ encode ¤·¤Þ¤¹¡£
+@end deffn
+
+
+@deffn{Function} mime/encode-field str
+
+@var{str} ¤ò field ¤È¤·¤Æ encode ¤·¤Þ¤¹¡£
+@end deffn
+
+
+@deffn{Function} mime-eword/encode-string str &optional column mode
+
+@var{str} ¤ò encoded-word ¤È¤·¤Æ encode ¤·¤Þ¤¹¡£
+
+@var{column} ¤Ï¤³¤Îʸ»úÎ󤬲¿·åÌܤ«¤é»Ï¤Þ¤Ã¤Æ¤¤¤ë¤«¤ò»ØÄꤷ¤Þ¤¹¡£´ûÄê
+ÃÍ¤Ï 0 ¤Ç¤¹¡£
+
+@var{mode} ¤Ï¤³¤Îʸ»úÎ󤬤ɤ¦¤¤¤¦Éôʬ¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Þ¤¹¡£»ØÄê
+¤Ç¤¤ëÃͤȤ·¤Æ¤Ï @code{text}, @code{comment}, @code{phrase} ¤¬¤¢¤ê¤Þ¤¹¡£
+´ûÄêÃÍ¤Ï @code{phrase} ¤Ç¤¹¡£
+@end deffn
+
+
+@node encoded-word utility, , encoded-word encoding, encoded-word
+@comment node-name, next, previous, up
+@section encoded-word utility
+
+@deffn{Function} mime/exist-encoded-word-in-subject
+
+current buffer ¤Î Subject: field ¤Ë encoded-word ¤¬Â¸ºß¤¹¤ë¾ì¹ç¡¢
+Subject: field ¤Î field-body ¤òÊÖ¤·¤Þ¤¹¡£
+@end deffn
@titlepage
@title{tm-gnus}
@author{MORIOKA Tomohiko}
-@code{$Id: tm-gnus_en.texi,v 3.0 1995/09/05 10:19:13 morioka Exp $}
+@code{$Id: tm-gnus_en.texi,v 4.0 1995/12/18 12:04:00 morioka Exp morioka $}
@end titlepage
@node Top, Introduction, (tm_en.info)tm-MUA, (tm_en.info)tm-MUA
@comment node-name, next, previous, up
@ifinfo
-@top tm-gnus 6.20 Reference manual
+@top tm-gnus 7.25 Reference manual
@end ifinfo
@menu
-* Introduction:: modules of tm-gnus
-* Features:: Features of tm-gnus
-* Customize:: Customize of tm-gnus
-* Concept Index::
-* Command Index::
-* Variable Index::
+* Introduction::
+* Features::
+* Index::
@end menu
encoded-word in summary buffer and article buffer, and adds a command
to preview MIME message using tm-view in summary mode.
-In (ding) GNUS and GNUS 5.*, tm-gnus can display MIME preview buffer
-instead of article buffer if you apply a patch to support this
-feature. It is useful for heavy MIME user.
+In GNUS 3.15 or later and Gnus, tm-gnus can display MIME preview
+buffer instead of article buffer. It is useful for heavy MIME user.
+
+Note: September Gnus has some features to support tm-gnus. So it is
+better choice if you don't dislike alpha version.
tm-gnus has following modules:
@itemize @minus
-@item @strong{tm-gnus}: setting module for GNUS.
-@item @strong{tm-gnus3}: setting module for GNUS 3.*.
-@item @strong{tm-gnus4}: setting module for GNUS 4.*.
-@item @strong{tm-ognus}: common part for tm-gnus3 and tm-gnus4.
-@item @strong{tm-dgnus}: setting module for (ding) GNUS.
-@item @strong{tm-gnus5}: setting module for GNUS 5.*.
+@item @strong{tm-gnus.el}: main module of tm-gnus
+@item @strong{tm-gnus3.el}: module for GNUS 3.*.
+@item @strong{tm-gnus4.el}: module for GNUS 4.*, Gnus 5.0 and 5.1
+@item @strong{tm-gd3.el}: common part for GNUS
+@item @strong{tm-gd5.el}: common part for Gnus
+@item @strong{tm-sgnus.el}: module for September Gnus
@end itemize
-@node Features, Customize, Introduction, Top
+@node Features, Index, Introduction, Top
@comment node-name, next, previous, up
@chapter Features
@cindex features
@cindex RFC 1522
@cindex summary buffer
-tm-gnus decodes MIME encoded-word in summary buffer using tiny-mime
-(@inforef{Top, , tm-eword_en}) functions. However if an encoded-word
-has unsupported charset, it is not decoded.
-
-@menu
-* (tm-eword_en.info)Charsets:: supported charsets
-@end menu
+tm-gnus decodes MIME encoded-word in summary buffer using tm-view
+(@inforef{encoded-word decoding, , tm-eword_en}) functions. However if
+an encoded-word has unsupported charset, it is not decoded.
@node Summary mode, Automatic MIME Preview, Summary buffer, Features
message, or play each contents included in a message.
@menu
-* (tm-view_en.info)Commands:: Commands of mime/viewer-mode.
+* (tm_en.info)MIME navigation:: Commands of mime/viewer-mode.
@end menu
@section Automatic MIME Preview
@cindex automatic MIME preview
-``Automatic MIME preview'' feature is available to apply ``with tm
-patch'' for (ding) GNUS and GNUS 5.*. This patch is in
-ftp.jaist.ac.jp:/pub/GNU/elisp/dgnus/, current version is
-dgnus-0.99.23-tm.diff (as of 2 September 1995).
-
-If this feature is available, when reading an article in summary mode,
-tm-gnus displays preview buffer processed by tm-view (@inforef{Top, ,
-tm-view_en.info}) instead of raw article buffer.
+``Automatic MIME preview'' feature is available in GNUS 3.15 or later
+and Gnus. If this feature is available, when reading an article in
+summary mode, tm-gnus displays preview buffer processed by tm-view
+instead of raw article buffer.
Therefore if an article is encoded by Quoted-Printable or Base64,
decoded article is displays. In addition, if using tm-rich, rich text
can stop automatic MIME preview.
-@defvar tm-gnus/decode-all
+@defvar tm-gnus/automatic-mime-preview
If it is t, tm-gnus is in automatic MIME preview mode.
@end defvar
-
-@deffn{Command} tm-gnus/toggle-mime arg
-
-It switches normal mode and automatic MIME preview mode. Namely, it
-switches value of the variable @code{tm-gnus/decode-all}.
-
-If @var{arg} is @code{t}, it set the variable
-@code{tm-gnus/decode-all} to @code{t}.
-@end deffn
-
-
-If ``withd tm patch'' is applied, semantics of variable
-@code{gnus-article-buffer} is changed, its semantics is divided into
-following two variables.
+In September Gnus, semantics of variable @code{gnus-article-buffer} is
+changed, its semantics is divided into following two variables.
@defvar gnus-article-buffer
It indicates the buffer to display. In automatic MIME preview mode, it
-indicates preview buffer processed by tm-view. In normal mode, it
-indicates raw article buffer. In this case, it is equal to variable
-@code{gnus-clean-article-buffer}.
+indicates preview-buffer "*Article*" processed by tm-view.
@end defvar
-@defvar gnus-clean-article-buffer
-
-It indicates raw article buffer even if tm-gnus is in automatic MIME
-preview mode.
-@end defvar
+@defvar gnus-original-article-buffer
+It indicates raw article-buffer " *Original Article*" even if tm-gnus
+is in automatic MIME preview mode.
-@node Customize, Concept Index, Features, Top
-@comment node-name, next, previous, up
-@chapter Customize of tm-gnus
-@cindex customize
-
-@defvar tm-gnus/original-article-display-hook
-
-tm-gnus uses @code{gnus-article-display-hook}, forbids to use for
-users customize. Therefore tm-gnus has this variable instead of
-@code{gnus-article-display-hook}.
-
-Notice: it is available after tm-gnus is loaded. Therefore you had
-better to set in @code{call-after-loaded} like following:
-
-@lisp
-@cartouche
-(call-after-loaded
- 'tm-view
- (function
- (lambda ()
- (add-hook 'tm-gnus/original-article-display-hook
- ...)
- )))
-@end cartouche
-@end lisp
+GNUS and Gnus 5.1 or earlier don't have it, but tm-gnus4 emulate
+it. In this case, it indicates nil if there is not preview-buffer.
@end defvar
-In addition, you can customize preview buffer to set tm-view
-setting. For instance, following is a example to add faces using
-hilit19.
-
-@lisp
-@cartouche
-(cond (window-system
- (let* ((header-patterns '(("^Subject:.*$" nil msg-subject)
- ("^From:.*$" nil msg-from)
- ("^--text follows this line--$"
- nil msg-separator)
- ("^[A-Za-z][A-Za-z0-9-]+:" nil msg-header)
- ))
- (body-patterns '(("^\\(In article\\|[ \t]*\\w*[]<>@}|]\\).*$"
- nil msg-quote)))
- (message-patterns (append header-patterns body-patterns))
- )
- (hilit-set-mode-patterns 'msg-header header-patterns)
- (hilit-set-mode-patterns 'msg-body body-patterns)
- (hilit-set-mode-patterns 'mime/viewer-mode
- message-patterns
- 'hilit-rehighlight-message)
- )
- (add-hook 'mime-viewer/content-header-filter-hook
- (function hilit-rehighlight-buffer-quietly))
- (add-hook 'mime-viewer/plain-text-preview-hook
- (function hilit-rehighlight-buffer-quietly))
- ))
-@end cartouche
-@end lisp
@menu
-* (tm-view_en.info):: tm-view
+* (tm_en.info)tm-view::
@end menu
-@node Concept Index, Command Index, Customize, Top
-@unnumbered Concept Index
+@node Index, , Features, Top
+@unnumbered Index
@printindex cp
-
-
-@node Command Index, Variable Index, Concept Index, Top
-@unnumbered Command and Function Index
-
@printindex fn
-
-
-@node Variable Index, , Command Index, Top
-@unnumbered Variable Index
-
@printindex vr
@bye
@titlepage
@title{tm-gnus}
@author{¼é²¬ ÃÎɧ}
-@code{$Id: tm-gnus_ja.texi,v 4.0 1995/12/11 08:30:16 morioka Exp morioka $}
+@code{$Id: tm-gnus_ja.texi,v 4.1 1995/12/18 12:04:38 morioka Exp morioka $}
@end titlepage
@node Top, Introduction, (tm_ja.info)tm-MUA, (tm_ja.info)tm-MUA
@comment node-name, next, previous, up
@ifinfo
-@top tm-gnus 7.21 Reference manual
+@top tm-gnus 7.25 Reference manual
@end ifinfo
@menu
°Ê²¼¤Ë tm-gnus ¤Ë´Þ¤Þ¤ì¤ë module ¤ò¼¨¤·¤Þ¤¹¡£
@itemize @minus
-@item @strong{tm-gnus.el}: GNUS ÍѤΠmodule
+@item @strong{tm-gnus.el}: tm-gnus ¤Î main module
@item @strong{tm-gnus3.el}: GNUS 3.* ÍѤΠmodule
@item @strong{tm-gnus4.el}: GNUS 4.*, Gnus 5.0.*, 5.1 ÍѤΠmodule
@item @strong{tm-gd3.el}: GNUS ÍѤΠlibrary module
@cindex RFC 1522
@cindex summary buffer
-tm-gnus ¤òÍѤ¤¤ë¤È¡¢tm-view (@inforef{encoded-word decoding, ,
-tm-ja.info}) ¤Îµ¡Ç½¤ò»È¤Ã¤Æ Summary buffer Ãæ¤Î MIME encoded-word ¤ò
-decode ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤·¤«¤·¡¢encoded-word ¤Î¤¦¤Á¡¢¤½¤Î emacs ¤Ç
-support ¤µ¤ì¤Ê¤¤ charset ¤Ï decode ¤µ¤ì¤Þ¤»¤ó¡£
+tm-gnus ¤òÍѤ¤¤ë¤È¡¢tm-view
+(@inforef{encoded-word decoding, , tm-ja.info}) ¤Îµ¡Ç½¤ò»È¤Ã¤Æ Summary
+buffer Ãæ¤Î MIME encoded-word ¤òdecode ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤·¤«¤·¡¢
+encoded-word ¤Î¤¦¤Á¡¢¤½¤Î emacs ¤Ç support ¤µ¤ì¤Ê¤¤ charset ¤Ï decode
+¤µ¤ì¤Þ¤»¤ó¡£
@node Summary mode, Automatic MIME Preview, Summary buffer, Features
--- /dev/null
+\input texinfo.tex
+@c{-*-tm-mh-e manual-*-}
+@setfilename tm-mh-e_en.info
+@settitle{tm-mh-e manual}
+
+@titlepage
+@title{tm-mh-e}
+@author{MORIOKA Tomohiko}
+@code{$Id: $}
+@end titlepage
+
+
+@node Top, Introduction, (tm_ja.info)tm-MUA, (tm_ja.info)tm-MUA
+@comment node-name, next, previous, up
+@ifinfo
+@top tm-mh-e 7.44 Reference manual
+@end ifinfo
+
+@menu
+* Introduction::
+* mh-folder-mode::
+* Automatic MIME Preview::
+* Index::
+@end menu
+
+
+@node Introduction, mh-folder-mode, Top, Top
+@comment node-name, next, previous, up
+@chapter Introduction
+@cindex components
+
+tm-mh-e is a mh-e extender to use tm, it is a tm-MUA.
+
+tm-mh-e extends MIME features to mh-e. tm-mh-e provides automatic MIME
+preview feature using tm-view.
+
+
+tm-mh-e has following modules:
+
+@itemize @minus
+@item @strong{tm-mh-e.el}: tm-mh-e main module
+@item @strong{tm-mh-e3.el}: library module for mh-e 3.*
+@end itemize
+
+
+@node mh-folder-mode, Automatic MIME Preview, Introduction, Top
+@comment node-name, next, previous, up
+@chapter folder-mode
+@cindex mh-folder-mode
+
+@table @kbd
+@item @key{M-t}
+It is the toggle whether to do automatic MIME preview or not.
+
+@item @key{v}
+Enter @code{mime/viewer-mode} to view a message.
+
+@item @key{.}
+Display current message.
+
+@item @key{,}
+Display current message with showing all fields.
+
+@item @key{M-,}
+Display current raw message.
+@end table
+
+@code{mime/viewer-mode} is a major-mode to view and navigate MIME
+message. In this mode, you can move in a message or play a content,
+interactively.
+
+
+@node Automatic MIME Preview, Index, mh-folder-mode, Top
+@comment node-name, next, previous, up
+@chapter Automatic MIME Preview
+@cindex automatic MIME preview
+
+``Automatic MIME preview'' feature is available in tm-mh-e. In
+automatic MIME preview mode, when reading an article in summary mode,
+tm-mh-e displays preview buffer processed by tm-view instead of raw
+show buffer.
+
+Therefore if an article is encoded by Quoted-Printable or Base64,
+decoded article is displays. In addition, if using tm-rich, rich text
+article is automatic formated. Of course, multipart article is dealt
+with correctly.
+
+Different from using metamail, speaker does not roar just then read an
+article includes audio content, video player does not play just then
+read an article includes video content, it does not do anonymous ftp
+or send mail when read an article includes external-message. These
+contents are played when you do decoding command in preview buffer.
+
+However if you use a slow machine, or are just really impatient, you
+can stop automatic MIME preview.
+
+
+@defvar tm-mh-e/automatic-mime-preview
+
+If it is t, tm-mh-e is in automatic MIME preview mode.
+@end defvar
+
+
+@menu
+* (tm_en.info)tm-view::
+@end menu
+
+
+@node Index, , Automatic MIME Preview, Top
+@unnumbered Index
+
+@printindex cp
+@printindex fn
+@printindex vr
+
+@bye
--- /dev/null
+@c $Id: tm-util_en.texi,v 1.1 1995/12/13 09:27:55 morioka Exp $
+
+@node customize, Bug report, encoded-word, Top
+@comment node-name, next, previous, up
+@chapter customize
+
+@menu
+* fields::
+* available functions::
+* example::
+@end menu
+
+@node fields, available functions, customize, customize
+@comment node-name, next, previous, up
+@section fields
+@cindex field-list
+@cindex field-regexp
+
+tm-view.el and tm-edit.el uses pair of @strong{field-list} and
+@strong{field-regexp} to display or choose fields of message header.
+
+tm has functions to set such pair.
+
+
+@defun tm:add-fields sym field-list &optional regexp-sym
+
+It adds @var{field-list} to field-list indicated by symbol @var{sym}.
+@end defun
+
+
+@defun tm:delete-fields sym field-list &optional regexp-sym
+
+It removes @var{field-list} from field-list indicated by symbol
+@var{sym}.
+@end defun
+
+
+@node available functions, example, fields, customize
+@comment node-name, next, previous, up
+@section available functions
+
+
+@defun add-path path &rest options
+
+It adds @var{path} to @code{load-path}.
+
+In default, it adds expanded path to top of @code{load-path} if there
+is @var{path} under @code{default-load-path}.
+
+If @code{'all-paths} is specified in @var{options}, it searches
+@var{path} from all of @code{load-path} instead of
+only @code{default-load-path}.
+
+If @code{'append} is specifies in @var{options}, it adds to end of
+@code{load-path}.
+@end defun
+
+
+@defun call-after-loaded module func &optional hook-name
+
+It calls function @var{func} if @var{module} is already provided.
+
+Otherwise, it add-hooks to @var{hook-name}.
+
+Default value of @var{hook-name} is @code{MODULE-load-hook}.
+@end defun
+
+
+@node example, , available functions, customize
+@comment node-name, next, previous, up
+@section example
+
+@subsection message header display (1)
+
+If you want not to display "Mail-From", "Expires", "Xref", "Approved",
+"Sender" and "X-.*", please specify:
+
+@lisp
+(call-after-loaded
+ 'tm-view
+ (lambda ()
+ (tm:add-fields
+ 'mime-viewer/ignored-field-list
+ '("Mail-From" "Expires" "Xref" "Approved" "Sender" "X-.*")
+ )))
+@end lisp
+
+@subsection message header display (2)
+
+If you want to display only "From", ".*To", "Subject", ".*Date" and
+"Newsgroups" , please specify:
+
+@lisp
+(setq mime-viewer/ignored-field-list '(".+"))
+(setq mime-viewer/visible-field-list
+ '("From" ".*To" "Subject" ".*Date" "Newsgroups"))
+@end lisp
+
+
+@subsection hilit19
+
+example to add faces using hilit19.
+
+@lisp
+(cond (window-system
+ (let* ((header-patterns '(("^Subject:.*$" nil msg-subject)
+ ("^From:.*$" nil msg-from)
+ ("^--text follows this line--$"
+ nil msg-separator)
+ ("^[A-Za-z][A-Za-z0-9-]+:" nil msg-header)
+ ))
+ (body-patterns '(("^\\(In article\\|[ \t]*\\w*[]<>@}|]\\).*$"
+ nil msg-quote)))
+ (message-patterns (append header-patterns body-patterns))
+ )
+ (hilit-set-mode-patterns 'msg-header header-patterns)
+ (hilit-set-mode-patterns 'msg-body body-patterns)
+ (hilit-set-mode-patterns 'mime/viewer-mode
+ message-patterns
+ 'hilit-rehighlight-message)
+ )
+ (add-hook 'mime-viewer/content-header-filter-hook
+ (function hilit-rehighlight-buffer-quietly))
+ (add-hook 'mime-viewer/plain-text-preview-hook
+ (function hilit-rehighlight-buffer-quietly))
+ ))
+@end lisp
+
+
+@subsection browse-url
+
+setting example for browse-url.el included in Gnus.
+
+@lisp
+(setq browse-url-browser-function
+ (if (eq window-system 'x)
+ 'browse-url-netscape
+ 'browse-url-w3))
+(autoload browse-url-browser-function "browse-url"
+ "Ask a WWW browser to show a URL." t)
+@end lisp
--- /dev/null
+@c $Id: tm-util=ja.texi,v 3.0 1995/12/17 22:56:52 morioka Exp $
+
+@node customize, Bug report, encoded-word, Top
+@comment node-name, next, previous, up
+@chapter tm ¤Î customize
+
+tm ¤Î customize, ¤ª¤è¤Ó¡¢customize ¤ò¹Ô¤¦¤Î¤ËÍÍѤʴؿô¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·
+¤Þ¤¹¡£
+
+@menu
+* fields::
+* available functions::
+* example::
+@end menu
+
+
+@node fields, available functions, customize, customize
+@comment node-name, next, previous, up
+@section fields
+@cindex field-list
+@cindex field-regexp
+
+tm-view.el ¤ä tm-edit.el ¤Ç¤Ï message header field ¤Îɽ¼¨¡¦ÁªÂò¤Ë
+@strong{field-list} ¤È @strong{field-regexp} ¤È¤¤¤¦ÂФòÍѤ¤¤Þ¤¹¡£
+
+¤³¤³¤Ç¤Ï¤³¤ÎÂФòÁàºî¤¹¤ë¤¿¤á¤Î´Ø¿ô¤ò¾Ò²ð¤·¤Þ¤¹¡£
+
+
+@defun tm:set-fields sym field-list &optional regexp-sym
+
+symbol @var{sym} ¤Ç»Ø¤µ¤ì¤¿ field-list ¤Ë @var{field-list} ¤ò set ¤·¤Þ
+¤¹¡£
+@end defun
+
+
+@defun tm:add-fields sym field-list &optional regexp-sym
+
+symbol @var{sym} ¤Ç»Ø¤µ¤ì¤¿ field-list ¤Ë @var{field-list} ¤òÄɲä·¤Þ
+¤¹¡£
+@end defun
+
+
+@defun tm:delete-fields sym field-list &optional regexp-sym
+
+symbol @var{sym} ¤Ç»Ø¤µ¤ì¤¿ field-list ¤«¤é @var{field-list} ¤òºï½ü¤·
+¤Þ¤¹¡£
+@end defun
+
+
+@node available functions, example, fields, customize
+@comment node-name, next, previous, up
+@section ÍÍѤʴؿô
+
+tm ¤ÎÀßÄê¤ËÍÍѤʴؿô¤ò¾Ò²ð¤·¤Þ¤¹¡£
+
+
+@defun add-path path &rest options
+
+@code{load-path} ¤Ë @var{path} ¤òÄɲä·¤Þ¤¹¡£
+
+ɸ½à¤Ç¤Ï @code{default-load-path} ¤Îľ²¼¤Î¤É¤³¤«¤Ë @var{path} ¤¬Â¸ºß¤·
+¤Æ¤¤¤ë»þ¤Î¤ß¡¢@code{load-path} ¤ÎÀèƬ¤ËŸ³«¤·¤¿·Á¤ÇÄɲä·¤Þ¤¹¡£
+
+@var{options} ¤Ë @code{'all-paths} ¤¬Â¸ºß¤¹¤ë¾ì¹ç¡¢@code{load-path} Á´
+ÂΤ«¤é @var{path} ¤òõº÷¤·¤Þ¤¹¡£
+
+@var{options} ¤Ë @code{'append} ¤¬Â¸ºß¤¹¤ë¾ì¹ç¡¢@code{load-path} ¤ÎËö
+Èø¤ËÄɲä·¤Þ¤¹¡£
+@end defun
+
+
+@defun call-after-loaded module func &optional hook-name
+
+@var{module} ¤¬ provide ¤µ¤ì¤Æ¤¤¤ì¤Ð @var{func} ¤ò¤¹¤°¤Ë¸Æ¤Ó¡¢¤½¤¦¤Ç¤Ê
+¤±¤ì¤Ð¡¢@var{module} ¤¬ load ¤µ¤ì¤¿»þ¤Ë @var{func} ¤¬¸Æ¤Ð¤ì¤ë¤è¤¦¤Ë¡¢
+@var{hook-name} ¤Ë add-hook ¤·¤Þ¤¹¡£
+
+@var{hook-name} ¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¡¢@code{MODULE-load-hook} ¤¬ÍѤ¤¤é¤ì¤Þ
+¤¹¡£
+@end defun
+
+
+@node example, , available functions, customize
+@comment node-name, next, previous, up
+@section example
+
+tm ¤Î customize ¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£
+
+
+@subsection preview-buffer ¤Çɽ¼¨¤µ¤ì¤ë field ¤ÎÊѹ¹
+
+ɸ½àÀßÄê¤Ë²Ã¤¨¡¢"Mail-From", "Expires", "Xref", "Approved", "Sender",
+"X-.*" ¤âɽ¼¨¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£
+
+@lisp
+(call-after-loaded
+ 'tm-view
+ (lambda ()
+ (tm:add-fields
+ 'mime-viewer/ignored-field-list
+ '("Mail-From" "Expires" "Xref" "Approved" "Sender" "X-.*")
+ )))
+@end lisp
+
+
+@subsection hilit19
+
+hilit19 ¤ò»È¤Ã¤¿ face ¤ÎÀßÄêÎã
+
+@lisp
+(cond (window-system
+ (let* ((header-patterns '(("^Subject:.*$" nil msg-subject)
+ ("^From:.*$" nil msg-from)
+ ("^--text follows this line--$"
+ nil msg-separator)
+ ("^[A-Za-z][A-Za-z0-9-]+:" nil msg-header)
+ ))
+ (body-patterns '(("^\\(In article\\|[ \t]*\\w*[]<>@}|]\\).*$"
+ nil msg-quote)))
+ (message-patterns (append header-patterns body-patterns))
+ )
+ (hilit-set-mode-patterns 'msg-header header-patterns)
+ (hilit-set-mode-patterns 'msg-body body-patterns)
+ (hilit-set-mode-patterns 'mime/viewer-mode
+ message-patterns
+ 'hilit-rehighlight-message)
+ )
+ (add-hook 'mime-viewer/content-header-filter-hook
+ (function hilit-rehighlight-buffer-quietly))
+ (add-hook 'mime-viewer/plain-text-preview-hook
+ (function hilit-rehighlight-buffer-quietly))
+ ))
+@end lisp
+
+
+@subsection browse-url
+
+Gnus ÉÕ°¤Î browse-url.el ¤ÎÀßÄêÎã
+
+@lisp
+(setq browse-url-browser-function
+ (if (eq window-system 'x)
+ 'browse-url-netscape
+ 'browse-url-w3))
+(autoload browse-url-browser-function "browse-url"
+ "Ask a WWW browser to show a URL." t)
+@end lisp
--- /dev/null
+@c $Id: tm-view-a=en.texi,v 2.0 1995/12/17 16:16:25 morioka Exp $
+
+@node article-buffer, preview-buffer, encoded-word decoding, Mechanism of tm-view
+@comment node-name, next, previous, up
+@subsection article-buffer
+
+@defvr{Structure} mime::content-info rcnum point-min point-max type parameters encoding children
+
+structure to represent MIME content in article-buffer. It is called by
+@strong{content-info}.
+
+@table @var
+@item rcnum
+@strong{reversed content-number} (list)
+
+@item point-min
+region beginning point in article-buffer
+
+@item point-max
+region end point in article-buffer
+
+@item type
+content-type/sub-type (string or nil)
+
+@item parameters
+parameter of Content-Type field (association list)
+
+@item encoding
+Content-Transfer-Encoding (string or nil)
+
+@item children
+list of content-info included in this content
+@end table
+
+Please use reference function `@code{mime::content-info/SLOT-NAME}' to
+reference slot of content-info. Their argument is only content-info.
+
+@end defvr
+
+
+@defvar mime::article/content-info
+
+result of MIME parsing of article-buffer (content-info)
+@end defvar
+
+
+@defvar mime::article/preview-buffer
+
+preview-buffer corresponded by this buffer
+@end defvar
+
+
+@defun mime-article/point-content-number point &optional cinfo
+
+In a region managed by content-info @var{cinfo}, it returns
+content-number corresponded by @var{point}.
+
+Default value of @var{cinfo} is @code{mime::article/content-info}.
+@end defun
+
+
+@defun mime-article/rcnum-to-cinfo rcnum &optional cinfo
+
+In a region managed by content-info @var{cinfo}, it returns
+content-info corresponded by reversed-content-number @var{rcnum}.
+
+Default value of @var{cinfo} is @code{mime::article/content-info}.
+@end defun
+
+
+@defun mime-article/cnum-to-cinfo rcnum &optional cinfo
+
+In a region managed by content-info @var{cinfo}, it returns
+content-info corresponded by content-number @var{cnum}.
+
+Default value of @var{cinfo} is @code{mime::article/content-info}.
+@end defun
+
+
+@defun mime/flatten-content-info &optional cinfo
+
+It returns flatten list of content-info from content-info @var{cinfo}
+tree.
+
+Default value of @var{cinfo} is @code{mime::article/content-info}.
+@end defun
--- /dev/null
+@c $Id: tm-view-a=ja.texi,v 2.0 1995/12/17 22:57:24 morioka Exp $
+
+@node article-buffer, preview-buffer, Mechanism of tm-view, Mechanism of tm-view
+@comment node-name, next, previous, up
+@subsection article-buffer
+
+@defvr{Structure} mime::content-info rcnum point-min point-max type parameters encoding children
+
+article-buffer ¤Ë¤ª¤±¤ë MIME content ¤Ë´Ø¤¹¤ë¾ðÊó¤ò³ÊǼ¤¹¤ë¤¿¤á¤Î¹½Â¤
+ÂΡ£Ã±¤Ë @strong{content-info} ¤È¤â¸Æ¤Ö¡£
+
+@table @var
+@item rcnum
+@strong{reversed content-number} (list)
+
+@item point-min
+article-buffer ¤Ë¤ª¤±¤ëÀèƬ point
+
+@item point-max
+article-buffer ¤Ë¤ª¤±¤ëËöÈø point
+
+@item type
+content-type/sub-type¡Êʸ»úÎ󡢤ޤ¿¤Ï¡¢nil¡Ë
+
+@item parameters
+Content-Type field ¤Î parameter ¡ÊÏ¢ÁÛ list¡Ë
+
+@item encoding
+Content-Transfer-Encoding¡Êʸ»úÎ󡢤ޤ¿¤Ï¡¢nil¡Ë
+
+@item children
+¤³¤Î content ¤Ë´Þ¤Þ¤ì¤ë contents¡Êcontent-info ¤Î list¡Ë
+@end table
+
+¤¢¤ë content ¤¬ multipart ¤â¤·¤¯¤Ï message/rfc822 ¤Ê¤É¤ÎÊ̤Πcontent
+¤ò´Þ¤à¤è¤¦¤Ê content ¤Ç¤¢¤Ã¤¿¾ì¹ç¡¢@var{children} ¤ËÊ̤Πcontent ¤Î
+content-info ¤¬´Þ¤Þ¤ì¤ë»ö¤Ë¤è¤Ã¤Æ¡¢content-info ¤ÏÌÚ¹½Â¤¤Ë¤Ê¤ë¡£
+
+¤³¤Î¹½Â¤ÂΤò»²¾È¤¹¤ë¤Ë¤Ï¡¢@code{mime::content-info/¥¹¥í¥Ã¥È̾} ¤È¤¤¤¦
+content-info ¤ò°ú¿ô¤Ë¤È¤ë´Ø¿ô¤òÍѤ¤¤ë¡£
+
+@end defvr
+
+
+@defvar mime::article/content-info
+
+article-buffer ¤ò MIME message ¤È¤·¤Æ²òÀϤ·¤¿·ë²Ì (content-info)
+@end defvar
+
+
+@defvar mime::article/preview-buffer
+
+article-buffer ¤ËÂбþ¤¹¤ë preview-buffer.
+@end defvar
+
+
+@defun mime-article/point-content-number point &optional cinfo
+
+content-info @var{cinfo} ¤Ç´ÉÍý¤µ¤ì¤ëÎΰè¤Ë¤ª¤¤¤Æ¡¢@var{point} ¤ËÂбþ
+¤¹¤ë content-number ¤òÊÖ¤¹¡£
+
+@var{cinfo} ¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¤Ï¡¢@code{mime::article/content-info} ¤¬ÍÑ
+¤¤¤é¤ì¤ë¡£
+@end defun
+
+
+@defun mime-article/rcnum-to-cinfo rcnum &optional cinfo
+
+content-info @var{cinfo} ¤Ç´ÉÍý¤µ¤ì¤ëÎΰè¤Ë¤ª¤¤¤Æ¡¢
+reversed-content-number @var{rcnum} ¤ËÂбþ¤¹¤ë content-info ¤òÊÖ¤¹¡£
+
+@var{cinfo} ¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¤Ï¡¢@code{mime::article/content-info} ¤¬ÍÑ
+¤¤¤é¤ì¤ë¡£
+@end defun
+
+
+@defun mime-article/cnum-to-cinfo rcnum &optional cinfo
+
+content-info @var{cinfo} ¤Ç´ÉÍý¤µ¤ì¤ëÎΰè¤Ë¤ª¤¤¤Æ¡¢content-number
+@var{rcnum} ¤ËÂбþ¤¹¤ë content-info ¤òÊÖ¤¹¡£
+
+@var{cinfo} ¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¤Ï¡¢@code{mime::article/content-info} ¤¬ÍÑ
+¤¤¤é¤ì¤ë¡£
+@end defun
+
+
+@defun mime/flatten-content-info &optional cinfo
+
+content-info @var{cinfo} Ãæ¤ËǼ¤á¤é¤ì¤¿Á´ contents ¤Î content-info ¤Î
+list ¤òÊÖ¤¹¡£
+
+@var{cinfo} ¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¤Ï¡¢@code{mime::article/content-info} ¤¬ÍÑ
+¤¤¤é¤ì¤ë¡£
+@end defun
--- /dev/null
+@c $Id: tm-view-cb_en.texi,v 1.1 1995/12/13 09:28:29 morioka Exp $
+
+@node content-body, content-separator, content-header, MIME display
+@comment node-name, next, previous, up
+@subsubsection content-body
+@cindex content-body
+
+Content-body represents content of the message. tm-view does not
+display raw content body. For example, if a content has binary, it is
+hidden. If a content has richtext, it is formated. Namely content body
+is hidden or formated.
+
+Function @code{mime-viewer/body-visible-p} is a judge function whether
+content-body of a content is displayed. If it returns @code{nil},
+content-body is hidden. In default, it returns non-@code{nil} when
+content-type of a content is a member of variable
+@code{mime-viewer/default-showing-Content-Type-list}.
+
+When content-body of a content is displayed, content-body is formated
+by content-filter. Content-filter is searched from variable
+@code{mime-viewer/content-filter-alist}. At this time, major-mode of
+the article buffer is used as the key.
+
+If it is not found, function @code{mime-viewer/default-content-filter}
+is called.
+
+
+@defvar mime-viewer/default-showing-Content-Type-list
+
+List of content-type. If content-type of a content is a member of this
+variable, its body is displayed.
+@end defvar
+
+
+@deffn{Function} mime-viewer/body-visible-p rcnum cinfo &optional ctype
+
+Return non-@code{nil}, if content-type of a content is displayed.
+@var{rcnum} is reversed-content-number of a content. @var{cinfo} is
+content-info of the message. If you know content-type of a content,
+you can specify it as argument @var{ctype}.
+@end deffn
+
+
+@defvar mime-viewer/content-filter-alist
+
+Association-list whose key is major-mode of a article buffer, value is
+content-filter.
+@end defvar
+
+
+@deffn{Function} mime-viewer/default-content-filter rcnum cinfo ctype params subj
+
+It is called when content-body of a content should be displayed and
+content-filter is not found in @code{mime-viewer/content-filter-alist}.
+
+In default, it does nothing.
+@end deffn
--- /dev/null
+@c $Id: tm-view-cb=ja.texi,v 2.0 1995/12/17 16:22:33 morioka Exp $
+
+@node content-body, content-separator, content-header, MIME display
+@comment node-name, next, previous, up
+@subsubsection content-body
+@cindex content-body
+
+¤¢¤ë content ¤Î content-body ¤òɽ¼¨¤¹¤ë¤«¤É¤¦¤«¤Ï¡¢´Ø¿ô
+@code{mime-viewer/body-visible-p} ¤¬ @code{t} ¤Ë¤Ê¤ë¤«¤É¤¦¤«¤Ç·è¤Þ¤ê¤Þ
+¤¹¡£É¸½à¤Ç¤Ï¡¢¤¢¤ë content ¤Î content-type ¤¬ÊÑ¿ô
+@code{mime-viewer/default-showing-Content-Type-list} ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë
+»þ¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
+
+¤¢¤ë content ¤Î content-body ¤¬É½¼¨¤µ¤ì¤ë»þ¡¢preview buffer ¤Ë¤Ï
+content-body ¤ò content-filter ¤Ë¤è¤Ã¤ÆÀ°·Á¤µ¤ì¤¿¤â¤Î¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
+¸Æ¤Ð¤ì¤ë content-filter ¤Ï article buffer ¤Î major-mode ¤ò key ¤È¤·¤Æ
+ÊÑ¿ô @code{mime-viewer/content-filter-alist} ¤«¤éõ¤µ¤ì¤Þ¤¹¡£¤â¤·¡¢¤³
+¤ÎÊÑ¿ô¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢´Ø¿ô
+@code{mime-viewer/default-content-filter} ¤¬¸Æ¤Ð¤ì¤Þ¤¹¡£
+
+
+@defvar mime-viewer/default-showing-Content-Type-list
+
+content-body ¤òɽ¼¨¤¹¤Ù¤ content-type ¤òÍ×ÁǤȤ¹¤ë list.
+@end defvar
+
+
+@deffn{Function} mime-viewer/body-visible-p rcnum cinfo &optional ctype
+
+reversed-content-number ¤¬ @var{rcnum} ¤Ç¤¢¤ë content ¤¬É½¼¨¤µ¤ì¤ë¾ì¹ç¡¢
+@code{t} ¤òÊÖ¤¹¡£¤½¤Î content ¤Î content-type ¤¬¤¢¤é¤«¤¸¤á¤ï¤«¤Ã¤Æ¤¤¤ë
+¾ì¹ç¡¢@var{ctype} ¤Ë°ú¿ô¤È¤·¤ÆÅϤ¹¤³¤È¤¬¤Ç¤¤ë¡£
+@end deffn
+
+
+@defvar mime-viewer/content-filter-alist
+
+article buffer ¤Î major-mode ¤ò key ¤È¤·¤¿Ï¢Áۥꥹ¥È¤Ç¡¢ÃÍÉô¤Ë¤Ï
+content-filter ¤¬Æþ¤Ã¤Æ¤¤¤ë¡£
+@end defvar
+
+
+@deffn{Function} mime-viewer/default-content-filter rcnum cinfo ctype params subj
+
+¤¢¤ë content ¤Î content-body ¤òɽ¼¨¤¹¤Ù¤»þ¡¢ÊÑ¿ô
+@code{mime-viewer/content-filter-alist} ¤ÎÃæ¤Ë content-filter ¤¬¸«¤Ä¤«
+¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
+
+ɸ½à¤Ç¤Ï²¿¤â¤·¤Ê¤¤¡£
+@end deffn
--- /dev/null
+@c $Id: tm-view-ch_en.texi,v 1.1 1995/12/13 09:28:43 morioka Exp $
+
+@node content-header, content-body, content-subject, MIME display
+@comment node-name, next, previous, up
+@subsubsection content-header
+@cindex content-header
+
+A content header shows the header portion of a content in the preview
+buffer.
+
+When the function @code{mime-viewer/header-visible-p} returns @code{t}
+for content-number of a content, content-header is displayed. This
+judge function returns @code{t} when a content is root or content-type
+of its parent is a member of the variable
+@code{mime-viewer/childrens-header-showing-Content-Type-list}.
+
+If you want to change this condition, please redefine it.
+
+When content-header is displayed, content-header are formated by
+content-header-filter. Content-header-filter is searched from variable
+@code{mime-viewer/content-header-filter-alist}. Its key is major-mode
+of the article buffer. If not found, function
+@code{mime-viewer/default-content-header-filter} is called.
+
+
+@defvar mime-viewer/childrens-header-showing-Content-Type-list
+
+List of content-type. If content-type of parent of a content is a
+member of this variable, its content-header is displayed. Default
+value is "message/rfc822".
+
+This variable is referred by the function
+@code{mime-viewer/header-visible-p}.
+@end defvar
+
+
+@deffn{Function} mime-viewer/header-visible-p rcnum cinfo &optional ctype
+
+Returns @code{t} if a content is displayed.
+
+@var{cnum} is content-number. @var{cinfo} is content-info. If you know
+content-type, you can specify by @var{ctype}.
+@end deffn
+
+
+@defvar mime-viewer/content-header-filter-alist
+
+Association-list whose key is major-mode of a article buffer, value is
+content-header-filter.
+@end defvar
+
+
+@deffn{Function} mime-viewer/default-content-header-filter
+
+It is called when content-header-filter is not found in variable
+@code{mime-viewer/content-header-filter-alist}.
+@end deffn
+
+
+@defvar mime-viewer/ignored-field-list
+
+List of regular expression to represent invisible fields.
+
+Variable @code{mime-viewer/ignored-field-regexp} is created from it.
+
+Please use function @code{tm:add-fields} or @code{tm:delete-fields} to
+set it.
+@end defvar
--- /dev/null
+@c $Id: tm-view-ch=ja.texi,v 2.0 1995/12/17 22:58:11 morioka Exp $
+
+@node content-header, content-body, content-subject, MIME display
+@comment node-name, next, previous, up
+@subsubsection content-header
+@cindex content-header
+
+¤¢¤ë content ¤Î reversed-content-number ¤ò´Ø¿ô
+@code{mime-viewer/header-visible-p} Í¿¤¨¤¿»þ¤ÎÊÖ¤êÃͤ¬ @code{t} ¤Ë¤Ê¤ë
+¾ì¹ç¡¢¤½¤Î content ¤Î content-header ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£¤³¤ÎȽÄê´Ø¿ô¤Ï¡¢
+°ìÈÖ¾å¤Î content ¤Ç¤Ê¤¯¡¢¤½¤Î content ¤Î¿Æ¤Î content-type ¤¬ÊÑ¿ô
+@code{mime-viewer/childrens-header-showing-Content-Type-list} ¤Ç»ØÄꤵ
+¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë @code{t} ¤òÊÖ¤·¤Þ¤¹¡£
+
+¤³¤Î¾ò·ï¤òÊѤ¨¤¿¤¤¾ì¹ç¤Ï¡¢¤³¤Î´Ø¿ô¤òºÆÄêµÁ¤·¤Æ²¼¤µ¤¤¡£Ã¢¤·¡¢É¸½à¤Ç¤Ï¡¢
+ÊÑ¿ô @code{mime-viewer/childrens-header-showing-Content-Type-list} ¤ò
+»²¾È¤·¤Þ¤¹¤¬¡¢ºÆÄêµÁ¤·¤¿¾ì¹ç¡¢¤³¤ÎÊÑ¿ô¤Î͸úÀ¤ÏÊݾڤµ¤ì¤Ê¤¤¤Î¤ÇÃí°Õ¤·
+¤Æ²¼¤µ¤¤¡£
+
+content-header ¤¬É½¼¨¤µ¤ì¤ë¾ì¹ç¡¢content-header ¤Ï
+content-header-filter ¤Ë¤è¤Ã¤ÆÀ°·Á¤µ¤ì¤Þ¤¹¡£¸Æ¤Ð¤ì¤ë
+content-header-filter ¤Ï article buffer ¤Î major-mode ¤ò key ¤È¤·¤ÆÊÑ
+¿ô @code{mime-viewer/content-header-filter-alist} ¤«¤éõ¤µ¤ì¤Þ¤¹¡£¤â¤·¡¢
+content-header-filter ¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢´Ø¿ô
+@code{mime-viewer/default-content-header-filter} ¤¬¸Æ¤Ð¤ì¤Þ¤¹¡£
+
+
+@defvar mime-viewer/childrens-header-showing-Content-Type-list
+
+¤¢¤ë content ¤Î»Ò¤ËÅö¤¿¤ë content ¤Î content-header ¤òɽ¼¨¤¹¤Ù¤
+Content-Type ¤ò¼ý¤á¤¿ list. ´ûÄêÃÍ¤Ï "message/rfc822" ¤Ç¤¢¤ë¡£
+
+¤³¤ÎÊÑ¿ô¤Ï´Ø¿ô @code{mime-viewer/header-visible-p} ¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë¡£
+@end defvar
+
+
+@deffn{Function} mime-viewer/header-visible-p rcnum cinfo &optional ctype
+
+content-info @var{cinfo} Ãæ¤Î reversed-content-number ¤¬ @var{rcnum}
+¤Ç¤¢¤ë content ¤Î header ¤¬É½¼¨¤µ¤ì¤ë¾ì¹ç¡¢t ¤òÊÖ¤¹¡£¤½¤Î content ¤Î
+content-type ¤¬¤¢¤é¤«¤¸¤á¤ï¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢@var{ctype} ¤Ë°ú¿ô¤È¤·¤ÆÅÏ
+¤¹¤³¤È¤¬¤Ç¤¤ë¡£
+@end deffn
+
+
+@defvar mime-viewer/content-header-filter-alist
+
+article-buffer ¤Î major-mode ¤ò key ¤È¤·¤¿Ï¢Áۥꥹ¥È¤Ç¡¢ÃÍÉô¤Ë¤Ï
+content-header-filter ¤¬Æþ¤Ã¤Æ¤¤¤ë¡£
+@end defvar
+
+
+@deffn{Function} mime-viewer/default-content-header-filter
+
+¤¢¤ë content ¤Î content-header ¤òɽ¼¨¤¹¤Ù¤»þ¡¢ÊÑ¿ô
+@code{mime-viewer/content-header-filter-alist} ¤ÎÃæ¤Ë
+content-header-filter ¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
+
+ÊÑ¿ô @code{mime-viewer/ignored-field-regexp} ¤ò»²¾È¤¹¤ë¡£
+@end deffn
+
+
+@defvar mime-viewer/ignored-field-list
+
+content-header ¤òɽ¼¨¤¹¤ë»þ¤Ë¡¢É½¼¨¤·¤Ê¤¤ field ¤ò»ØÄꤹ¤ë¡£
+
+Àµµ¬É½¸½¤Î list ¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¤³¤ÎÃͤò¸µ¤ËÊÑ¿ô
+@code{mime-viewer/ignored-field-regexp} ¤¬ºî¤é¤ì¤ë¡£
+
+¤³¤ÎÊÑ¿ô¤ÏľÀÜÁàºî¤»¤º¡¢´Ø¿ô @code{tm:add-fields} ¤ä
+@code{tm:delete-fields} ¤ò»È¤Ã¤ÆÁàºî¤¹¤ë¡£
+@end defvar
--- /dev/null
+@c $Id: tm-view-cs_en.texi,v 1.1 1995/12/13 09:29:00 morioka Exp $
+
+@node content-subject, content-header, MIME display, MIME display
+@comment node-name, next, previous, up
+@subsubsection content-subject
+@cindex content-subject
+
+content-subject is a part to display abstract for the content. It is
+placed in top of content.
+
+In default, it is displayed following design:
+
+@example
+ [1.3 test (text/plain)]
+@end example
+
+First number field represents position of a content in the message. It
+is called `content-number'. It can be considered as the chapter number
+in the message.
+
+Second string part represents title. It is created by following:
+
+@itemize @bullet
+@item name paramater or x-name parameter in Content-Type field
+@item Content-Description field or Subject field
+@item filename of uuencode
+@end itemize
+
+If they are not exists, space is displayed.
+
+Third parenthesis part represents content-type/subtype of the content.
+If it is non-MIME part, @code{nil} is displayed.
+
+Content-subject is used like icon when content-header and content-body
+are hidden. For example,
+
+@example
+ [2 (image/gif)]
+@end example
+
+if you press `v' key, GIF image is displayed.
+
+
+@defvr{Variable} mime-viewer/content-subject-omitting-Content-Type-list
+
+List of content-type. If content-type of a content is a member of this
+list, its content-subject is not displayed.
+
+This variable is referenced by function
+@code{mime-viewer/default-content-subject-function}.
+@end defvr
+
+
+@deffn{Function} mime-viewer/default-content-subject-function rcnum cinfo ctype params subj
+
+Default value of the variable
+@code{mime-viewer/content-subject-function}. It refers variable
+@code{mime-viewer/content-subject-omitting-Content-Type-list}.
+@end deffn
+
+
+@defvar mime-viewer/content-subject-function rcnum cinfo ctype params subj
+
+Variable to specify content-subject display function. Default value is
+the function @code{mime-viewer/default-content-subject-function}.
+@end defvar
--- /dev/null
+@c $Id: tm-view-cs=ja.texi,v 2.0 1995/12/17 22:58:36 morioka Exp $
+
+@node content-subject, content-header, MIME display, MIME display
+@comment node-name, next, previous, up
+@subsubsection content-subject
+@cindex content-subject
+
+``content-subject'' ¤Ï content ¤ÎÀèƬ¤Ë¤¢¤Ã¤Æ¡¢¤½¤Î content ¤Ë´Ø¤¹¤ëÂç
+¤Þ¤«¤Ê¾ðÊó¤òɽ¼¨¤¹¤ëÉôʬ¤Ç¤¹¡£
+
+ɸ½à¤Ç¤Ï
+
+@example
+ [1.3 test (text/plain)]
+@end example
+
+¤Î¤è¤¦¤Ê´¶¤¸¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
+
+ºÇ½é¤Î¿ô»ú¤Ï message Ãæ¤Î¤³¤Î content ¤Î°ÌÃÖ¤òÀáÈÖ¹æ¤Î¤è¤¦¤Ëɽ¤·¤¿¤â¤Î
+¤Ç¡¢``content-number'' ¤È¸Æ¤Ó¤Þ¤¹¡£
+
+£²ÈÖÌܤÎʸ»úÎó¤ÏɽÂê¤òɽ¤·¤Þ¤¹¡£¤³¤Î¾ðÊó¤Ï¡¢
+
+@itemize @bullet
+@item Content-Type field ¤Î name paramater ¤â¤·¤¯¤Ï x-name parameter
+¤Ë½ñ¤«¤ì¤¿ file ̾
+@item Content-Description field ¤â¤·¤¯¤Ï Subject field ¤Ë½ñ¤«¤ì¤¿É½Âê
+@item uuencode ¤Î¾ì¹ç¤Î file ̾
+@end itemize
+
+¤«¤éºî¤ê¤Þ¤¹¡£¤É¤ì¤â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¶õÇò¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
+
+£³ÈÖÌܤγç¸Ì¤ÎÃæ¤Î¾ðÊó¤Ï¤½¤Î content ¤Î content-type/subtype ¤òɽ¤·¤Þ
+¤¹¡£Èó MIME part ¤Î¾ì¹ç¡¢@code{nil} ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
+
+¤³¤Î content-subject ¤Ï content-header, content-body ¤òɽ¼¨¤·¤Ê¤¤¾ì¹ç¡¢
+icon ¤Î¤è¤¦¤ÊÌò³ä¤ò²Ì¤¿¤·¤Þ¤¹¡£Î㤨¤Ð¡¢
+
+@example
+ [2 (image/gif)]
+@end example
+
+¤Î¾å¤Ç `v' ¤ò²¡¤»¤Ð¤³¤³¤ËÆþ¤Ã¤Æ¤¤¤ë³¨¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
+
+
+@defvr{Variable} mime-viewer/content-subject-omitting-Content-Type-list
+
+ɽ¼¨¤·¤Ê¤¤ Content-Type ¤òÍ×ÁǤȤ¹¤ë list. ´Ø¿ô
+@code{mime-viewer/default-content-subject-function} ¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë¡£
+@end defvr
+
+
+@deffn{Function} mime-viewer/default-content-subject-function rcnum cinfo ctype params subj
+
+ɸ½à¤Î content-subject ɽ¼¨´Ø¿ô¡£ÊÑ¿ô
+@code{mime-viewer/content-subject-omitting-Content-Type-list} ¤ò»²¾È¤·
+¤Æ¤¤¤ë¡£
+@end deffn
+
+
+@defvar mime-viewer/content-subject-function rcnum cinfo ctype params subj
+
+content-subject ɽ¼¨´Ø¿ô¤òÀßÄꤹ¤ë¤¿¤á¤ÎÊÑ¿ô¡£´ûÄêÃͤϴؿô
+@code{mime-viewer/default-content-subject-function} ¤Ç¤¢¤ë¡£
+
+¤³¤ÎÊÑ¿ô¤Ë¡¢´Ø¿ô @code{mime-viewer/default-content-subject-function}
+°Ê³°¤Î´Ø¿ô¤òÀßÄꤷ¤¿¾ì¹ç¡¢ÊÑ¿ô
+@code{mime-viewer/content-subject-omitting-Content-Type-list} ¤Î͸úÀ
+¤ÏÊݾڤµ¤ì¤Ê¤¤¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£
+@end defvar
--- /dev/null
+@c $Id: tm-view-m=en.texi,v 3.0 1995/12/17 23:02:56 morioka Exp $
+
+@node method, Mechanism of tm-view, mime/viewer-mode, tm-view
+@comment node-name, next, previous, up
+@section method
+@cindex method
+
+In @code{mime/viewer-mode}, you can do play (@key{v}), extract
+(@key{e}), or print (@key{C-c C-p}) for each content. These operations
+are called ``decoding operation(s) (for a content)''. And kind of
+decoding operations are called @strong{decoding-mode}.
+
+When decoding operation is driven, tm-view calls a procedure matched
+for the condition, such as content-type. This procedure is called
+@strong{method}.
+
+There are two kinds of method. One is Emacs Lisp function, called
+@strong{internal method}. Another one is external program, called
+@strong{external method}.
+
+Internal method operates in Emacs, so it can do carefully.
+
+External method is called as asynchronous process, so Emacs does not
+wait while method is running. So it is good for big data, such as
+audio, image or video.
+
+@menu
+* decoding-condition:: Setting of content decoding condition
+* Format of method value::
+* Example of decoding-condition::
+* environment variables::
+@end menu
+
+
+@node decoding-condition, Format of method value, method, method
+@comment node-name, next, previous, up
+@subsection Setting of content decoding condition
+@cindex content decoding condition
+
+When decoding operation is driven, tm-view calls a method matched for
+the condition searched from the variable
+@code{mime/content-decoding-condition}.
+
+Variable @code{mime/content-decoding-condition} is defined as a list
+with the following syntax:
+
+@lisp
+ (condition1 condition2 ...)
+@end lisp
+
+Each condition are association-list with the following syntax:
+
+@lisp
+ ((field-type_1 . value_1)
+ (field-type_2 . value_2)
+ ...)
+@end lisp
+
+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
+
+@lisp
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+@end lisp
+
+As you notice, now you can define the arguments to pass to a external
+method. Refer to @xref{Format of method value} section for more
+explanation.
+
+This condition definition will match all contents whose types are
+text/plain. Here is an another example:
+
+@lisp
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
+ (mode . "play"))
+@end lisp
+
+This will match the content whose type is text/plain and the mode is
+play.
+
+@lisp
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
+ (mode . "play"))
+@end lisp
+
+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.
+
+
+@node Format of method value, Example of decoding-condition, decoding-condition, method
+@comment node-name, next, previous, up
+@subsection Format of method value part
+@cindex Format of method value part
+
+You can specify the method field of the decoding-condition definition
+in two different ways,
+
+@lisp
+ (method . SYMBOL)
+@end lisp
+
+or
+
+@lisp
+ (method STRING FLAG ARGUMENT1 ARGUMENT2 ...)
+@end lisp
+
+can be accepted.
+
+When a symbol is specified in the method field, a function whose name
+is SYMBOL 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.
+
+@table @samp
+@item STRING
+ name of an external method
+@item FLAG
+ If @code{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 ARGUMENTs
+ list of arguments passed to an external method
+@end table
+
+An argument passed to an external method can be in one of the
+following formats:
+
+@table @samp
+@item STRING
+ string itself
+@item 'SYMBOL
+ value gotten using SYMBOL as a key (see below)
+@item 'STRING
+ value gotten using STRING as a key (see below)
+@end table
+
+'SYMBOL can be one of the following:
+
+@table @samp
+@item 'file
+ name of a file holding the original content
+@item 'type
+ content-type/sub-type of Content-Type field
+@item 'encoding
+ field body of Content-Transfer-Encoding field
+@item 'mode
+ decoding-mode
+@item 'name
+ name of a file created by decode operation
+@end table
+
+'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.
+
+
+@node Example of decoding-condition, environment variables, Format of method value, method
+@comment node-name, next, previous, up
+@subsection Examples of decoding-condition
+@cindex Examples of decoding-condition
+
+The default definition of a mime/content-decoding-condition variable
+is shown below.
+
+@lisp
+(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 lisp
+
+For example, if you want to use metamail to decode any contents,
+
+@lisp
+(setq mime/content-decoding-condition
+ '(
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
+ ))
+@end lisp
+
+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.
+
+Following function may be useful to set decoding-condition. It is a
+function of tl-atype.el.
+
+
+@deffn{Function} set-atype symbol alist
+
+Add condition @var{alist} to symbol @var{symbol}.
+
+Example:
+
+@lisp
+(set-atype 'mime/content-decoding-condition
+ '((type . "message/external-body")
+ ("access-type" . "anon-ftp")
+ (method . mime/decode-message/external-ftp)
+ ))
+@end lisp
+@end deffn
+
+
+@node environment variables, , Example of decoding-condition, method
+@comment node-name, next, previous, up
+@subsection environment variables
+@cindex environment variables
+
+Standard methods of tm-view reference some environment variables. You
+can specify them to customize.
+
+@table @var
+@item TM_TMP_DIR
+Directory for temporary files or extracted files. Default value is
+`/tmp/'.
+
+@item VIDEO_DITHER
+Dither for mpeg_play. Default value is `gray'.
+
+@item TM_WWW_BROWSER
+WWW browser name. Default value is `netscape'.
+@end table
--- /dev/null
+@c $Id: tm-view-m=ja.texi,v 2.0 1995/12/17 22:59:35 morioka Exp $
+
+@node method, Mechanism of tm-view, mime/viewer-mode, tm-view
+@comment node-name, next, previous, up
+@section method
+@cindex method
+
+@code{mime/viewer-mode} ¤Ç¤Ï¡¢³Æ content ¤ËÂФ·¤Æ¡¢play (@key{v}),
+extract (@key{e}), print (@key{C-c C-p}) ¤È¤¤¤¦Áàºî¤ò¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤
+¤Þ¤¹¡£¤³¤¦¤·¤¿Áàºî¤Î¤³¤È¤ò¡Ø¡Êcontent ¤ËÂФ¹¤ë¡Ëdecode Áàºî¡Ù¤È¸Æ¤Ö¤³
+¤È¤Ë¤·¤Þ¤¹¡£¤Þ¤¿¡¢@strong{play}, @strong{extract}, @strong{print} ¤È¤¤
+¤¦ decode Áàºî¤Î¼ïÎà¤Î¤³¤È¤ò @strong{decoding-mode} ¤È¸Æ¤Ö¤³¤È¤Ë¤·¤Þ¤¹¡£
+
+decode Áàºî¤¬¹Ô¤Ê¤ï¤ì¤¿»þ¡¢¤½¤Î content ¤Î content-type ¤Ê¤É¤Î¾ò·ï¤ä¤½
+¤Î¾ì¤Î´Ä¶¤Ë±þ¤¸¤Æ¼ÂºÝ¤Ë¤½¤ÎÁàºî¤ò¼Â¹Ô¤¹¤ë¼ê³¤¤¬¸Æ¤Ð¤ì¤Þ¤¹¡£¤³¤Î¼ê³
+¤¤Î¤³¤È¤ò @strong{method} ¤È¸Æ¤Ó¤Þ¤¹¡£
+
+method ¤Ë¤Ï¡¢Emacs Lisp ¤Ç½ñ¤«¤ì¤¿ @strong{ÆâÉô method} ¤È¡¢³°Éô
+program ¤Ç¼Â¸½¤µ¤ì¤¿ @strong{³°Éô method} ¤¬¤¢¤ê¤Þ¤¹¡£ÆâÉô method ¤Ï
+Emacs ¤Îµ¡Ç½¤ò»È¤Ã¤Æ¤¤áºÙ¤«¤¤½èÍý¤ò¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£³°Éô method
+¤ÏÈóƱ´ü¥×¥í¥»¥¹¸Æ¤Ó½Ð¤·¤ò»È¤Ã¤Æ¼Â¸½¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¼Â¹ÔÃæÂÔ¤¿¤µ¤ì¤º¤Ë
+¤¹¤ß¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢ÀŻ߲è¤äÆ°²è¤Ê¤É¤ÎµðÂç¤Ê data ¤òºÆÀ¸¤¹¤ë¤Î¤ËÎɤ¤¤Ç
+¤·¤ç¤¦¡£
+
+@menu
+* decoding-condition:: content ¤Î decode ¾ò·ï¤ÎÀßÄê
+* Format of method value:: method ¤ÎÃÍÉô¤Î½ñ¼°
+* Example of decoding-condition:: ÀßÄêÎã
+* environment variables:: ´Ä¶ÊÑ¿ô
+@end menu
+
+
+@node decoding-condition, Format of method value, method, method
+@comment node-name, next, previous, up
+@subsection content ¤Î decode ¾ò·ï¤ÎÀßÄê
+@cindex content decoding condition
+
+tm-view ¤Ï decode Áàºî¤¬¹Ô¤Ê¤ï¤ì¤ë¤È¡¢ÊÑ¿ô
+@code{mime/content-decoding-condition} ¤«¤é¤½¤Î»þ¤Î¾ò·ï¤Ë¹çÃפ·¤¿
+method ¤òÁܤ·½Ð¤·¤Æ¡¢¤½¤ì¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
+
+ÊÑ¿ô @code{mime/content-decoding-condition} ¤Ï
+
+@lisp
+ (¾ò·ï1 ¾ò·ï2 ...)
+@end lisp
+
+¤È¤¤¤¦·Á¤ò¤·¤¿ list ¤Ç¡¢³Æ¾ò·ï¤Ï
+
+@lisp
+ ((field-type_1 . value_1)
+ (field-type_2 . value_2)
+ ...)
+@end lisp
+
+¤È¤¤¤¦·Á¤ÎÏ¢ÁÛ list ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
+
+Î㤨¤Ð¡¢text/plain ¤Î»þ¡¢tm-plain ¤òµ¯Æ°¤¹¤ë»þ¡¢
+
+@lisp
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+@end lisp
+
+¤È¤¤¤¦¾ò·ï¤ò½ñ¤¤Þ¤¹¡£¤³¤Î method ¤Î value Éô¤Î½ñ¼°¤Ë¤Ä¤¤¤Æ¤Ï¸å¤Ç¾Ü¤·
+¤¯½Ò¤Ù¤Þ¤¹¡£
+
+¤³¤Î¾ò·ï¤Ï content-type ¤¬ text/plain ¤Ç¤¢¤ë content ¤Ê¤éÁ´¤Æ¤Î
+decoding-mode ¤Ç͸ú¤Ç¤¹¡£¤·¤«¤·¡¢
+
+@lisp
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
+ (mode . "play"))
+@end lisp
+
+¤Ê¤é¡¢play mode ¤Î»þ¤·¤«Í¸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£
+
+µÕ¤Ë¡¢
+
+@lisp
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
+ (mode . "play"))
+@end lisp
+
+¤Ê¤é¡¢Á´¤Æ¤Î content-type ¤Î play mode ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤¹¡£
+
+¤³¤¦¤·¤Æ³Æ¾ò·ï¤òÁ°¤«¤é¸«¤Æ¹Ô¤¡¢ºÇ½é¤Ë͸ú¤Ë¤Ê¤Ã¤¿¾ò·ï¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
+
+
+@node Format of method value, Example of decoding-condition, decoding-condition, method
+@comment node-name, next, previous, up
+@subsection method ¤ÎÃÍÉô¤Î½ñ¼°
+@cindex method ¤ÎÃÍÉô¤Î½ñ¼°
+
+decode-condition ¤Î method field ¤Ï
+
+@lisp
+ (method . SYMBOL)
+@end lisp
+
+¤«
+
+@lisp
+ (method ʸ»úÎó FLAG °ú¿ô1 °ú¿ô2 ...)
+@end lisp
+
+¤È¤¤¤¦·Á¤ò¤·¤Æ¤¤¤Þ¤¹¡£
+
+Á°¼Ô¤ÏÆâÉô method ¤ò»ØÄꤹ¤ë¤¿¤á¤Î·Á¼°¤Ç¡¢decode Áàºî¤¬¹Ô¤Ê¤ï¤ì¤¿»þ¡¢
+SYMBOL ¤È¤¤¤¦´Ø¿ô¤¬´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÆâÉô method ¤È¤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤Þ
+¤¹¡£
+
+¸å¼Ô¤Ï³°Éô method ¤ò»ØÄꤹ¤ë¤¿¤á¤Î·Á¼°¤Ç¡¢decode Áàºî¤¬¹Ô¤Ê¤ï¤ì¤¿»þ¡¢
+ʸ»úÎó¤Ç»ØÄꤵ¤ì¤¿³°Éô program ¤¬ÈóƱ´ü¥×¥í¥»¥¹¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ³°Éô
+method ¤È¤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
+
+
+³°Éô method ¤ò»ØÄꤹ¤ë¾ì¹ç¤Î method field ¤Î½ñ¼°¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
+
+@table @samp
+@item ʸ»úÎó
+ ³°Éô method ¤Î̾Á°
+@item FLAG
+ @code{t} ¤Ê¤é content-header ¤â³°Éô method ¤ËÅϤ¹¡£@code{nil}
+ ¤Ê¤é content-body ¤Î¤ß¤òÅϤ¹¡£
+@item °ú¿ôÎó
+ ³°Éô method ¤Î°ú¿ô
+@end table
+
+¤Þ¤¿¡¢³°Éô method ¤Î°ú¿ô¤Ï¼¡¤Î¤è¤¦¤Ê·Á¼°¤Ç½ñ¤¤Þ¤¹¡£
+
+@table @samp
+@item ʸ»úÎó
+ ¤½¤Îʸ»úÎó¤òÅϤ¹
+@item 'SYMBOL
+ SYMBOL ¤ò key ¤È¤·¤¿ decoding-condition ¤ÎÃͤòÅϤ¹
+@item 'ʸ»úÎó
+ ʸ»úÎó¤ò key ¤È¤·¤¿ decoding-condition ¤ÎÃͤòÅϤ¹
+@end table
+
+'SYMBOL ¤Ç»ØÄê¤Ç¤¤ë¤â¤Î¤Ë¤Ï¡¢
+
+@table @samp
+@item 'file
+ content ¤òÅϤ¹¤¿¤á¤Î file ̾
+@item 'type
+ Content-Type field ¤Î content-type/subtype
+@item 'encoding
+ Content-Transfer-Encoding field ¤Î field body
+@item 'mode
+ decoding-mode
+@item 'name
+ file ¤ËÍ¾ì¹ç¤Î file ̾
+@end table
+
+¤Ê¤É¤¬¤¢¤ê¡¢'ʸ»úÎó ¤Ç¤Ï Content-Type field ¤Î parameter ¤ÎÃͤ¬»ØÄê¤Ç
+¤¤Þ¤¹¡£
+
+
+@node Example of decoding-condition, environment variables, Format of method value, method
+@comment node-name, next, previous, up
+@subsection decoding-condition ¤ÎÎã
+@cindex decoding-condition ¤ÎÎã
+
+°Ê²¼¤Ë decoding-condition ¤ÎÀßÄêÎã¤ò¼¨¤·¤Þ¤¹¡£
+
+@lisp
+(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 lisp
+
+Î㤨¤Ð¡¢¡ÖÁ´Éô metamail »È¤¦¤ó¤ä¡×¤È¤¤¤¦¾ì¹ç¡¢
+
+@lisp
+(setq mime/content-decoding-condition
+ '(
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
+ ))
+@end lisp
+
+¤È¤¹¤ì¤Ð OK ¤Ç¤¹¡£
+
+¹©Éפ¹¤ì¤Ð¡¢¤«¤Ê¤êÊ£»¨¤Ê¾ò·ï¤¬½ñ¤±¤ë¤Ç¤·¤ç¤¦¡£
+
+
+°Ê²¼¤Ë¡¢decoding-condition ¤òÀßÄꤹ¤ë¤¿¤á¤ÎÍÍѤʴؿô¤ò¾Ò²ð¤·¤Þ¤¹¡£
+
+
+@deffn{Function} set-atype symbol alist
+
+@var{symbol} ¤Ë¾ò·ï @var{alist} ¤òÄɲä·¤Þ¤¹¡£
+
+Î㡧
+
+@lisp
+(set-atype 'mime/content-decoding-condition
+ '((type . "message/external-body")
+ ("access-type" . "anon-ftp")
+ (method . mime/decode-message/external-ftp)
+ ))
+@end lisp
+@end deffn
+
+
+@node environment variables, , Example of decoding-condition, method
+@comment node-name, next, previous, up
+@subsection ´Ä¶ÊÑ¿ô
+@cindex environment variables
+
+°Ê²¼¤Ë tm-view ¤Îɸ½à method ¤¬»²¾È¤¹¤ë´Ä¶ÊÑ¿ô¤ò¼¨¤·¤Þ¤¹¡£
+
+@table @var
+@item TM_TMP_DIR
+°ì»þŪ¤ËºîÀ®¤µ¤ì¤ë file ¤ä file ½ÐÎϤ¹¤ë¾ì¹ç¤Î default ¤Î½ÐÎÏÀè¤È¤·¤Æ
+ÍѤ¤¤é¤ì¤ë directory ¤ò»ØÄꤹ¤ë¡£¾Êά¤µ¤ì¤¿¾ì¹ç¡¢/tmp/ ¤¬ÍѤ¤¤é¤ì¤ë¡£
+
+@item VIDEO_DITHER
+mpeg_play ¤Ç¤Î dither ¤Î¤«¤±Êý¤ò»ØÄꤹ¤ë¡£´ûÄêÃÍ¤Ï `gray'.
+
+@item TM_WWW_BROWSER
+WWW browser ¤ò»ØÄꤹ¤ë¡£´ûÄêÃÍ¤Ï `netscape'.
+@end table
--- /dev/null
+@c $Id: tm-view-p=en.texi,v 2.0 1995/12/17 23:03:24 morioka Exp $
+
+@node preview-buffer, , article-buffer, Mechanism of tm-view
+@comment node-name, next, previous, up
+@subsection preview-buffer
+
+@defvar mime::preview/mother-buffer
+
+Mother buffer of this preview-buffer.
+@end defvar
+
+
+@defvar mime::preview/content-list
+
+List of preview-content-info to represent structure of this
+preview-buffer.
+@end defvar
+
+
+@defvar mime::preview/article-buffer
+
+article-buffer corresponded by this preview-buffer.
+@end defvar
+
+
+@defvar mime::preview/original-major-mode
+
+major-mode of original buffer.
+@end defvar
+
+
+@defvar mime::preview/original-window-configuration
+
+window-configuration just before made this preview-buffer.
+@end defvar
+
+
+@defun mime-preview/point-pcinfo point &optional pcl
+
+In a region of preview-buffer managed by preview-content-info
+@var{pcl}, it returns preview-content-info corresponded by
+@var{point}.
+
+Default value of @var{cinfo} is @code{mime::preview/content-list}.
+@end defun
--- /dev/null
+@c $Id: tm-view-p=ja.texi,v 2.0 1995/12/17 23:00:03 morioka Exp $
+
+@node preview-buffer, , article-buffer, Mechanism of tm-view
+@comment node-name, next, previous, up
+@subsection preview-buffer
+
+@defvar mime::preview/mother-buffer
+
+¤³¤Î preview-buffer ¤Î¿Æ¤ËÁêÅö¤¹¤ë buffer.
+@end defvar
+
+
+@defvr{Structure} mime::preview-content-info point-min point-max buffer content-info
+
+preview-buffer ¤Ë¤ª¤±¤ë MIME content ¤Ë´Ø¤¹¤ë¾ðÊó¤ò³ÊǼ¤¹¤ë¤¿¤á¤Î¹½Â¤
+ÂΡ£Ã±¤Ë @strong{preview-content-info} ¤È¤â¸Æ¤Ö¡£
+
+@table @var
+@item point-min
+preview-buffer ¤Ë¤ª¤±¤ëÀèƬ point
+
+@item point-max
+preview-buffer ¤Ë¤ª¤±¤ëËöÈø point
+
+@item buffer
+¤³¤Î content ¤ËÂбþ¤¹¤ë article-buffer
+
+@item content-info
+¤³¤Î content ¤ËÂбþ¤¹¤ë content-info
+@end table
+
+@end defvr
+
+
+@defvar mime::preview/content-list
+
+¤³¤Î preview-buffer ¤Î¹½Â¤¤ò¤¢¤é¤ï¤¹ preview-content-info ¤Î list.
+@end defvar
+
+
+@defvar mime::preview/article-buffer
+
+¤³¤Î preview-buffer ¤ËÂбþ¤¹¤ë article-buffer.
+@end defvar
+
+
+@defvar mime::preview/original-major-mode
+
+¤³¤Î preview-buffer ¤Î¤â¤È¤Ë¤Ê¤Ã¤¿ buffer ¤Î major-mode.
+@end defvar
+
+
+@defvar mime::preview/original-window-configuration
+
+@code{mime/viewer-mode} ¤ò¼Â¹Ô¤·¤Æ¡¢¤³¤Î preview-buffer ºî¤ëľÁ°¤Î
+window-configuration.
+@end defvar
+
+
+@defun mime-preview/point-pcinfo point &optional pcl
+
+preview-content-info @var{pcl} ¤Ç´ÉÍý¤µ¤ì¤ë preview-buffer Ãæ¤ÎÎΰè¤Ë
+¤ª¤¤¤Æ¡¢@var{point} ¤ËÂбþ¤¹¤ë content ¤Î preview-content-info ¤òÊÖ¤¹¡£
+
+@var{cinfo} ¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¤Ï¡¢@code{mime::preview/content-list} ¤¬ÍÑ
+¤¤¤é¤ì¤ë¡£
+@end defun
--- /dev/null
+@c{$Id: tm-view=en.texi,v 7.6 1995/12/17 23:03:47 morioka Exp $}
+
+@node tm-view, encoded-word, tm-MUA, Top
+@comment node-name, next, previous, up
+@chapter tm-view
+@cindex tm-view
+
+The tm-view is a general MIME viewer running on GNU Emacs.
+
+tm-view provides the major-mode called @code{mime/viewer-mode} to read
+MIME message for MUA. MUA implementer can use it to add MIME function.
+
+tm-view is a user interface kernel to view and navigate MIME message.
+tm-view drives some programs to navigate each content-type/sub-types,
+they are called @strong{method}. tm-view calls some programs to
+display each content-type/sub-types in preview buffer, they are called
+@strong{filter}. @strong{method} and @strong{filter} are tm-view
+application program. They expand tm-view to treat various kinds of
+MIME types.
+
+@menu
+* mime/viewer-mode::
+* Mechanism of tm-view::
+* method:: decoding mechanism
+* Functions of tm-view::
+@end menu
+
+
+@node mime/viewer-mode, method, tm-view, tm-view
+@comment node-name, next, previous, up
+@section mime/viewer-mode
+@cindex mime/viewer-mode
+
+@code{mime/viewer-mode} is a major-mode to preview MIME message. In
+MIME viewer mode, you can navigate MIME message interactively.
+
+@menu
+* MIME display::
+* MIME navigation::
+@end menu
+
+@node MIME display, MIME navigation, mime/viewer-mode, mime/viewer-mode
+@comment node-name, next, previous, up
+@subsection Screen design of preview buffer
+@cindex Screen design of preview buffer
+
+In preview buffer, following are displayed for each content:
+
+@example
+ [content-subject]
+ (content-header)
+
+ (content-body)
+ (content-separator)
+@end example
+
+You can change design or stop to display if you specify for each
+content-types.
+
+Example:
+
+@example
+From: MORIOKA Tomohiko <morioka@@jaist.ac.jp>
+Newsgroups: zxr.comp.emacs.tm-english
+Subject: tm6.63.tar.gz
+Date: Mon, 26 Jun 1995 17:39:50 JST
+Organization: Chamonix, JAIST, Tatsunokuchi, Ishikawa, Japan
+Reply-To: tm-eng@@chamonix.jaist.ac.jp
+To: tm-eng@@chamonix.jaist.ac.jp
+In-Reply-To: Your message of "Sun, 25 Jun 1995 23:20:49 MST"
+X-Mua: mh-e 4.1 + tm 6.63 / Mule 2.2 (WAKAMURASAKI) PL02
+X-Mime-Composer: mime.el + tiny-mime 5.12
+X-Ml-Count: 32
+
+[1 (text/plain)]
+ I put tm6.63.tar.gz in ftp.jaist.ac.jp.
+
+ In this version, tm-view uses new MIME encoding/decoding engine
+``mel (MIME encoding library''. This library has internal/external
+encoding/decoding engine. If data is smaller than a limit, tm-view
+uses internal decoder, otherwise external decoder.
+
+[2 tm6.63.tar.gz ([anon-ftp] ftp.jaist.ac.jp:/pub/GNU/elisp/mime/alpha)]
+
+[3 (text/plain)]
+----
+MORIOKA, Tomohiko <morioka@@jaist.ac.jp>
+@end example
+
+
+@menu
+* content-subject::
+* content-header::
+* content-body::
+* content-separator::
+@end menu
+
+@include tm-view-cs=en.texi
+@include tm-view-ch=en.texi
+@include tm-view-cb=en.texi
+
+
+@node content-separator, , content-body, MIME display
+@comment node-name, next, previous, up
+@subsubsection content-separator
+@cindex content-separator
+
+Content-separator is displayed to represent boundary of contents.
+
+Content-separator is displayed by function
+@code{mime-viewer/default-content-separator}. In default, it displays
+line-break when content-header and content-body are not displayed.
+
+If you want to change this condition, please redefine this function.
+
+
+@deffn{Function} mime-viewer/default-content-separator cnum cinfo ctype params subj
+
+Display content-separator. @var{cnum} is content-number of a
+content. @var{cinfo} is content-info of the message. @var{ctype} is
+content-type of a content. @var{params} is Content-Type field
+parameters of a content. @var{subj} is subject.
+
+In default, it displays line-break when content-header and
+content-body are not displayed.
+@end deffn
+
+
+@node MIME navigation, , MIME display, mime/viewer-mode
+@comment node-name, next, previous, up
+@subsection Commands of mime/viewer-mode
+@cindex Commands of mime/viewer-mode
+
+@code{mime/viewer-mode} has following functions:
+
+@table @kbd
+@item @key{u}
+goes to the upper content (returns to the Summary mode if the cursor
+is sitting on the top content (*1))
+
+@item @key{p}
+goes to the previous content
+
+@item @key{n}
+goes to the next content
+
+@item @key{SPC}
+scrolls up
+
+@item @key{M-SPC}
+scrolls down
+
+@item @key{DEL}
+scrolls down
+
+@item @key{RET}
+goes to the next line
+
+@item @key{M-RET}
+goes to the previous line
+
+@item @key{<}
+goes to the beginning of message
+
+@item @key{>}
+goes to the end of message
+
+@item @key{v}
+playbacks a content (*2)
+
+@item @key{e}
+extracts a file from a content (*2)
+
+@item @key{C-c C-p}
+prints a content (*2)
+
+@item @key{f}
+displays X-Face in the message
+
+@item @key{mouse-button-2}
+drives mouse button.
+
+If you press content-subject, it playbacks the content. (*2)
+
+If you press URL-button, it runs WWW browser.
+@end table
+
+
+@b{[Notice]}
+@enumerate
+@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.
+@end enumerate
+
+
+@include tm-view-m=en.texi
+
+
+@node Mechanism of tm-view, Functions of tm-view, method, tm-view
+@comment node-name, next, previous, up
+@section Mechanism of tm-view
+@cindex mechanism of tm-view
+
+tm-view managements two buffers, one is for raw message called
+@strong{article buffer}, another one is to preview for user called
+@strong{preview buffer}.
+
+When called @code{mime/viewer-mode}, tm-view analyzes article buffer,
+and sets its result to the variable @code{mime::article/content-info}.
+
+After that, tm-view create a preview buffer corresponded to the
+article buffer. As this time, tm-view modifies header and body of each
+contents of the message. It is done by definition for Content-Types.
+
+On the preview buffer created by tm-view, user can manipulate a
+message to decode, such as run external vewer, extract files, or
+print.
+
+Notice: In this document, I call @strong{content-type} as
+content-type/subtype of Content-Type field.
+
+
+@menu
+* article-buffer::
+* preview-buffer::
+@end menu
+
+@include tm-view-a=en.texi
+
+@include tm-view-p=en.texi
+
+
+@node Functions of tm-view, , Mechanism of tm-view, tm-view
+@comment node-name, next, previous, up
+@section Functions of tm-view
+
+tm-view provides some available functions to decode and navigate MIME
+message to each MUAs.
+
+There are 2 kinds of functions, one is for MIME preview, another one
+is to decode RFC 1522 encoded-word.
+
+Memo: Old tiny-mime.el was abolished. Functions to decode RFC 1522
+encoded-word are took over to tm-view.
+
+
+@menu
+* function to preview::
+* encoded-word decoding::
+@end menu
+
+
+@node function to preview, encoded-word decoding, Functions of tm-view, Functions of tm-view
+@comment node-name, next, previous, up
+@subsection function to preview MIME message
+@cindex mime/viewer-mode
+
+@deffn{Command} mime/viewer-mode &optional mother ctl encoding
+
+Parse current-buffer as a MIME message, and create preview buffer to
+display to user, then enter @code{mime/viewer-mode}.
+
+@var{mother} is used to specify original article buffer. It may be
+useful when an article buffer is assembled from message/partial.
+
+@var{ctl} is used to specify Content-Type field information. Its
+format is output format of @code{mime/Content-Type}. When @var{ctl} is
+specified, tm-view uses it instead of Content-Type field of the
+article buffer.
+
+@var{encoding} is used to specify field-body of
+Content-Transfer-Encoding field. When is is specified, tm-view uses it
+instead of Content-Type field of the article buffer.
+@end deffn
+
+
+@include tm-ew-d=en.texi
--- /dev/null
+@c $Id: tm-view=ja.texi,v 7.9 1995/12/17 23:00:33 morioka Exp $
+
+@node tm-view, encoded-word, tm-MUA, Top
+@comment node-name, next, previous, up
+@chapter tm-view
+@cindex tm-view
+
+tm-view ¤Ï GNU Emacs ¤ÇÆ°ºî¤¹¤ëÈÆÍÑŪ¤Ê MIME viewer ¤Ç¤¹¡£
+
+tm-view ¤Ï @code{mime/viewer-mode} ¤È¤¤¤¦ MIME message ¤ò¸«¤ë¤¿¤á¤Î
+major-mode ¤ò MUA ¤ËÂФ·¤ÆÄ󶡤·¤Þ¤¹¡£MUA ¤ÎÀ߷׼ԤϤ³¤Î mode ¤òÍøÍѤ¹
+¤ë¤³¤È¤Ç¤½¤Î MUA ¤Ë MIME µ¡Ç½¤òÉղ乤뤳¤È¤¬¤Ç¤¤Þ¤¹¡£
+
+tm-view ¤Ï MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Î user interface ¤Î³Ë¤Ç¤¢¤ê¡¢¤½
+¤Î¾å¤Ç³Æ content-type/sub-type ¤ò°·¤¦¤¿¤á¤Î @strong{method} ¤È¸Æ¤Ð¤ì¤ë
+¥×¥í¥°¥é¥à¤òÆ°ºî¤µ¤»¤Þ¤¹¡£¤Þ¤¿¡¢MIME message ¤Îɽ¼¨¤Î»ÅÊý¤ò·è¤á¤ë
+@strong{filter} ¤È¸Æ¤Ð¤ì¤ë¥×¥í¥°¥é¥à¤òµ¯Æ°»þ¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
+@strong{method} ¤È @strong{filter} ¤ò tm-view ¤ËÁȤ߹þ¤à»ö¤Ë¤è¤Ã¤Æ¡¢
+@code{mime/viewer-mode} ¤Ç¤µ¤Þ¤¶¤Þ¤Ê MIME type ¤ò°·¤¦»ö¤¬¤Ç¤¤Þ¤¹¡£
+
+@menu
+* mime/viewer-mode:: mime/viewer-mode
+* method:: decoding Áàºî¤Î¼Â¸½
+* Mechanism of tm-view:: tm-view ¤Î»ÅÁȤß
+* Functions of tm-view:: tm-view ¤Î´Ø¿ô
+@end menu
+
+
+@node mime/viewer-mode, method, tm-view, tm-view
+@comment node-name, next, previous, up
+@section mime/viewer-mode
+@cindex mime/viewer-mode
+
+@code{mime/viewer-mode} ¤Ï MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Î major-mode ¤Ç
+¤¹¡£MIME viewer mode ¤Ç¤ÏÂÐÏÃŪ¤Ë MIME message ¤òÁàºî¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ
+¤¹¡£
+
+@menu
+* MIME display:: mime/viewer-mode ¤Î²èÌ̹½À®
+* MIME navigation:: mime/viewer-mode ¤Ç¤ÎÁàºî
+@end menu
+
+
+@node MIME display, MIME navigation, mime/viewer-mode, mime/viewer-mode
+@comment node-name, next, previous, up
+@subsection mime/viewer-mode ¤Î²èÌ̹½À®
+
+mime/viewer-mode ¤Ç¤Ï³Æ content ¤ËÂФ·¤Æ
+
+@example
+ [content-subject]
+ (content-header)
+
+ (content-body)
+ (content-separator)
+@end example
+
+¤È¤¤¤¦¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£¤³¤ì¤é¤Ï content-type Ëè¤Ë design ¤òÊѹ¹¤·¤¿¤ê¡¢
+ɽ¼¨¤òÍÞÀ©¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+
+°Ê²¼¤Ë¡¢É½¼¨Îã¤ò¼¨¤·¤Þ¤¹¡£
+
+
+@example
+From: ¼é²¬ ÃÎɧ (MORIOKA Tomohiko) <morioka@@jaist.ac.jp>
+Newsgroups: zxr.comp.emacs.tm-english
+Subject: tm6.63.tar.gz
+Date: Mon, 26 Jun 1995 17:39:50 JST
+Organization: Chamonix, JAIST, Tatsunokuchi, Ishikawa, Japan
+Reply-To: tm-eng@@chamonix.jaist.ac.jp
+To: tm-eng@@chamonix.jaist.ac.jp
+In-Reply-To: Your message of "Sun, 25 Jun 1995 23:20:49 MST"
+X-Mua: mh-e 4.1 + tm 6.63 / Mule 2.2 ( ¼ã»ç ) PL02
+X-Mime-Composer: mime.el + tiny-mime 5.12
+X-Ml-Count: 32
+
+[1 (text/plain)]
+ I put tm6.63.tar.gz in ftp.jaist.ac.jp.
+
+ In this version, tm-view uses new MIME encoding/decoding engine
+``mel (MIME encoding library''. This library has internal/external
+encoding/decoding engine. If data is smaller than a limit, tm-view
+uses internal decoder, otherwise external decoder.
+
+[2 tm6.63.tar.gz ([anon-ftp] ftp.jaist.ac.jp:/pub/GNU/elisp/mime/alpha)]
+
+[3 (text/plain)]
+----
+MORIOKA, Tomohiko <morioka@@jaist.ac.jp>
+@end example
+
+
+@menu
+* content-subject::
+* content-header::
+* content-body::
+* content-separator::
+@end menu
+
+@include tm-view-cs=ja.texi
+@include tm-view-ch=ja.texi
+@include tm-view-cb=ja.texi
+
+
+@node content-separator, , content-body, MIME display
+@comment node-name, next, previous, up
+@subsubsection content-separator
+@cindex content-separator
+
+content-separator ¤Ï content ¤Î°ìÈֺǸå¤Ë content ´Ö¤Î¶ÌܤòÌÀ¤é¤«¤Ë¤¹
+¤ë¤¿¤á¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
+
+content-separator ¤Ï´Ø¿ô @code{mime-viewer/default-content-separator}
+¤Ë¤è¤Ã¤Æɽ¼¨¤µ¤ì¤Þ¤¹¡£É¸½à¤Ç¤Ï¡¢content-header ¤â content-body ¤âɽ¼¨
+¤µ¤ì¤Ê¤¤¾ì¹ç¤Î¤ß¡¢²þ¹Ô¤òɽ¼¨¤·¤Þ¤¹¡£
+
+content-separator ¤ÎÀßÄê¤òÊѹ¹¤·¤¿¤¤¾ì¹ç¤Ï¡¢¤³¤Î´Ø¿ô¤òºÆÄêµÁ¤·¤Æ²¼¤µ¤¤¡£
+
+
+@deffn{Function} mime-viewer/default-content-separator rcnum cinfo ctype params subj
+
+content-number ¤¬ @var{cnum} ¤Ç¤¢¤ë content ¤Î content-separator ¤òɽ
+¼¨¤¹¤ë¡£É¸½à¤Ç¤Ï¡¢content-header ¤â content-body ¤âɽ¼¨¤µ¤ì¤Ê¤¤¾ì¹ç¤Î
+¤ß¡¢²þ¹Ô¤òɽ¼¨¤¹¤ë¡£
+@end deffn
+
+
+@node MIME navigation, , MIME display, mime/viewer-mode
+@comment node-name, next, previous, up
+@subsection mime/viewer-mode ¤Ç¤ÎÁàºî
+
+mime/viewer-mode ¤Ë¤Ï°Ê²¼¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£
+
+@table @kbd
+@item @key{u}
+¾å¤Î content ¤ËÌá¤ë¡Êmessage ¤Î°ìÈÖ¾å¤Î content ¤Ç¤³¤ì¤ò¹Ô¤Ê¤¦¤È
+Summary mode ¤ËÌá¤ë (*1)¡Ë
+
+@item @key{p}
+Á°¤Î content ¤Ë°ÜÆ°¤¹¤ë
+
+@item @key{n}
+¼¡¤Î content ¤Ë°ÜÆ°¤¹¤ë
+
+@item @key{SPC}
+scroll up ¤¹¤ë
+
+@item @key{M-SPC}
+scroll down ¤¹¤ë
+
+@item @key{DEL}
+scroll down ¤¹¤ë
+
+@item @key{RET}
+¼¡¤Î¹Ô¤Ë°ÜÆ°¤¹¤ë
+
+@item @key{M-RET}
+Á°¤Î¹Ô¤Ë°ÜÆ°¤¹¤ë
+
+@item @key{M-RET}
+Á°¤Î¹Ô¤Ë°ÜÆ°¤¹¤ë
+
+@item @key{<}
+message ¤ÎÀèƬ¤Ë°ÜÆ°¤¹¤ë
+
+@item @key{>}
+message ¤ÎËöÈø¤Ë°ÜÆ°¤¹¤ë
+
+@item @key{v}
+content ¤òºÆÀ¸¤¹¤ë (*2)
+
+@item @key{e}
+content ¤«¤é file ¤ò¼è¤ê½Ð¤¹ (*2)
+
+@item @key{C-c C-p}
+content ¤ò°õºþ¤¹¤ë (*2)
+
+@item @key{f}
+message Ãæ¤Î X-Face ¤òɽ¼¨¤¹¤ë
+
+@item @key{mouse-button-2}
+preview-buffer Ãæ¤Î mouse button ¤òµ¯Æ°¤¹¤ë
+
+content-subject ¤ò²¡¤»¤Ð¡¢¤½¤Î content ¤¬ºÆÀ¸¤µ¤ì¤ë(*2)
+
+URL-button ¤ò²¡¤»¤Ð¡¢¤½¤Î WWW browser ¤¬µ¯Æ°¤µ¤ì¤ë
+@end table
+
+
+@b{¡ÎÃí°Õ¡Ï}
+@enumerate
+@item
+tm-MUA ¤Ç tm-view ¤ÎÀßÄê¤ò¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢Summary mode ¤Ë¤ÏÌá¤ê¤Þ¤»¤ó¡£
+
+@item
+¼ÂºÝ¤ÎÆ°ºî¤ÏÂбþ¤¹¤ë method ¤Ë°Í¤ê¤Þ¤¹¡£
+@end enumerate
+
+
+@include tm-view-m=ja.texi
+
+
+@node Mechanism of tm-view, Functions of tm-view, method, tm-view
+@comment node-name, next, previous, up
+@section tm-view ¤Î»ÅÁȤß
+
+tm-view ¤Ï¡¢MIME ½èÍý¤ò¹Ô¤Ê¤¦Á°¤ÎÀ¸¤Î message ¤¬Æþ¤Ã¤Æ¤¤¤ë
+@strong{article-buffer} ¤È¤½¤ÎÆâÍƤò user ¤Ë´Ê·é¤Ëɽ¼¨¤·¡¢user ¤¬Áàºî
+¤¹¤ë¤¿¤á¤Î @strong{preview-buffer} ¤È¤¤¤¦£²¤Ä¤Î buffer ¤ò´ÉÍý¤·¤Þ¤¹¡£
+article-buffer ¤Î major-mode ¤Ï¤â¤È¤â¤È¤Î MUA ¤Î article ɽ¼¨ÍѤÎ
+major-mode ¤Ç¤¢¤ê¡¢preview-buffer ¤Î major-mode ¤Ï mime/viewer-mode ¤È
+¤Ê¤ê¤Þ¤¹¡£
+
+@code{mime/viewer-mode} ¤ò¼Â¹Ô¤¹¤ë¤È¡¢tm-view ¤Ï¤Þ¤º article-buffer ¤Î
+ÆâÍƤò²òÀϤ·¡¢¤½¤Î message ¤Î¹½Â¤¤ò article-buffer ¤Î buffer local ÊÑ
+¿ô @code{mime::article/content-info} ¤ËµÏ¿¤·¤Þ¤¹¡£
+
+¼¡¤Ë¡¢¤³¤Î·ë²Ì¤ò¸µ¤Ë article-buffer ¤ËÂбþ¤¹¤ë preview-buffer ¤òºî¤ê¤Þ
+¤¹¡£¤³¤ÎºÝ¡¢content-type ¤Ë±þ¤¸¤Æ¡¢content ñ°Ì¤Ç header ¤ä body ¤ò²Ã
+¹©¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤³¤Î header ¤ò²Ã¹©¤¹¤ë¥×¥í¥°¥é¥à¤ò
+@strong{header-filter}, body ¤ò²Ã¹©¤¹¤ë¥×¥í¥°¥é¥à¤ò
+@strong{content-filter} ¤È¸Æ¤Ó¡¢¤³¤ì¤é¤òÁí¾Î¤·¤Æ @strong{filter} ¤È¸Æ
+¤Ó¤Þ¤¹¡£
+
+preview-buffer ¤òºîÀ®¤¹¤ë»þ¤Ë¡¢message ¤Îɽ¼¨¾å¤Î¹½Â¤¤òµÏ¿¤·¤¿
+preview-buffer ¤Î buffer local ÊÑ¿ô @code{mime::preview/content-list}
+¤¬ºî¤é¤ì¤Þ¤¹¡£tm-view ¤Ï article-buffer ¾å¤Î
+@code{mime::article/content-info} ¤È preview-buffer ¾å¤Î
+@code{mime::preview/content-list} ¤òÍѤ¤¤Æ message ¤ò´ÉÍý¤·¤Þ¤¹¡£
+
+
+Ãí°Õ¡§ ¤³¤ÎÀâÌÀ½ñ¤Ç¤Ï¡¢Content-Type field ¤Î content-type/subtype ¤Î¤³
+¤È¤ò¾Î¤·¤Æ @strong{content-type} ¤È¸Æ¤Ó¤Þ¤¹¡£
+
+
+@menu
+* article-buffer:: article-buffer
+* preview-buffer:: preview-buffer
+@end menu
+
+@include tm-view-a=ja.texi
+
+@include tm-view-p=ja.texi
+
+
+@node Functions of tm-view, , Mechanism of tm-view, tm-view
+@comment node-name, next, previous, up
+@section MIME message ¤Î decode ¤Ë´Ø¤¹¤ë´Ø¿ô
+
+tm-view ¤ÎÄ󶡤¹¤ë´Ø¿ô¤ò³Æ MUA ¤ËÁȤ߹þ¤à»ö¤Ë¤è¤Ã¤Æ¡¢³Æ MUA ¤Ë MIME ºÆ
+À¸µ¡Ç½¤òÉղ乤ë»ö¤¬¤Ç¤¤Þ¤¹¡£
+
+tm-view ¤¬³Æ MUA ¤ËÄ󶡤¹¤ë´Ø¿ô¤Ï¡¢MIME preview ¤ò¹Ô¤¦¤¿¤á¤Î´Ø¿ô
+@code{mime/viewer-mode} ¤È RFC 1522 encoded-word ¤ò decode ¤¹¤ë¤¿¤á¤Î
+´Ø¿ô·²¤Ç¤¹¡£
+
+Memo: µì tiny-mime.el ¤Ë¤¢¤Ã¤¿ RFC 1522 encoded-word ¤ò decode ¤¹¤ë¤¿
+¤á¤Î´Ø¿ô·²¤Ï tm-view ¤Ë°ú¤·Ñ¤¬¤ì¤Þ¤·¤¿¡£
+
+
+@menu
+* function to preview:: MIME message ¤ò preview ¤¹¤ë¤¿¤á¤Î´Ø¿ô
+* encoded-word decoding:: encoded-word ¤ò decode ¤¹¤ë¤¿¤á¤Î´Ø¿ô
+@end menu
+
+
+@node function to preview, encoded-word decoding, Functions of tm-view, Functions of tm-view
+@comment node-name, next, previous, up
+@subsection MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Î´Ø¿ô
+@cindex mime/viewer-mode
+
+@deffn{Command} mime/viewer-mode &optional mother ctl encoding
+
+current-buffer ¤ò MIME message ¤È¤·¤Æ²òÀϤ·¤Æ¡¢¤½¤ÎÆâÍƤò±ÜÍ÷¤¹¤ë¤¿¤á
+¤Î preview-buffer ¤òºîÀ®¤·¡¢@code{mime/viewer-mode} ¤ËÆþ¤ê¤Þ¤¹¡£
+
+@var{mother} ¤Ï¡¢²òÀϤÎÂоݤȤ¹¤ë article-buffer ¤¬ message/partial ·Á
+¼°¤Îʬ³ä¤µ¤ì¤¿ message ¤ò·ë¹ç¤·¤ÆºîÀ®¤·¤¿¾ì¹ç¤Ê¤É¤Ë¤ª¤±¤ë¸µ¤Î buffer
+¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤¤¤Þ¤¹¡£
+
+@var{ctl} ¤Ï Content-Type field ¤Î field-body ¤ò
+@code{mime/Content-Type} ¤Î½ÐÎÏÀµ¼°¤Ë¤·¤¿¤â¤Î¤òÆþ¤ì¤Þ¤¹¡£¤³¤Î°ú¿ô¤¬¤¢
+¤ë¾ì¹ç¡¢article-buffer ¤Î Content-Type field ¤è¤ê¤â¤³¤Î°ú¿ô¤òÍ¥À褷¤Þ
+¤¹¡£
+
+@var{encoding} ¤Ï Content-Transfer-Encoding field ¤Î field-body ¤òÆþ¤ì
+¤Þ¤¹¡£¤³¤Î°ú¿ô¤¬¤¢¤ë¾ì¹ç¡¢article-buffer ¤Î Content-Transfer-Encoding
+field ¤è¤ê¤â¤³¤Î°ú¿ô¤òÍ¥À褷¤Þ¤¹¡£
+@end deffn
+
+
+@include tm-ew-d=ja.texi
@titlepage
@title tm Manual (English Version)
@author by MORIOKA Tomohiko
-@code{$Id: tm_en.texi,v 7.4 1995/12/15 05:34:44 morioka Exp morioka $}
+@code{$Id: tm_en.texi,v 7.6 1995/12/17 16:16:53 morioka Exp morioka $}
@end titlepage
@end menu
-@node Emacs Versions, Install, Introduction, Top
+@node Emacs Versions, Setting, Introduction, Top
@comment node-name, next, previous, up
@chapter Considerations for each emacs variants
@cindex Considerations for each emacs variants
In future, we will support inline image.
-@node Setting, tm-MUA, Install, Top
+@node Setting, tm-MUA, Emacs Versions, Top
@comment node-name, next, previous, up
@chapter Setting
@cindex Setting
@end menu
-@include tm-view_en.texi
+@include tm-view=en.texi
-@include tm-ew_en.texi
+@include tm-ew=en.texi
-@include tm-util_en.texi
+@include tm-util=en.texi
@node Bug report, Concept Index, customize, Top
@titlepage
@title{tm Manual¡ÊÆüËܸìÈÇ¡Ë}
@author{¼é²¬ ÃÎɧ Ãø}
-@code{$Id: tm_ja.texi,v 7.3 1995/12/15 05:36:34 morioka Exp morioka $}
+@code{$Id: tm_ja.texi,v 7.4 1995/12/17 15:17:49 morioka Exp morioka $}
@end titlepage
support ¤µ¤ì¤Þ¤¹¡£
-@include tm-view_ja.texi
+@include tm-view=ja.texi
-@include tm-ew_ja.texi
+@include tm-ew=ja.texi
-@include tm-util_ja.texi
+@include tm-util=ja.texi
@node Bug report, Concept Index, customize, Top
--- /dev/null
+Mon Dec 18 12:06:27 1995 Morioka Tomohiko <morioka@jaist.ac.jp>
+
+ * tm/gnus: Version 7.25 was released.
+
+Sat Dec 16 14:54:31 1995 Morioka Tomohiko <morioka@jaist.ac.jp>
+
+ * tm-gnus4.el:
+ (tm-gnus/view-message, tm-gnus/preview-article-if-you-need):
+ enclose `(run-hooks 'tm-gnus/article-prepare-hook)' by
+ `(let (buffer-read-only) ...)'. (cf. [tm-ja:1350])
FILES = tm/gnus/*.el tm/doc/tm-gnus*.texi
-TARFILE = tm-gnus7.24.tar
+TARFILE = tm-gnus7.25.tar
gnus:
;;;
;; please edit
-(add-path "sgnus-0.22/lisp" 'all-paths)
+(add-path "sgnus-0.24/lisp" 'all-paths)
;;; modified by OKABE Yasuo <okabe@kudpc.kyoto-u.ac.jp>
;;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp>
;;; Created: 1993/11/20 (merged tm-gnus5.el)
-;;; Version: $Revision: 7.12 $
+;;; Version: $Revision: 7.14 $
;;; Keywords: news, MIME, multimedia, multilingual, encoded-word
;;;
;;; This file is part of tm (Tools for MIME).
;;; You should have received a copy of the GNU General Public License
;;; along with This program. If not, write to the Free Software
;;; Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+;;;
+;;; Code:
(require 'tl-str)
(require 'tl-misc)
;;;
(defconst tm-gnus/RCS-ID
- "$Id: tm-gnus4.el,v 7.12 1995/12/07 08:44:12 morioka Exp $")
+ "$Id: tm-gnus4.el,v 7.14 1995/12/18 11:08:33 morioka Exp $")
(defconst tm-gnus/version
(concat (get-version-string tm-gnus/RCS-ID) " for 3.15 .. 5.1"))
(function gnus-article-push-button))
(mime/viewer-mode
nil nil nil tm-gnus/original-article-buffer gnus-article-buffer)
- (run-hooks 'tm-gnus/article-prepare-hook)
+ (let (buffer-read-only)
+ (run-hooks 'tm-gnus/article-prepare-hook)
+ )
))
(defun tm-gnus/summary-scroll-down ()
(set-alist 'mime-viewer/quitting-method-alist
'gnus-article-mode
(function mime-viewer/quitting-method-for-gnus4))
+ (set-alist 'mime-viewer/show-summary-method
+ 'gnus-article-mode
+ (function mime-viewer/quitting-method-for-gnus4))
)))
(gnus-article-show-summary)
(setq tm-gnus/automatic-mime-preview t)
(setq gnus-original-article-buffer tm-gnus/original-article-buffer)
- (run-hooks 'tm-gnus/article-prepare-hook)
+ (let (buffer-read-only)
+ (run-hooks 'tm-gnus/article-prepare-hook)
+ )
)))
(setq gnus-show-mime-method
;;;
(provide 'tm-gnus4)
-
;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
;;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp>
;;; Created: 1995/09/24
-;;; Version: $Revision: 7.24 $
+;;; Version: $Revision: 7.25 $
;;; Keywords: news, MIME, multimedia, multilingual, encoded-word
;;;
;;; This file is part of tm (Tools for MIME).
;;;
(defconst tm-gnus/RCS-ID
- "$Id: tm-sgnus.el,v 7.24 1995/12/15 13:47:36 morioka Exp $")
+ "$Id: tm-sgnus.el,v 7.25 1995/12/18 11:08:07 morioka Exp $")
(defconst tm-gnus/version
(concat (get-version-string tm-gnus/RCS-ID) " for September"))
(set-alist 'mime-viewer/quitting-method-alist
'gnus-original-article-mode
(function mime-viewer/quitting-method-for-sgnus))
+ (set-alist 'mime-viewer/show-summary-method
+ 'gnus-original-article-mode
+ (function mime-viewer/quitting-method-for-sgnus))
))
-#!/bin/sh
+#!/bin/sh -
+#
+# $Id: tm-au,v 3.1 1995/12/18 11:34:57 morioka Exp $
+#
+
if [ "$TM_TMP_DIR" = "" ]; then
TM_TMP_DIR=/tmp
export TM_TMP_DIR
filename="$TM_TMP_DIR/$5"
fi
-echo "$2; $3 -> $filename"
-
-tmdecode $3 $1 $filename
-
case "$4" in
"play")
+ echo "$2; $3 ->"
if [ "$AUDIOSERVER" = "" ]; then
- cat $filename >/dev/audio
+ tmdecode $3 $1 /dev/audio
else
- autool -v 40 $filename
+ tmdecode $3 $1 $filename
+ autool -v 40 $filename
+ trap 'rm -f $filename' 0 1 2 3 13 15
fi
;;
"extract")
- echo "extract to $filename"
+ echo "$2; $3 -> $filename"
+ echo "extract to $filename"
+ tmdecode $3 $1 $filename
;;
esac
-#!/bin/sh
+#!/bin/sh -
+#
+# $Id: tm-file,v 3.0 1995/12/18 11:39:26 morioka Exp $
+#
+
if [ "$TM_TMP_DIR" = "" ]; then
TM_TMP_DIR=/tmp
export TM_TMP_DIR
fi
+
if [ "$5" = "" ]; then
filename="$TM_TMP_DIR/mime$$"
else
filename="$TM_TMP_DIR/$5"
fi
+
echo "$2; $3 -> $filename"
tmdecode $3 $1 $filename
"image/x-pic")
filename="$TM_TMP_DIR/mime$$.pic"
;;
+ "image/x-mag")
+ filename="$TM_TMP_DIR/mime$$.mag"
+ ;;
*)
filename="$TM_TMP_DIR/mime$$.img"
;;
-#!/bin/sh
+#!/bin/sh -
+#
+# $Id: tm-plain,v 3.0 1995/12/18 11:37:12 morioka Exp $
+#
+
if [ "$TM_TMP_DIR" = "" ]; then
TM_TMP_DIR=/tmp
export TM_TMP_DIR
filename="$TM_TMP_DIR/$5"
fi
-echo "$2; $3 -> $filename"
-
-tmdecode $3 $1 $filename
-
case "$4" in
"play")
- cat $filename
- /bin/rm $filename
+ echo "$2; $3 ->"
+ tmdecode "$3" "$1" /dev/stdout
;;
"extract")
+ echo "$2; $3 -> $filename"
echo "extract to $filename"
+ tmdecode "$3" "$1" $filename
;;
"print")
- txt2ps -n $filename | lpr
- /bin/rm $filename
+ echo "$2; $3 ->"
+ tmdecode "$3" "$1" /dev/stdout | lpr
;;
-esac
+esac
\ No newline at end of file
-#!/bin/sh
+#!/bin/sh -
+#
+# $Id: tmdecode,v 3.0 1995/12/18 11:36:36 morioka Exp $
+#
+
+trap 'rm -f $2' 0 1 2 3 13 15
+
+case "$3" in
+/dev/stdout)
+ OUTPUT=
+ ;;
+*)
+ OUTPUT='> $3'
+ ;;
+esac
case "$1" in
-"7bit"|"8bit"|"binary")
- /bin/cp $2 $3
+""|"7bit"|"8bit"|"binary")
+ eval "cat $2 $OUTPUT"
;;
"base64")
#decode-b < $2 > $3
- mmencode -u $2 > $3
+ eval "mmencode -u $2 $OUTPUT"
;;
"quoted-printable")
- mmencode -q -u $2 > $3
+ eval "mmencode -q -u $2 $OUTPUT"
;;
"x-uue"|"x-uuencode")
(cd $TM_TMP_DIR ; uudecode $2)
;;
esac
-/bin/rm $2
-
echo "$2 was removed."
+
(setq tm-modules (append tm-modules '("tm-evs")))
)
+(if (string-match "XEmacs" emacs-version)
+ (setq tm-modules (append tm-modules '("tm-image")))
+ )
+
(setq tm-el-files
(mapcar (function (lambda (module)
(concat module ".el")
;; Author: UMEDA Masanobu <umerin@mse.kyutech.ac.jp>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Version: $Revision: 7.35 $
+;; Version: $Revision: 7.36 $
;; Keywords: mail, news, MIME, multimedia, multilingual
;; This file is not part of GNU Emacs.
;; LCD Archive Entry:
;; mime|Masanobu UMEDA|umerin@mse.kyutech.ac.jp|
;; Simple MIME Composer|
-;; $Date: 1995/12/15 15:02:14 $|$Revision: 7.35 $|~/misc/mime.el.Z|
+;; $Date: 1995/12/17 14:37:28 $|$Revision: 7.36 $|~/misc/mime.el.Z|
;;; Code:
;;;
(defconst mime-editor/RCS-ID
- "$Id: tm-edit.el,v 7.35 1995/12/15 15:02:14 morioka Exp $")
+ "$Id: tm-edit.el,v 7.36 1995/12/17 14:37:28 morioka Exp $")
(defconst mime-editor/version (get-version-string mime-editor/RCS-ID))
("jpeg")
("tiff")
("x-pic")
+ ("x-mag")
("x-xwd")
("x-xbm")
)
("\\.html$"
"text" "html" nil nil)
("\\.ps$"
- "application" "postscript" nil "quoted-printable")
+ "application" "postscript" nil "quoted-printable"
+ (("Content-Description" . file))
+ )
+ ("\\.jpg$"
+ "image" "jpeg" nil "base64"
+ (("Content-Description" . file))
+ )
("\\.gif$"
"image" "gif" nil "base64"
(("Content-Description" . file))
)
- ("\\.jpg$"
- "image" "jpeg" nil "base64")
- ("\\.xwd$"
- "image" "x-xwd" nil "base64")
- ("\\.xbm$"
- "image" "x-xbm" nil "base64")
+ ("\\.tiff$"
+ "image" "tiff" nil "base64"
+ (("Content-Description" . file))
+ )
("\\.pic$"
"image" "x-pic" nil "base64"
+ (("Content-Description" . file)))
+ ("\\.mag$"
+ "image" "x-mag" nil "base64"
+ (("Content-Description" . file))
+ )
+ ("\\.xbm$"
+ "image" "x-xbm" nil "base64"
+ (("Content-Description" . file))
+ )
+ ("\\.xwd$"
+ "image" "x-xwd" nil "base64"
(("Content-Description" . file))
)
- ("\\.tiff$"
- "image" "tiff" nil "base64")
("\\.au$"
"audio" "basic" nil "base64")
("\\.mpg$"
- "video" "mpeg" nil "base64")
+ "video" "mpeg" nil "base64"
+ (("Content-Description" . file))
+ )
("\\.el$"
"application" "octet-stream" (("name" . file)
("type" . "emacs-lisp")) "7bit")
"*PGP signing type (pgp-elkins, pgp-kazu or nil). [tm-edit.el]")
(defvar mime-editor/encrypting-type nil
- "*PGP encrypting type (pgp-elkins, pgp-kazu or nil).
-Sorry `pgp-elkins' is not supported yet. [tm-edit.el]")
+ "*PGP encrypting type (pgp-elkins, pgp-kazu or nil). [tm-edit.el]")
(if (or mime-editor/signing-type mime-editor/encrypting-type)
(require 'mailcrypt)
))
((string= type "encrypted")
(cond ((eq mime-editor/signing-type 'pgp-elkins)
- (message "Sorry, it is not supported yet")
+ (mime-editor/encrypt-pgp-elkins bb eb boundary)
)
((eq mime-editor/signing-type 'pgp-kazu)
(mime-editor/process-pgp-kazu 'mc-encrypt
)
))))
+(defun mime-editor/encrypt-pgp-elkins (beg end boundary)
+ (save-excursion
+ (save-restriction
+ (narrow-to-region beg end)
+ (let* ((ret
+ (mime-editor/translate-region beg end boundary))
+ (ctype (car ret))
+ (encoding (nth 1 ret))
+ (parts (nth 3 ret))
+ (pgp-boundary (concat "pgp-" boundary))
+ )
+ (goto-char beg)
+ (insert (format "Content-Type: %s\n" ctype))
+ (if encoding
+ (insert (format "Content-Transfer-Encoding: %s\n" encoding))
+ )
+ (insert "\n")
+ (if (null
+ (progn
+ (goto-char beg)
+ (insert "=\n")
+ (prog1
+ (let ((mail-header-separator "="))
+ (call-interactively 'mc-encrypt)
+ )
+ (goto-char beg)
+ (and (search-forward "=\n")
+ (replace-match ""))
+ )))
+ (throw 'mime-editor/error 'pgp-error)
+ )
+ (goto-char beg)
+ (insert (format "--[[multipart/encrypted;
+ boundary=\"%s\"; protocol=\"application/pgp-encrypted\"][7bit]]
+--%s
+Content-Type: application/pgp-encrypted
+
+--%s
+Content-Type: application/octet-stream
+Content-Transfer-Encoding: 7bit
+
+" pgp-boundary pgp-boundary pgp-boundary))
+ (goto-char (point-max))
+ (insert (format "\n--%s--\n" pgp-boundary))
+ ))
+ ))
+
(defun mime-editor/process-pgp-kazu (type beg end boundary)
(save-excursion
(save-restriction
--- /dev/null
+;;;
+;;; tm-image.el --- a tm-view content filter to display images in
+;;; XEmacs buffers
+;;;
+;;; Copyright (C) 1995 MORIOKA Tomohiko
+;;;
+;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;;; Created: 1995/12/15
+;;; Version:
+;;; $Id: tm-image.el,v 2.0 1995/12/17 12:50:26 morioka Exp $
+;;;
+;;; Keywords: mail, news, MIME, multimedia, image, picture
+;;;
+;;; This file is part of tm (Tools for MIME).
+;;;
+;;; This program is free software; you can redistribute it and/or
+;;; modify it under the terms of the GNU General Public License as
+;;; published by the Free Software Foundation; either version 2, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with This program. If not, write to the Free Software
+;;; Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+;;;
+;;; Code:
+
+(require 'tm-view)
+(require 'xpm)
+(require 'annotations)
+
+(defvar mime-viewer/shell-command "/bin/sh")
+(defvar mime-viewer/shell-arguments '("-c"))
+
+(setq mime-viewer/graphic-converter-alist
+ '(("image/jpeg" . "djpeg -color 256 < %s | ppmtoxpm > %s")
+ ("image/gif" . "giftopnm < %s | ppmtoxpm > %s")
+ ("image/tiff" . "tifftopnm < %s | ppmquant 256 | ppmtoxpm > %s")
+ ("image/x-tiff" . "tifftopnm < %s | ppmquant 256 | ppmtoxpm > %s")
+ ("image/x-pic" . "pictoppm < %s | ppmquant 256 | ppmtoxpm > %s")
+ ("image/x-mag" . "magtoppm < %s | ppmtoxpm > %s")
+ ))
+
+
+;;; @ content filter for JPEG
+;;;
+
+(defun mime-preview/filter-for-image (ctype params encoding)
+ (let* ((mode mime::preview/original-major-mode)
+ (m (assq mode mime-viewer/code-converter-alist))
+ (filter (assoc-value ctype mime-viewer/graphic-converter-alist))
+ )
+ (if filter
+ (let* ((beg (point-min)) (end (point-max))
+ (orig-file
+ (make-temp-name (expand-file-name "tm" mime/tmp-dir)))
+ (xbm-file (concat orig-file ".xbm"))
+ gl annot)
+ ;;(remove-text-properties beg end '(face nil))
+ (mime/decode-region encoding beg end)
+ (write-region (point-min)(point-max) orig-file)
+ (delete-region (point-min)(point-max))
+ (message "Now translating, please wait...")
+ (apply (function call-process)
+ mime-viewer/shell-command nil nil nil
+ (append mime-viewer/shell-arguments
+ (list (format filter orig-file xbm-file)))
+ )
+ (setq gl (make-glyph xbm-file))
+ (setq annot (make-annotation gl (point) 'text))
+ (delete-file orig-file)
+ (delete-file xbm-file)
+ (goto-char (point-max))
+ (insert "\n")
+ (message "Translation done.")
+ )
+ (message (format "%s is not supported." ctype))
+ )))
+
+(set-alist 'mime-viewer/content-filter-alist
+ "image/jpeg" (function mime-preview/filter-for-image))
+
+(set-alist 'mime-viewer/content-filter-alist
+ "image/gif" (function mime-preview/filter-for-image))
+
+(set-alist 'mime-viewer/content-filter-alist
+ "image/tiff" (function mime-preview/filter-for-image))
+(set-alist 'mime-viewer/content-filter-alist
+ "image/x-tiff" (function mime-preview/filter-for-image))
+
+(set-alist 'mime-viewer/content-filter-alist
+ "image/x-pic" (function mime-preview/filter-for-image))
+
+(set-alist 'mime-viewer/content-filter-alist
+ "image/x-mag" (function mime-preview/filter-for-image))
+
+
+;;; @ content filter for xbm
+;;;
+
+(defun mime-preview/filter-for-image/xbm (ctype params encoding)
+ (let* ((mode mime::preview/original-major-mode)
+ (m (assq mode mime-viewer/code-converter-alist))
+ (charset (assoc "charset" params))
+ (beg (point-min)) (end (point-max))
+ (xbm-file (make-temp-name (expand-file-name "tm" mime/tmp-dir)))
+ gl annot)
+ (remove-text-properties beg end '(face nil))
+ (mime/decode-region encoding beg end)
+ (write-region (point-min)(point-max) xbm-file)
+ (delete-region (point-min)(point-max))
+ (setq gl (make-glyph xbm-file))
+ (setq annot (make-annotation gl (point) 'text))
+ (delete-file xbm-file)
+ ))
+
+(set-alist 'mime-viewer/content-filter-alist
+ "image/xbm" (function mime-preview/filter-for-image/xbm))
+
+(set-alist 'mime-viewer/content-filter-alist
+ "image/x-xbm" (function mime-preview/filter-for-image/xbm))
+
+
+;;; @ setting
+;;;
+
+(mapcar
+ (lambda (ctype)
+ (or (member ctype mime-viewer/default-showing-Content-Type-list)
+ (setq mime-viewer/default-showing-Content-Type-list
+ (cons ctype
+ mime-viewer/default-showing-Content-Type-list))
+ ))
+ '("image/jpeg" "image/gif" "image/tiff"
+ "image/x-tiff" "image/x-pic" "image/x-mag" "image/x-xbm"))
+
+
+;;; @ end
+;;;
+
+(provide 'tm-image)
;;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp>
;;; Created: 1995/12/7
;;; Version:
-;;; $Id: tm-pgp.el,v 7.0 1995/12/15 15:40:10 morioka Exp $
+;;; $Id: tm-pgp.el,v 7.2 1995/12/17 14:29:17 morioka Exp $
;;; Keywords: mail, news, MIME, multimedia, PGP, security
;;;
;;; This file is part of tm (Tools for MIME).
(method . mime-article/view-application/pgp)
))
+(set-atype 'mime/content-decoding-condition
+ '((type . "text/x-pgp")
+ (method . mime-article/view-application/pgp)
+ ))
+
;;; @ Internal method for application/pgp-signature
;;;
(rcnum (reverse cnum))
(rmcnum (cdr rcnum))
(knum (car rcnum))
- (onum (if (>= knum 0)
+ (onum (if (> knum 0)
(1- knum)
(1+ knum)))
(oinfo (mime-article/rcnum-to-cinfo (cons onum rmcnum)
))
+;;; @ Internal method for application/pgp-encrypted
+;;;
+;;; It is based on draft-elkins-pem-pgp-01.txt
+
+(defun mime-article/decrypt-pgp (beg end cal)
+ (let* ((cnum (mime-article/point-content-number beg))
+ (rcnum (reverse cnum))
+ (rmcnum (cdr rcnum))
+ (knum (car rcnum))
+ (onum (if (> knum 0)
+ (1- knum)
+ (1+ knum)))
+ (oinfo (mime-article/rcnum-to-cinfo (cons onum rmcnum)
+ mime::article/content-info))
+ (obeg (mime::content-info/point-min oinfo))
+ (oend (mime::content-info/point-max oinfo))
+ )
+ (mime-article/view-application/pgp obeg oend cal)
+ ))
+
+(set-atype 'mime/content-decoding-condition
+ '((type . "application/pgp-encrypted")
+ (method . mime-article/decrypt-pgp)
+ ))
+
+
;;; @ Internal method for application/pgp-keys
;;;
;;; It is based on draft-elkins-pem-pgp-01.txt
;;;
-;;; $Id: tm-setup.el,v 6.4 1995/10/24 00:24:48 morioka Exp $
+;;; $Id: tm-setup.el,v 7.0 1995/12/17 13:02:30 morioka Exp $
;;;
(require 'tl-misc)
(set-alist 'mime-viewer/content-filter-alist
"text/enriched" (function mime-viewer/filter-text/enriched))
(autoload 'mime-viewer/filter-text/enriched "tm-rich")
+
+ ;; for image/*
+ (if (string-match "XEmacs" emacs-version)
+ (require 'tm-image)
+ )
;; for LaTeX
(set-atype 'mime/content-decoding-condition
;;; modified by Steven L. Baur <steve@miranova.com>
;;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp>
;;; Created: 1994/7/13 (1994/8/31 obsolete tm-body.el)
-;;; Version: $Revision: 7.34 $
+;;; Version: $Revision: 7.36 $
;;; Keywords: mail, news, MIME, multimedia
;;;
;;; This file is part of tm (Tools for MIME).
;;;
(defconst mime-viewer/RCS-ID
- "$Id: tm-view.el,v 7.34 1995/12/15 15:08:28 morioka Exp $")
+ "$Id: tm-view.el,v 7.36 1995/12/18 10:45:02 morioka Exp $")
(defconst mime-viewer/version (get-version-string mime-viewer/RCS-ID))
(defconst mime/viewer-version mime-viewer/version)
((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/gif")
+ (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-pic")
(method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-mag")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
((type . "video/mpeg")
(method "tm-mpeg" nil 'file 'type 'encoding 'mode 'name))
'("message/rfc822" "message/news"))
(defvar mime-viewer/default-showing-Content-Type-list
- '("text/plain" "text/richtext" "text/enriched"
+ '("text/plain" nil "text/richtext" "text/enriched"
"text/x-latex" "application/x-latex"
- "application/octet-stream" nil
- "application/pgp"
+ "application/pgp" "text/x-pgp"
+ "application/octet-stream"
"application/x-selection" "application/x-comment"))
(defvar mime-viewer/content-subject-omitting-Content-Type-list
(defvar mime-viewer/over-to-previous-method-alist nil)
(defvar mime-viewer/over-to-next-method-alist nil)
+(defvar mime-viewer/show-summary-method nil)
+
;;; @@ X-Face
;;;
(define-key mime/viewer-mode-map
"q" (function mime-viewer/quit))
(define-key mime/viewer-mode-map
+ "h" (function mime-viewer/show-summary))
+ (define-key mime/viewer-mode-map
"\C-c\C-x" (function mime-viewer/kill-buffer))
(define-key mime/viewer-mode-map
"<" (function beginning-of-buffer))
(mime-viewer/scroll-down-content 1)
)
-(defun mime-viewer/quit (&optional the-buf buf)
+(defun mime-viewer/quit ()
(interactive)
- (or the-buf
- (setq the-buf (current-buffer))
- )
- (or buf
- (setq buf (mime::preview-content-info/buffer
- (mime-preview/point-pcinfo (point))))
- )
- (let ((r (progn
- (switch-to-buffer buf)
+ (let ((r (save-excursion
+ (set-buffer (mime::preview-content-info/buffer
+ (mime-preview/point-pcinfo (point))))
(assq major-mode mime-viewer/quitting-method-alist)
)))
(if r
- (progn
- (switch-to-buffer the-buf)
- (funcall (cdr r))
- ))
- ))
+ (funcall (cdr r))
+ )))
+
+(defun mime-viewer/show-summary ()
+ (interactive)
+ (let ((r (save-excursion
+ (set-buffer
+ (mime::preview-content-info/buffer
+ (mime-preview/point-pcinfo (point)))
+ )
+ (assq major-mode mime-viewer/show-summary-method)
+ )))
+ (if r
+ (funcall (cdr r))
+ )))
(defun mime-viewer/kill-buffer ()
(interactive)