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

6. 符号化法

Content-Transfer-Encoding 欄 は entity の符号化法を記述するため のものです。

FLIM では Content-Transfer-Encoding 欄を構文解析する関数を提供します。こ れらの関数は Content-Transfer-Encoding 欄の情報は文字列で表現します。

また、Content-Transfer-Encoding に基づいて符号化・復号化を行う関数も提 供されます。


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

6.1 Content-Transfer-Encoding 欄の解析器

Function: mime-parse-Content-Transfer-Encoding string

string を content-transfer-encoding として解析した結果を返す。

Function: mime-read-Content-Transfer-Encoding &optional default-encoding

現在の buffer の Content-Transfer-Encoding 欄を読み取り、解析した結果を 返す。

Content-Transfer-Encoding 欄が存在しない場合はdefault-encoding を 返す。


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

6.2 符号化・復号化

Function: mime-encode-region start end encoding

現在の buffer の start から end までの region を encoding を使って符号化します。

Function: mime-decode-region start end encoding

現在の buffer の start から end までの region を encoding を使って復号化します。

Function: mime-decode-string string encoding

stringencoding として復号した結果を返す。

Function: mime-insert-encoded-file filename encoding

ENCODING format で符号化された file FILENAME を 挿入する。

Function: mime-write-decoded-region start end filename encoding

encoding で符号化された現在の region を復号化して filenameに書き込みます。

<var>start<var> と end は buffer の位置です。


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

6.3 Other utilities

Function: mime-encoding-list &optional SERVICE

Content-Transfer-Encoding の list を返します。

service が指定されていると、それに対する Content-Transfer-Encoding を返します。

Function: mime-encoding-alist &optional SERVICE

補完のための Content-Transfer-Encoding の表を返します。

service が指定されている場合はそれに対する Content-Transfer-Encoding の list を返します。


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

6.4 How to write encoder/decoder module

Macro: mel-define-method name args &rest body

name を (nth 1 (car (last args))) backend の method 関数として定義します。

args は lambda の引数 list と似ていますが、(car (last args)) は指定された parameter である必要があります。(car (car (last args))) は変数の名前で、(nth 1 (car (last args))) は backend の名前 (encoding) です。

例:

 
(mel-define-method mime-write-decoded-region (start end filename
						    (nil "base64"))
  "Decode and write current region encoded by base64 into FILENAME.
START and END are buffer positions."
  (interactive
   (list (region-beginning) (region-end)
	 (read-file-name "Write decoded region to file: ")))
  (let ((str (buffer-substring start end)))
    (with-temp-buffer
      (insert (decode-base64-string str))
      (write-region-as-binary (point-min) (point-max) filename)
      )))
Macro: mel-define-method-function spec function

spec の関数定義を function に設定します。

spec の最初の要素は service です。

args の残りは lambda の引数 list 似ていますが、(car (last args)) は指定された parameter である必要があります。(car (car (last args))) は変数の名前で、(nth 1 (car (last args))) は backend の名前 (encoding) です。

例:

 
(mel-define-method-function (mime-encode-string string (nil "base64"))
			    'encode-base64-string)

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

6.5 符号化/復号化 service を追加する方法

Macro: mel-define-service name &optional args doc-string

name を Content-Transfer-Encoding の service として定義しま す。

args が指定されていると、name は service の generic function として定義されます。

例:

 
(mel-define-service encoded-text-encode-string (string encoding)
  "Encode STRING as encoded-text using ENCODING.
ENCODING must be string.")

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

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