tm 7.36.
authormorioka <morioka>
Mon, 9 Mar 1998 12:26:02 +0000 (12:26 +0000)
committermorioka <morioka>
Mon, 9 Mar 1998 12:26:02 +0000 (12:26 +0000)
45 files changed:
Changes-7.36.en [new file with mode: 0644]
Makefile
README.en
doc/Makefile
doc/tm-ew-d=en.texi [new file with mode: 0644]
doc/tm-ew-d=ja.texi [new file with mode: 0644]
doc/tm-ew=en.texi [new file with mode: 0644]
doc/tm-ew=ja.texi [new file with mode: 0644]
doc/tm-gnus_en.texi
doc/tm-gnus_ja.texi
doc/tm-mh-e_en.texi [new file with mode: 0644]
doc/tm-util=en.texi [new file with mode: 0644]
doc/tm-util=ja.texi [new file with mode: 0644]
doc/tm-view-a=en.texi [new file with mode: 0644]
doc/tm-view-a=ja.texi [new file with mode: 0644]
doc/tm-view-cb=en.texi [new file with mode: 0644]
doc/tm-view-cb=ja.texi [new file with mode: 0644]
doc/tm-view-ch=en.texi [new file with mode: 0644]
doc/tm-view-ch=ja.texi [new file with mode: 0644]
doc/tm-view-cs=en.texi [new file with mode: 0644]
doc/tm-view-cs=ja.texi [new file with mode: 0644]
doc/tm-view-m=en.texi [new file with mode: 0644]
doc/tm-view-m=ja.texi [new file with mode: 0644]
doc/tm-view-p=en.texi [new file with mode: 0644]
doc/tm-view-p=ja.texi [new file with mode: 0644]
doc/tm-view=en.texi [new file with mode: 0644]
doc/tm-view=ja.texi [new file with mode: 0644]
doc/tm_en.texi
doc/tm_ja.texi
gnus/ChangeLog-7.25.en [new file with mode: 0644]
gnus/Makefile
gnus/s-path
gnus/tm-gnus4.el
gnus/tm-sgnus.el
methods/tm-au
methods/tm-file
methods/tm-image
methods/tm-plain
methods/tmdecode
mk-tm
tm-edit.el
tm-image.el [new file with mode: 0644]
tm-pgp.el
tm-setup.el
tm-view.el

diff --git a/Changes-7.36.en b/Changes-7.36.en
new file mode 100644 (file)
index 0000000..7d06eb6
--- /dev/null
@@ -0,0 +1,41 @@
+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
index 03c5e84..ec7fbfe 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,8 @@ TM_FILES = tm/README.en tm/Changes* \
                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 \
@@ -37,7 +38,7 @@ TL_FILES = tl/README.en tl/Makefile tl/mk-tl tl/*.el tl/doc/*.texi \
 
 FILES  = $(TM_FILES) $(TM_MUA_FILES) $(MEL_FILES) $(TL_FILES)
 
-TARFILE = tm7.35.tar.gz
+TARFILE = tm7.36.tar.gz
 
 
 18:
index 9c2ec10..5c5e962 100644 (file)
--- a/README.en
+++ b/README.en
@@ -1,7 +1,7 @@
 [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?
 
@@ -372,9 +372,9 @@ and its mirrors:
 
 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.
index 4ffb176..34fbfdf 100644 (file)
@@ -1,25 +1,27 @@
 #
-# $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 > $@
@@ -28,23 +30,12 @@ GOMI        = *.aux *.toc *.log \
        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)
 
@@ -55,9 +46,5 @@ dvi:  $(DVIFILES)
 $(DVIFILES):   $(TEXFILES)
 
 
-ps:    $(PSFILES)
-
-$(PSFILES):    $(DVIFILES)
-
 clean:
        rm $(GOMI)
diff --git a/doc/tm-ew-d=en.texi b/doc/tm-ew-d=en.texi
new file mode 100644 (file)
index 0000000..db8d620
--- /dev/null
@@ -0,0 +1,32 @@
+@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
diff --git a/doc/tm-ew-d=ja.texi b/doc/tm-ew-d=ja.texi
new file mode 100644 (file)
index 0000000..31858cf
--- /dev/null
@@ -0,0 +1,35 @@
+@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
diff --git a/doc/tm-ew=en.texi b/doc/tm-ew=en.texi
new file mode 100644 (file)
index 0000000..d3b5646
--- /dev/null
@@ -0,0 +1,55 @@
+@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
diff --git a/doc/tm-ew=ja.texi b/doc/tm-ew=ja.texi
new file mode 100644 (file)
index 0000000..5b72cbd
--- /dev/null
@@ -0,0 +1,58 @@
+@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
index ea98aa0..42a6814 100644 (file)
@@ -6,23 +6,20 @@
 @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
 
 
@@ -38,24 +35,26 @@ tm-gnus extends MIME features to GNUS. tm-gnus decodes RFC 1522 MIME
 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
@@ -76,13 +75,9 @@ tm-gnus expands following features to GNUS.
 @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
@@ -103,7 +98,7 @@ mime/viewer-mode is a mode to view MIME messages. You can move in a
 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
 
 
@@ -112,14 +107,10 @@ message, or play each contents included in a message.
 @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
@@ -136,121 +127,42 @@ However if you use a slow machine, or are just really impatient, you
 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
index e39e816..58b549f 100644 (file)
@@ -6,14 +6,14 @@
 @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
@@ -47,7 +47,7 @@ Note: September Gnus 
 °Ê²¼¤Ë 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
@@ -78,10 +78,11 @@ tm-gnus 
 @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
diff --git a/doc/tm-mh-e_en.texi b/doc/tm-mh-e_en.texi
new file mode 100644 (file)
index 0000000..fab0dd0
--- /dev/null
@@ -0,0 +1,116 @@
+\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
diff --git a/doc/tm-util=en.texi b/doc/tm-util=en.texi
new file mode 100644 (file)
index 0000000..c033309
--- /dev/null
@@ -0,0 +1,141 @@
+@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
diff --git a/doc/tm-util=ja.texi b/doc/tm-util=ja.texi
new file mode 100644 (file)
index 0000000..3119a19
--- /dev/null
@@ -0,0 +1,147 @@
+@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
diff --git a/doc/tm-view-a=en.texi b/doc/tm-view-a=en.texi
new file mode 100644 (file)
index 0000000..1f4c2cd
--- /dev/null
@@ -0,0 +1,86 @@
+@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
diff --git a/doc/tm-view-a=ja.texi b/doc/tm-view-a=ja.texi
new file mode 100644 (file)
index 0000000..0c0e1b9
--- /dev/null
@@ -0,0 +1,94 @@
+@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
diff --git a/doc/tm-view-cb=en.texi b/doc/tm-view-cb=en.texi
new file mode 100644 (file)
index 0000000..5fda349
--- /dev/null
@@ -0,0 +1,57 @@
+@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
diff --git a/doc/tm-view-cb=ja.texi b/doc/tm-view-cb=ja.texi
new file mode 100644 (file)
index 0000000..73e72db
--- /dev/null
@@ -0,0 +1,50 @@
+@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
diff --git a/doc/tm-view-ch=en.texi b/doc/tm-view-ch=en.texi
new file mode 100644 (file)
index 0000000..87e6a0a
--- /dev/null
@@ -0,0 +1,68 @@
+@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
diff --git a/doc/tm-view-ch=ja.texi b/doc/tm-view-ch=ja.texi
new file mode 100644 (file)
index 0000000..68ffdda
--- /dev/null
@@ -0,0 +1,72 @@
+@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
diff --git a/doc/tm-view-cs=en.texi b/doc/tm-view-cs=en.texi
new file mode 100644 (file)
index 0000000..7918e2f
--- /dev/null
@@ -0,0 +1,66 @@
+@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
diff --git a/doc/tm-view-cs=ja.texi b/doc/tm-view-cs=ja.texi
new file mode 100644 (file)
index 0000000..767afc2
--- /dev/null
@@ -0,0 +1,70 @@
+@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
diff --git a/doc/tm-view-m=en.texi b/doc/tm-view-m=en.texi
new file mode 100644 (file)
index 0000000..ca32fd8
--- /dev/null
@@ -0,0 +1,262 @@
+@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
diff --git a/doc/tm-view-m=ja.texi b/doc/tm-view-m=ja.texi
new file mode 100644 (file)
index 0000000..9a9d570
--- /dev/null
@@ -0,0 +1,249 @@
+@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
diff --git a/doc/tm-view-p=en.texi b/doc/tm-view-p=en.texi
new file mode 100644 (file)
index 0000000..6973930
--- /dev/null
@@ -0,0 +1,45 @@
+@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
diff --git a/doc/tm-view-p=ja.texi b/doc/tm-view-p=ja.texi
new file mode 100644 (file)
index 0000000..b6265f6
--- /dev/null
@@ -0,0 +1,67 @@
+@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
diff --git a/doc/tm-view=en.texi b/doc/tm-view=en.texi
new file mode 100644 (file)
index 0000000..50b7bc8
--- /dev/null
@@ -0,0 +1,281 @@
+@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
diff --git a/doc/tm-view=ja.texi b/doc/tm-view=ja.texi
new file mode 100644 (file)
index 0000000..2a53dcd
--- /dev/null
@@ -0,0 +1,292 @@
+@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
index cbbfb0c..4109592 100644 (file)
@@ -6,7 +6,7 @@
 @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
 
 
@@ -82,7 +82,7 @@ The tm package includes the modules listed below.
 @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
@@ -123,7 +123,7 @@ US-ASCII and ISO-8859-1 can be used if you use the XEmacs.
 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
@@ -327,11 +327,11 @@ automatically in default 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
index fbf6148..325b3e5 100644 (file)
@@ -6,7 +6,7 @@
 @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
 
 
@@ -382,11 +382,11 @@ mime-setup.el 
 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
diff --git a/gnus/ChangeLog-7.25.en b/gnus/ChangeLog-7.25.en
new file mode 100644 (file)
index 0000000..f60d89a
--- /dev/null
@@ -0,0 +1,10 @@
+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])
index 68a7466..8e9bd81 100644 (file)
@@ -27,7 +27,7 @@ TMDIR19_29 = $(DATADIR19_29)/$(EMACS_PREFIX)/site-lisp
 
 FILES  = tm/gnus/*.el tm/doc/tm-gnus*.texi
 
-TARFILE = tm-gnus7.24.tar
+TARFILE = tm-gnus7.25.tar
 
 
 gnus:
index 711cba2..2c64d98 100644 (file)
@@ -7,4 +7,4 @@
 ;;;
 
 ;; please edit
-(add-path "sgnus-0.22/lisp" 'all-paths)
+(add-path "sgnus-0.24/lisp" 'all-paths)
index 8b26e45..d416d59 100644 (file)
@@ -8,7 +8,7 @@
 ;;; 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).
@@ -26,6 +26,8 @@
 ;;; 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)
@@ -35,7 +37,7 @@
 ;;;
 
 (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"))
@@ -86,7 +88,9 @@ This variable is set to `gnus-show-mime'.")
          (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 ()
@@ -113,6 +117,9 @@ This variable is set to `gnus-show-mime'.")
     (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))
     )))
 
 
@@ -188,7 +195,9 @@ This variable is set to `gnus-show-mime'.")
        (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
@@ -219,4 +228,3 @@ This variable is set to `gnus-show-mime'.")
 ;;;
 
 (provide 'tm-gnus4)
-
index 555f41e..70c5673 100644 (file)
@@ -7,7 +7,7 @@
 ;;; 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).
@@ -40,7 +40,7 @@
 ;;;
 
 (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"))
@@ -141,6 +141,9 @@ This variable is set to `gnus-show-mime'.")
    (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))
    ))
 
 
index fe65855..79ce71b 100755 (executable)
@@ -1,4 +1,8 @@
-#!/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
@@ -10,20 +14,21 @@ else
   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
index 4f85b7c..bac4bfa 100755 (executable)
@@ -1,14 +1,20 @@
-#!/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
index 76ae5e3..4a0336b 100755 (executable)
@@ -23,6 +23,9 @@ if [ "$5" = "" ]; then
        "image/x-pic")
                filename="$TM_TMP_DIR/mime$$.pic"
                ;;
+       "image/x-mag")
+               filename="$TM_TMP_DIR/mime$$.mag"
+               ;;
        *)
                filename="$TM_TMP_DIR/mime$$.img"
                ;;
index da0c14e..d53741e 100755 (executable)
@@ -1,4 +1,8 @@
-#!/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
@@ -9,20 +13,18 @@ else
        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
index 4c4ac0b..d720bfc 100755 (executable)
@@ -1,15 +1,29 @@
-#!/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)
@@ -20,6 +34,5 @@ case "$1" in
        ;;
 esac
 
-/bin/rm $2
-
 echo "$2 was removed."
+
diff --git a/mk-tm b/mk-tm
index 27221b1..8fa3384 100644 (file)
--- a/mk-tm
+++ b/mk-tm
     (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")
index 5d2efdc..909d2f1 100644 (file)
@@ -7,7 +7,7 @@
 
 ;; 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))
 
@@ -247,6 +247,7 @@ To insert a signature file specified by mime-signature-file
      ("jpeg")
      ("tiff")
      ("x-pic")
+     ("x-mag")
      ("x-xwd")
      ("x-xbm")
      )
@@ -261,27 +262,42 @@ To insert a signature file specified by mime-signature-file
     ("\\.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")
@@ -398,8 +414,7 @@ Each elements are regexp of field-name. [tm-edit.el]")
   "*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)
@@ -1494,7 +1509,7 @@ while if FLAG is `\\^M' (control-M) the text is hidden."
                       ))
                ((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
@@ -1610,6 +1625,53 @@ Content-Transfer-Encoding: base64
            )
        ))))
 
+(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
diff --git a/tm-image.el b/tm-image.el
new file mode 100644 (file)
index 0000000..b81bf86
--- /dev/null
@@ -0,0 +1,146 @@
+;;;
+;;; 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)
index 107e848..1d2c1f0 100644 (file)
--- a/tm-pgp.el
+++ b/tm-pgp.el
@@ -8,7 +8,7 @@
 ;;; 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
index f6e23bc..1e1ec65 100644 (file)
@@ -1,5 +1,5 @@
 ;;;
-;;; $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
index badb800..5c27012 100644 (file)
@@ -8,7 +8,7 @@
 ;;; 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).
@@ -44,7 +44,7 @@
 ;;;
 
 (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")
@@ -77,6 +77,8 @@
      (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
@@ -322,6 +324,8 @@ Each elements are regexp of field-name. [tm-view.el]")
 (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
 ;;;
@@ -739,6 +743,8 @@ The compressed face will be piped to this command.")
       (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))
@@ -1037,25 +1043,29 @@ listed in key order:
   (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)