[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. インターフェース関数

mail-parse ライブラリーは、次の章で述べる実際の低レベルなライブラ リーを抽象化したものです。

標準は変化するので、プログラムも新しい鋳型に適合するために変化しなければ なりません。例えば RFC2045 は、パラメーターのリストにおい て ASCII 文字だけを許容する Content-Type ヘッダーのため の構文について述べています。RFC2231 は、複数行に渡って継続する単一のヘッ ダーと非-ASCII 文字の構成を規定するための RFC2045 の構文につい て詳しく記述しています。

これに対処する従来の方法は、単に新しい構文を解析するためにライブラリーの 関数を更新することでした。しかしながら、これは時には誤った行為です。場合 によっては、新しい構文と古い構文の両方を理解できるようにすることが重要か もしれないし、ライブラリーが一つしか無い場合には、ライブラリーの古いバー ジョンと新しいバージョンのどちらかを選ばなければなりません。

Emacs MIME ライブラリーは異なる方針で行くことにしました。これ は、対応する標準に従って厳密に解析する一連の低レベルのライブラ リー (‘rfc2047.el’, ‘rfc2231.el’ など) を定義します。とは言え、 正規のプログラムは、これらのライブラリーが直接に提供する関数ではなく、代 わりに mail-parse ライブラリーが提供する関数を使うべきです。この ライブラリーにある関数は、最新の低レベルのライブラリーの、対応する関数へ の単なる別名です。この構成を使うことによって、プログラムはそれらが使うこ とができる首尾一貫したインターフェースを手に入れました。また、ライブラリー の開発者は、新しい標準を扱うコードを自由に作成することができます。

以下の関数が、このライブラリーで定義されています:

mail-header-parse-content-type

Content-Type ヘッダーを解析して、以下の形式でリストを返します:

 
("type/subtype"
 (attribute1 . value1)
 (attribute2 . value2)
 ...)

例です:

 
(mail-header-parse-content-type
 "image/gif; name=\"b980912.gif\"")
⇒ ("image/gif" (name . "b980912.gif"))
mail-header-parse-content-disposition

Content-Disposition ヘッダーを解析して、上記の関数と同じ形式のリ ストを返します。

mail-content-type-get

上記の形式のリストと属性の二つのパラメーターを受け取り、その属性の値を返 します。

 
(mail-content-type-get
 '("image/gif" (name . "b980912.gif")) 'name)
⇒ "b980912.gif"
mail-header-encode-parameter

パラメーターに使う文字列を受け取り、それをエンコードしたものを返します。 これは Content-TypeContent-Disposition のようなヘッダー に入れるパラメーターのために使われます。

mail-header-remove-comments

ヘッダーからコメントを取り除いたものを返します。

 
(mail-header-remove-comments
 "Gnus/5.070027 (Pterodactyl Gnus v0.27) (Finnish Landrace)")
⇒ "Gnus/5.070027  "
mail-header-remove-whitespace

ヘッダーから“linear white space”を取り除きます。クォートされ た ("..." で囲まれた) 文字列の中にある空白文字とコメントは保存されます。

訳注:“linear white space”とは一つ以上の空白文字のことで、その前に改行 文字を置いたものは、長いヘッダーを折り畳むときに使われます。

 
(mail-header-remove-whitespace
 "image/gif; name=\"Name with spaces\"")
⇒ "image/gif;name=\"Name with spaces\""
mail-header-get-comment

ヘッダーの最後のコメントを返します。

 
(mail-header-get-comment
 "Gnus/5.070027 (Pterodactyl Gnus v0.27) (Finnish Landrace)")
⇒ "Finnish Landrace"

訳注: ‘Finnish Landrace’ は 1998年8月23日にリリースされた XEmacs 21.0-pre11 のコードネームです。まあ、どうでもいいことですが。

mail-header-parse-address

アドレスを解析して、メールアドレスとプレーンテキストの名前を含むリストを 返します。

 
(mail-header-parse-address
 "Hrvoje Niksic <hniksic@srce.hr>")
⇒ ("hniksic@srce.hr" . "Hrvoje Niksic")
mail-header-parse-addresses

アドレスのリストを含んでいる文字列を解析して、上で述べたような要素のリス トを返します。

 
(mail-header-parse-addresses
 "Hrvoje Niksic <hniksic@srce.hr>, Steinar Bang <sb@metis.no>")
⇒ (("hniksic@srce.hr" . "Hrvoje Niksic")
     ("sb@metis.no" . "Steinar Bang"))
mail-header-parse-date

日付の文字列を解析して、Emacs 形式の時刻を返します。

mail-narrow-to-head

バッファーをヘッダーの区域に狭めます。ポイントは狭められたバッファーの先 頭に置かれます。

mail-header-narrow-to-field

バッファーを現在位置の (単一の) ヘッダーに狭めます。複数行に渡って継続す るヘッダーを理解します。

mail-header-fold-field

現在位置のヘッダーを折り畳みます。

mail-header-unfold-field

現在位置のヘッダーの折り畳みを解除します。

mail-header-field-value

現在位置のフィールドの値を返します。

mail-encode-encoded-word-region

領域にある ASCII 以外の語をエンコードします。例え ば ‘Na,Aove’ は ‘Na阮e’ としてエンコードされ ます。

mail-encode-encoded-word-buffer

現在のバッファーにある ASCII 以外の語をエンコードします。この 関数は、ヘッダーの区域に狭められたメッセージで呼ばれることを意図していま す。

mail-encode-encoded-word-string

文字列に含まれているエンコードする必要がある語をエンコードして、結果を返 します。

 
(mail-encode-encoded-word-string
 "This is na,Aove, baby")
⇒ "This is na阮e, baby"
mail-decode-encoded-word-region

領域にあるエンコードされた語をデコードします。

mail-decode-encoded-word-string

文字列に含まれているエンコードされた語をデコードして、結果を返します。

 
(mail-decode-encoded-word-string
 "This is na阮e, baby")
⇒ "This is na,Aove, baby"

現在 mail-parseietf-drums, rfc2047, rfc2045 および rfc2231 を網羅して抽象化します。これらにつ いて、次以降の章で説明します。


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Yasutaka SHINDOH on May 11, 2011 using texi2html 1.82.