Info file: tm-view-ja.info,    -*-Text-*-
produced by `texinfo-format-buffer'
from filebuffer `*scratch*'
using `texinfmt.el' version 2.41 of  1 Mar 2005.


File: tm-view-ja.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)

tm-view 7.80 Reference Manual（日本語版）
*****************************************


This file documents tm-view, a MIME Viewer for GNU Emacs.

GNU Emacs 用の MIME Viewer である `tm-view' について説明します。

* Menu:

* Introduction::                tm-view って何？
* MIME display::                mime/viewer-mode の画面構成
* mime/viewer-mode::            mime/viewer-mode での操作
* method::                      再生処理の実現
* Two buffers for an article::  raw-article-buffer と preview-buffer
* API::                         MIME message の decode に関する関数
* Acknowledgments::             謝辞
* Concept Index::               概念索引
* Function Index::              関数索引
* Variable Index::              変数索引



File: tm-view-ja.info, Node: Introduction, Next: MIME display, Prev: Top, Up: Top

tm-view って何？
****************

tm-view は GNU Emacs で動作する汎用的な MIME viewer です。

tm-view は `mime/viewer-mode' (*Note mime/viewer-mode::) という MIME
message を見るための major-mode を MUA (*Note (tm-ja)MUA::) に対して提
供します。MUA の設計者はこの mode を利用することでその MUA に MIME 機
能を付加することができます。

tm-view は MIME message を閲覧するための user interface の核であり、そ
の上で各 content-type (*Note (tm-ja)content-type::) を扱うための
*method* (*Note method::) と呼ばれるプログラムを動作させます。また、
MIME message の表示の仕方を決める *filter* (*Note Two buffers for an
article::) と呼ばれるプログラムを起動時に呼び出します。method とfilter
を tm-view に組み込む事によって、`mime/viewer-mode' でさまざまな MIME
content-type を扱う事ができます。




File: tm-view-ja.info, Node: MIME display, Next: mime/viewer-mode, Prev: Introduction, Up: Top

mime/viewer-mode の画面構成
***************************

mime/viewer-mode (*Note mime/viewer-mode::) では各 part に対して

     	[content-button]
     	(content-header)

     	(content-body)
     	(content-separator)

という情報を表示します。これらは条件に従って design を変更したり、表示
を抑制することができます。

以下に、表示例を示します。


     From: morioka@jaist.ac.jp (守岡 知彦 / MORIOKA Tomohiko)
     Subject: Re: 質問？
     Newsgroups: zxr.message.mime
     Date: 22 Oct 93 11:02:44
     Mime-Version: 1.0
     Organization: Japan Advanced Institute of Science and Technology,
             Ishikawa, Japan

     [1  (text/plain)]
       MIME-Edit mode における、MIME message の作り方。

       C-c C-x ? を押すと help が出てくる。

     C-c C-x C-t	insert a text message.
     C-c C-x TAB	insert a (binary) file.
     C-c C-x C-e	insert a reference to external body.
     C-c C-x C-v	insert a voice message.
     C-c C-x C-y	insert a mail or news message.
     C-c C-x RET	insert a mail message.
     C-c C-x C-s	insert a signature file at end.
     C-c C-x t	insert a new MIME tag.
     C-c C-x a	enclose as multipart/alternative.
     C-c C-x p	enclose as multipart/parallel.
     C-c C-x m	enclose as multipart/mixed.
     C-c C-x d	enclose as multipart/digest.
     C-c C-x s	enclose as PGP signed.
     C-c C-x e	enclose as PGP encrypted.
     C-c C-x C-k	insert PGP public key.
     C-c C-x C-p	preview editing MIME message.
     ...

     って訳で、C-c C-x C-i を押して、挿入したい binary file を指定します。

       binary file の MIME encoding には、普通、Base64 を指定します。

     [2  (image/gif)]

     [3  (text/plain)]

       こんな風に、絵入り message のでき上がり。

     〓〓〓〓〓〓〓〓〓〓〓 ロシアン・ティーを一杯。 〓〓〓〓〓〓〓〓〓〓〓
     〓〓〓〓〓  ☆ ジャムではなくマーマレードでもなく蜂蜜で ☆  〓〓〓〓〓
     〓〓〓〓〓         МОРいОКА  ТОМОХИКО         〓〓〓〓〓
     〓〓〓〓〓〓〓  Internet E-mail: <morioka@jaist.ac.jp>  〓〓〓〓〓〓〓



* Menu:

* content-button::
* content-header::
* content-body::
* content-separator::



File: tm-view-ja.info, Node: content-button, Next: content-header, Prev: MIME display, Up: MIME display

content-button
==============

*content-button* は part の先頭にあって、その part に関する大まかな情
報を表示する部分です。

標準では

             [1.3 test (text/plain)]

のような感じに表示されます。

最初の数字は message 中のこの part の位置を節番号のように表したもので、
*content-number* と呼びます。

２番目の文字列は表題を表します。この情報は、

  1. Content-Type field (*Note (tm-ja)Content-Type field::) の name
     paramaterもしくは x-name parameter に書かれた file 名
  2. Content-Description field (*Note (tm-ja)Content-Description
     field::) もしくは Subject field に書かれた表題
  3.  uuencode の場合の file 名

から作ります。どれも存在しない場合は空白が表示されます。

３番目の括弧の中の情報はその part の content-type/subtype を表します。
非MIME part の場合、`nil' が表示されます。

この content-button は content-header (*Note content-header::),
content-body (*Note content-body::) を表示しない場合、icon のような役
割を果たします。例えば、

             [2  (image/gif)]

の上で `v' を押せばここに入っている絵が表示されます。

また、mouse 操作が可能な場合、content-button を第２ボタン（3 button
mouse の場合、中央のボタン）で押せば、同様にその絵が表示されます。
(*Note mime/viewer-mode::)

ところで、content-button を表示するのは鬱陶しい場合があるので、
content-button の表示を条件によって抑制することができます。


 -- Variable: mime-viewer/content-button-ignored-ctype-list

     content-button を表示しない content-type を要素とする list.





File: tm-view-ja.info, Node: content-header, Next: content-body, Prev: content-button, Up: MIME display

content-header
==============

*content-header* はある part の header を表示する部分です。しかし、全
ての part の content-header を表示するのは鬱陶しいので、以下のような
mechanism によって表示するかしないかを決めています。

ある part の reversed-content-number を関数
`mime-viewer/header-visible-p' に与えた時の返り値が `t' になる場合、そ
の part の content-header が表示されます。

この判定関数は、一番上の part でなく、その part の親の content-type
(*Note (tm-ja)content-type::) が変数
`mime-viewer/childrens-header-showing-Content-Type-list' で指定されて
いる場合に `t' を返します。

この条件を変えたい場合は、この関数を再定義して下さい。但し、標準では、
変数 `mime-viewer/childrens-header-showing-Content-Type-list' を参照し
ますが、再定義した場合、この変数の有効性は保証されないので注意して下さ
い。

content-header が表示される場合、content-header は
*content-header-filter* と呼ばれる program によって整形されます。
content-header-filter は raw-article-buffer (*Note
raw-article-buffer::)の major-mode を key として変数
`mime-viewer/content-header-filter-alist' から探されます。もし、
content-header-filter が見つからなかった場合、関数
`mime-viewer/default-content-header-filter' が呼ばれます。


 -- Variable: mime-viewer/childrens-header-showing-Content-Type-list

     ある part の子に当たる content の content-header を表示すべき
     Content-Type を収めた list. 既定値は `"message/rfc822"' である。


     この変数は関数 `mime-viewer/header-visible-p' によって参照される。



 -- Function: mime-viewer/header-visible-p RCNUM CINFO &optional CTYPE

     content-info CINFO 中の reversed-content-number が RCNUM である
     part の header が表示される場合、`t' を返す。その part の
     content-type があらかじめわかっている場合、CTYPE に引数として渡す
     ことができる。



 -- Variable: mime-viewer/content-header-filter-alist

     raw-article-buffer の major-mode を key とした連想リストで、値部
     にはcontent-header-filter が入っている。



 -- Function: mime-viewer/default-content-header-filter

     ある part の content-header を表示すべき時、変数
     `mime-viewer/content-header-filter-alist' の中に
     content-header-filter が見つからなかった場合に呼び出される。

     変数 `mime-viewer/ignored-field-regexp' を参照する。



 -- Variable: mime-viewer/ignored-field-list

     content-header を表示する時に、表示しない field を指定する。

     正規表現の list になっており、この値を元に変数
     `mime-viewer/ignored-field-regexp' が作られる。

     この変数は直接操作せず、関数 `tm:add-fields' や
     `tm:delete-fields' を使って操作する。





File: tm-view-ja.info, Node: content-body, Next: content-separator, Prev: content-header, Up: MIME display

content-body
============

*content-body* は part の内容を表示する部分です。

全ての part の内容を表示できるとは限らないし、また、表示したくない
partも存在するので、以下のような方法で表示するかしないかを決めています。


ある part の content-body を表示するかどうかは、関数
`mime-viewer/body-visible-p' が `t' になるかどうかで決まります。標準で
は、ある part の content-type が変数
`mime-viewer/default-showing-Content-Type-list' に設定されている時に表
示されます。

ある part の content-body が表示される時、preview buffer には part の
内容を *content-filter* と呼ばれる program によって整形されたものが表
示されます。呼ばれる content-filter は raw-article-buffer (*Note
raw-article-buffer::) の major-mode を key として変数
`mime-viewer/content-filter-alist' から探されます。もし、この変数に登
録されていなかった場合、関数 `mime-viewer/default-content-filter'が呼
ばれます。


 -- Variable: mime-viewer/default-showing-Content-Type-list

     content-body を表示すべき content-type を要素とする list.



 -- Function: mime-viewer/body-visible-p RCNUM CINFO &optional CTYPE

     reversed-content-number が RCNUM である part が表示される場合、
     `t' を返す。その part の content-type があらかじめわかっている場合、
     CTYPE に引数として渡すことができる。



 -- Variable: mime-viewer/content-filter-alist

     raw-article-buffer の major-mode を key とした連想リストで、値部
     にはcontent-filter が入っている。



 -- Function: mime-viewer/default-content-filter RCNUM CINFO CTYPE PARAMS SUBJ

     ある part の content-body を表示すべき時、変数
     `mime-viewer/content-filter-alist' の中に content-filter が見つか
     らなかった場合に呼び出される。

     標準では何もしない。






File: tm-view-ja.info, Node: content-separator, Prev: content-body, Up: MIME display

content-separator
=================

*content-separator* は part の一番最後に part 間の境目を明らかにするた
めに表示されます。

content-separator は関数 `mime-viewer/default-content-separator'によっ
て表示されます。標準では、content-header も content-body も表示されな
い場合のみ、改行を表示します。

content-separator の設定を変更したい場合は、この関数を再定義して下さい。



 -- Function: mime-viewer/default-content-separator RCNUM CINFO CTYPE PARAMS SUBJ

     content-number が CNUM である part の content-separator を表示す
     る。標準では、content-header も content-body も表示されない場合の
     み、改行を表示する。





File: tm-view-ja.info, Node: mime/viewer-mode, Next: method, Prev: MIME display, Up: Top

mime/viewer-mode での操作
*************************

mime/viewer-mode には以下の機能があります。

`u'
     上の part に戻る（message の一番上の part でこれを行なうと
     Summary mode に戻る (*1)）

`p'
     前の part に移動する

`M-TAB'
     前の part に移動する

`n'
     次の part に移動する

`TAB'
     次の part に移動する

`SPC'
     scroll up する

`M-SPC'
     scroll down する

`DEL'
     scroll down する

`RET'
     次の行に移動する

`M-RET'
     前の行に移動する

`M-RET'
     前の行に移動する

`<'
     message の先頭に移動する

`>'
     message の末尾に移動する

`v'
     part を再生する (*2)

`e'
     part から file を取り出す (*2)

`C-c C-p'
     part を印刷する (*2)

`f'
     message 中の X-Face を表示する

`mouse-button-2'
     preview-buffer 中の mouse button を起動する

     content-button を押せば、その part が再生される(*2)

     URL-button を押せば、その WWW browser が起動される


*[注意]*

     (*1) tm-MUA で tm-view の設定をしていない場合、Summary mode には
     戻りません。

     (*2) 実際の動作は対応する method に依ります。





File: tm-view-ja.info, Node: method, Next: Two buffers for an article, Prev: mime/viewer-mode, Up: Top

再生処理の実現
**************

`mime/viewer-mode' では、各 part に対して、play (`v'), extract (`e'),
print (`C-c C-p') という操作を行なうことができます。こうした操作のこと
を『（part に対する）decode 操作』と呼ぶことにします。また、play,
extract, print という decode 操作の種類のことを*decoding-mode* と呼ぶ
ことにします。

decode 操作が行なわれた時、その part の content-type (*Note
(tm-ja)content-type::) などの条件やその場の環境に応じて実際にその操作
を実行する手続きが呼ばれます。この手続きのことを *method* と呼びます。

method には、Emacs Lisp で書かれた *内部 method* と、外部 program で実
現された *外部 method* があります。内部 method は Emacs の機能を使って
きめ細かい処理を行なうことができます。外部 method は非同期プロセス呼び
出しを使って実現されているので、実行中待たされずにすみます。このため、
静止画や動画などの巨大な data を再生するのに良いでしょう。


* Menu:

* decoding-condition::          part の再生に関する条件の設定
* environment variables::       環境変数



File: tm-view-ja.info, Node: decoding-condition, Next: environment variables, Prev: method, Up: method

part の再生に関する条件の設定
=============================

tm-view は decode 操作が行なわれると、変数
`mime/content-decoding-condition' からその時の条件に合致した methodを
捜し出して、それを呼び出します。

変数 `mime/content-decoding-condition' は

             (条件1 条件2 ...)

という形をした list で、各条件は

             ((field-type_1 . value_1)
              (field-type_2 . value_2)
              ...)

という形の連想 list になっています。

例えば、text/plain (*Note (tm-ja)text/plain::) の時、tm-plain を起動す
る時、

             ((type . "text/plain")
              (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))

という条件を書きます。この method の value 部の書式については後で詳し
く述べます。

この条件は content-type (*Note (tm-ja)content-type::) が text/plain で
あるpart なら全ての decoding-mode で有効です。しかし、

             ((type . "text/plain")
              (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
              (mode . "play"))

なら、play mode の時しか有効になりません。

逆に、

             ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
              (mode . "play"))

なら、全ての content-type の play mode で有効になります。

こうして各条件を前から見て行き、最初に有効になった条件が実行されます。


* Menu:

* method value::                method の値部の書式
* Example of decoding-condition::  decoding-condition の例



File: tm-view-ja.info, Node: method value, Next: Example of decoding-condition, Prev: decoding-condition, Up: decoding-condition

method の値部の書式
-------------------

decode-condition の method field は

             (method . SYMBOL)

か

             (method  文字列  FLAG  引数1  引数2  ...)

という形をしています。

前者は内部 method を指定するための形式で、decode 操作が行なわれた時、
SYMBOL という関数が関数呼び出しによって内部 method として呼び出されま
す。


後者は外部 method を指定するための形式で、decode 操作が行なわれた時、
文字列で指定された外部 program が非同期プロセス呼び出しによって外部
methodとして呼び出されます。

外部 method を指定する場合の method field の書式は以下の通りです。


`文字列'
     外部 method の名前

`FLAG'
     `t' なら content-header も外部 method に渡す。

     `nil' なら content-body のみを渡す。

`引数列'
     外部 method の引数


また、外部 method の引数は次のような形式で書きます。

`文字列'
     その文字列を渡す

`'SYMBOL'
     SYMBOL を key とした decoding-condition の値を渡す

`'文字列'
     文字列を key とした decoding-condition の値を渡す


'SYMBOL で指定できるものには、

`'file'
     part の情報を渡すための file 名

`'type'
     Content-Type field の content-type/subtype

`'encoding'
     Content-Transfer-Encoding field の field body

`'mode'
     decoding-mode

`'name'
     file に落す場合の file 名


などがあり、`'文字列' では Content-Type field の parameterの値が指定で
きます。




File: tm-view-ja.info, Node: Example of decoding-condition, Prev: method value, Up: decoding-condition

decoding-condition の例
-----------------------

以下に decoding-condition の設定例を示します。

     (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"))
         ))


例えば、「全部 metamail 使うんや」という場合、

     (setq mime/content-decoding-condition
           '(
             ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
            ))

とすれば OK です。

工夫すれば、かなり複雑な条件が書けるでしょう。

以下に、decoding-condition を設定するための有用な関数を紹介します。


 -- Function: set-atype SYMBOL ALIST

     SYMBOL に条件 ALIST を追加します。

     *[例]*

               (set-atype 'mime/content-decoding-condition
               	   '((type . "message/external-body")
               	     ("access-type" . "anon-ftp")
               	     (method . mime/decode-message/external-ftp)
               	     ))





File: tm-view-ja.info, Node: environment variables, Prev: decoding-condition, Up: method

環境変数
========

以下に tm-view の標準 method が参照する環境変数を示します。

TM_TMP_DIR
     一時的に作成される file や file 出力する場合の default の出力先と
     して用いられる directory を指定する。省略された場合、`/tmp/' が用
     いられる。

VIDEO_DITHER
     mpeg_play での dither のかけ方を指定する。既定値は `gray'.

TM_WWW_BROWSER
     WWW browser を指定する。既定値は `netscape'.






File: tm-view-ja.info, Node: Two buffers for an article, Next: API, Prev: method, Up: Top

raw-article-buffer と preview-buffer
************************************

tm-view は、MIME 処理を行なう前の生の message が入っている
*raw-article-buffer* とその内容を user に簡潔に表示し、user が操作する
ための *preview-buffer* という２つの buffer を管理します。
raw-article-buffer の major-mode はもともとの MUA の article 表示用の
major-mode であり、preview-buffer の major-mode は`mime/viewer-mode'
(*Note mime/viewer-mode::) となります。

`mime/viewer-mode' を実行すると、tm-view はまず raw-article-bufferの内
容を解析し、その message の構造を raw-article-buffer の buffer local変
数 `mime::article/content-info' に記録します。

次に、この結果を元に raw-article-buffer に対応する preview-buffer を作
ります。この際、content-type に応じて、part 単位で header や body を加
工することができます。この header を加工するプログラムを
*header-filter* (*Note content-header::), body を加工するプログラムを
*content-filter* (*Note content-body::) と呼び、これらを総称して
*filter* と呼びます。

preview-buffer を作成する時に、message の表示上の構造を記録した
preview-buffer の buffer local 変数 `mime::preview/content-list' が作
られます。tm-view は raw-article-buffer 上の
`mime::article/content-info' と preview-buffer 上の
`mime::preview/content-list' を用いて message を管理します。

*[注意]*この説明書では、Content-Type field の
     content-type/subtype のことを称して "content-type" と呼びます。



* Menu:

* raw-article-buffer::          raw-article-buffer の buffer local 変数
* preview-buffer::              preview-buffer の buffer local 変数



File: tm-view-ja.info, Node: raw-article-buffer, Next: preview-buffer, Prev: Two buffers for an article, Up: Two buffers for an article

raw-article-buffer の buffer local 変数
=======================================

 -- Structure: mime::content-info RCNUM POINT-MIN POINT-MAX TYPE PARAMETERS ENCODING CHILDREN

     raw-article-buffer における MIME part に関する情報を格納するため
     の構造体。単に *content-info* とも呼ぶ。

     この構造体を参照するには、`mime::content-info/スロット名' という
     content-info を引数にとる関数を用いる。

     この構造体のスロットは以下の通りである：

     RCNUM
          "reversed content-number" (list)

     POINT-MIN
          raw-article-buffer における先頭 point

     POINT-MAX
          raw-article-buffer における末尾 point

     TYPE
          content-type/sub-type（文字列、または、nil）

     PARAMETERS
          Content-Type field の parameter （連想 list）

     ENCODING
          Content-Transfer-Encoding（文字列、または、nil）

     CHILDREN
          この part に含まれる part（content-info の list）


     ある part が multipart もしくは message/rfc822 などの別の part を
     含むような part であった場合、CHILDREN に別の part の
     content-info が含まれる事によって、content-info は木構造になる。


 -- Variable: mime::article/content-info

     raw-article-buffer を MIME message として解析した結果
     (content-info)


 -- Variable: mime::article/preview-buffer

     raw-article-buffer に対応する preview-buffer.


 -- Function: mime-article/point-content-number POINT &optional CINFO

     content-info CINFO で管理される領域において、POINT に対応する
     content-number を返す。

     CINFO が省略された場合は、`mime::article/content-info'が用いられ
     る。


 -- Function: mime-article/rcnum-to-cinfo RCNUM &optional CINFO

     content-info CINFO で管理される領域において、
     reversed-content-number RCNUM に対応する content-info を返す。


     CINFO が省略された場合は、`mime::article/content-info' が用いられ
     る。


 -- Function: mime-article/cnum-to-cinfo RCNUM &optional CINFO

     content-info CINFO で管理される領域において、content-number RCNUM
     に対応する content-info を返す。

     CINFO が省略された場合は、`mime::article/content-info' が用いられ
     る。


 -- Function: mime/flatten-content-info &optional CINFO

     content-info CINFO 中に納められた全 part の content-info の list
     を返す。

     CINFO が省略された場合は、`mime::article/content-info' が用いられ
     る。





File: tm-view-ja.info, Node: preview-buffer, Prev: raw-article-buffer, Up: Two buffers for an article

preview-buffer の buffer local 変数
===================================

 -- Variable: mime::preview/mother-buffer

     この preview-buffer の親に相当する buffer.


 -- Structure: mime::preview-content-info POINT-MIN POINT-MAX BUFFER CONTENT-INFO

     preview-buffer における MIME content に関する情報を格納するための
     構造体。単に *preview-content-info* とも呼ぶ。

     この構造体を参照するには、`mime::content-info/スロット名' という
     content-info を引数にとる関数を用いる。

     この構造体のスロットは以下の通りである。

     POINT-MIN
          preview-buffer における先頭 point

     POINT-MAX
          preview-buffer における末尾 point

     BUFFER
          この part に対応する raw-article-buffer

     CONTENT-INFO
          この part に対応する content-info



 -- Variable: mime::preview/content-list

     この preview-buffer の構造をあらわす preview-content-info の
     list.

 -- Variable: mime::preview/article-buffer

     この preview-buffer に対応する raw-article-buffer.


 -- Variable: mime::preview/original-major-mode

     この preview-buffer のもとになった buffer の major-mode.


 -- Variable: mime::preview/original-window-configuration

     `mime/viewer-mode' を実行して、この preview-buffer 作る直前の
     window-configuration.


 -- Function: mime-preview/point-pcinfo POINT &optional PCL

     preview-content-info PCL で管理される preview-buffer 中の領域にお
     いて、POINT に対応する part の preview-content-info を返す。


     CINFO が省略された場合は、`mime::preview/content-list' が用いられ
     る。





File: tm-view-ja.info, Node: API, Next: Acknowledgments, Prev: Two buffers for an article, Up: Top

MIME message の decode に関する関数
***********************************

tm-view の提供する関数を各 MUA (*Note (tm-ja)MUA::) に組み込む事によっ
て、各 MUA に MIME 再生機能を付加する事ができます。

tm-view が各 MUA に提供する関数は、MIME preview を行うための関数
`mime/viewer-mode' と encoded-word (*Note (tm-ja)encoded-word::) を
decode するための関数群です。


* Menu:

* API about MIME preview::      MIME preview に関する関数
* encoded-word decoding::       encoded-word の復元



File: tm-view-ja.info, Node: API about MIME preview, Next: encoded-word decoding, Prev: API, Up: API

MIME preview に関する関数
=========================


 -- Command: mime/viewer-mode &optional MOTHER CTL ENCODING IBUF OBUF MOTHER-KEYMAP

     IBUF を MIME message として解析して、その内容を閲覧するための
     preview-buffer を OBUF に作成し、`mime/viewer-mode' (*Note
     mime/viewer-mode::)に入ります。

     IBUF が省略された場合、current buffer を用います。

     MOTHER は、解析の対象とする raw-article-buffer が message/partial
     形式の分割された message を結合して作成した場合などにおける元の
     bufferを指定するために使います。

     CTL は Content-Type field (*Note (tm-ja)Content-Type field::) の
     field-body を `mime/Content-Type' の出力正式にしたものを入れます。
     この引数がある場合、raw-article-buffer の Content-Type field より
     もこの引数を優先します。

     ENCODING は Content-Transfer-Encoding field の field-body を入れ
     ます。この引数がある場合、raw-article-buffer の
     Content-Transfer-Encoding field よりもこの引数を優先します。

     MOTHER-KEYMAP が指定された場合、`mime/viewer-mode' の keymapはこ
     の keymap に加えたものとなります。





File: tm-view-ja.info, Node: encoded-word decoding, Prev: API about MIME preview, Up: API

encoded-word の復元
===================

tm-view は RFC 1522 で規定された encoded-word (*Note
(tm-ja)encoded-word::) を decode するための関数を持っています。

*[Memo]*旧 `tiny-mime.el' にあった RFC 1522 encoded-word を
     decodeするための関数群は tm-view に引き継がれました。



 -- Command: mime/decode-message-header

     current buffer の message header 中の encoded-word を decode しま
     す。


     壊れていたり、不正だったり、decode できない MIME charset (*Note
     (tm-ja)MIME charset::) が用いられている encoded-word は decode さ
     れずそのまま残されます。



 -- Command: mime-eword/decode-region START END &optional UNFOLDING MUST-UNFOLD

     START と END で囲まれた領域中の encoded-word を decode します。

     壊れていたり、不正だったり、decode できない MIME charset (*Note
     (tm-ja)MIME charset::) が用いられている encoded-word は decode さ
     れずそのまま残されます。

     UNFOLDING が non-nil の場合、折り返された field を unfolding しま
     す。

     MUST-FOLD が non-nil の場合、encoded-word の decode 結果に折り返
     し、もしくは、改行が含まれている場合、unfold し、改行を除きます。



 -- Function: mime-eword/decode-string STRING &optional MUST-UNFOLD

     STRING 中の encoded-word を decode した文字列を返します。

     壊れていたり、不正だったり、decode できない MIME charset (*Note
     (tm-ja)MIME charset::) が用いられている encoded-word は decode さ
     れずそのまま出力されます。

     STRING が折り返されている場合、encoded-word を decode する前に
     STRING は unfold されます。

     MUST-FOLD が non-nil の場合、encoded-word の decode 結果に折り返
     し、もしくは、改行が含まれていても、それらは unfold され単体の改
     行文字も取り除かれます。





File: tm-view-ja.info, Node: Acknowledgments, Next: Concept Index, Prev: API, Up: Top

謝辞
****

最初に、私が tm-view を最初に作った時に、厳しい注文と有益な助言を下さ
り、その設計に多大な与えられた升谷保博さんに感謝します。

次に、`tm-ew-d.el' と `mel-b.el' の前身に当たる`mime.el'を書き、その配
布と改造をお許し下さった榎並嗣智さんに感謝します。

また、LaTeX 用の内部 method と message/partial 用の自動結合 method を
提供して下さった岡部寿男さん、tar archive 用の内部 method を提供して下
さった上野博さんに感謝します。

最後に、beta test に協力して下さった日本語版、英語版双方の tm mailing
list の member に感謝します。




File: tm-view-ja.info, Node: Concept Index, Next: Function Index, Prev: Acknowledgments, Up: Top

概念索引
********


* Menu:

* 外部 method:                  method.                 (line   5)
* 内部 method:                  method.                 (line   5)
* content-body:                 content-body.           (line   5)
* content-button:               content-button.         (line   5)
* content-filter:               content-body.           (line   5)
* content-filter:               Two buffers for an article.  (line   5)
* content-header:               content-header.         (line   5)
* content-header-filter:        content-header.         (line   5)
* content-info:                 raw-article-buffer.     (line   5)
* content-number:               content-button.         (line   5)
* content-separator:            content-separator.      (line   5)
* decoding-mode:                method.                 (line   5)
* filter:                       Introduction.           (line   5)
* filter:                       Two buffers for an article.  (line   5)
* header-filter:                Two buffers for an article.  (line   5)
* method:                       Introduction.           (line   5)
* method:                       method.                 (line   5)
* preview-buffer:               Two buffers for an article.  (line   5)
* preview-content-info:         preview-buffer.         (line   5)
* raw-article-buffer:           Two buffers for an article.  (line   5)



File: tm-view-ja.info, Node: Function Index, Next: Variable Index, Prev: Concept Index, Up: Top

関数索引
********


* Menu:

* mime-article/cnum-to-cinfo:   raw-article-buffer.     (line  75)
* mime-article/point-content-number: raw-article-buffer.  (line  56)
* mime-article/rcnum-to-cinfo:  raw-article-buffer.     (line  65)
* mime::content-info:           raw-article-buffer.     (line   8)
* mime/decode-message-header:   encoded-word decoding.  (line  16)
* mime-eword/decode-region:     encoded-word decoding.  (line  28)
* mime-eword/decode-string:     encoded-word decoding.  (line  44)
* mime/flatten-content-info:    raw-article-buffer.     (line  84)
* mime::preview-content-info:   preview-buffer.         (line  13)
* mime-preview/point-pcinfo:    preview-buffer.         (line  58)
* mime-viewer/body-visible-p:   content-body.           (line  35)
* mime-viewer/default-content-filter: content-body.     (line  50)
* mime-viewer/default-content-header-filter: content-header.  (line  61)
* mime-viewer/default-content-separator: content-separator.  (line  19)
* mime-viewer/header-visible-p: content-header.         (line  45)
* mime/viewer-mode:             API about MIME preview.  (line   9)
* set-atype:                    Example of decoding-condition.  (line  54)



File: tm-view-ja.info, Node: Variable Index, Prev: Function Index, Up: Top

変数索引
********


* Menu:

* mime::article/content-info:   raw-article-buffer.     (line  45)
* mime::article/preview-buffer: raw-article-buffer.     (line  51)
* mime::preview/article-buffer: preview-buffer.         (line  42)
* mime::preview/content-list:   preview-buffer.         (line  37)
* mime::preview/mother-buffer:  preview-buffer.         (line   8)
* mime::preview/original-major-mode: preview-buffer.    (line  47)
* mime::preview/original-window-configuration: preview-buffer.  (line  52)
* mime-viewer/childrens-header-showing-Content-Type-list: content-header.  (line  35)
* mime-viewer/content-button-ignored-ctype-list: content-button.  (line  49)
* mime-viewer/content-filter-alist: content-body.       (line  43)
* mime-viewer/content-header-filter-alist: content-header.  (line  54)
* mime-viewer/default-showing-Content-Type-list: content-body.  (line  29)
* mime-viewer/ignored-field-list: content-header.       (line  71)

Tag table:
Node: Top159
Node: Introduction909
Node: MIME display1602
Node: content-button3541
Node: content-header4761
Node: content-body6927
Node: content-separator8373
Node: mime/viewer-mode8959
Node: method9905
Node: decoding-condition10696
Node: method value11966
Node: Example of decoding-condition13105
Node: environment variables15277
Node: Two buffers for an article15666
Node: raw-article-buffer17034
Node: preview-buffer19182
Node: API20642
Node: API about MIME preview21141
Node: encoded-word decoding22130
Node: Acknowledgments23590
Node: Concept Index24027
Node: Function Index25515
Node: Variable Index26802

End tag table
