Main Page   Modules   Data Structures   Globals   Appendix  

コード変換
[シェル API]

コード系オブジェクトとそれに関する API. [詳細]

データ構造

struct  MConverter
 コード変換に用いられる構造体. [詳細]
struct  MCodingInfoISO2022
 MCODING_TYPE_ISO_2022 タイプのコード系で必要な付加情報用構造体. [詳細]
struct  MCodingInfoUTF
 MCODING_TYPE_UTF タイプのコード系で必要な付加情報用の構造体. [詳細]

変数: 定義済みコード系を指定するためのシンボル

MSymbol Mcoding_us_ascii
 US-ASCII コード系のシンボル.
MSymbol Mcoding_iso_8859_1
 ISO-8859-1 コード系のシンボル.
MSymbol Mcoding_utf_8
 UTF-8 コード系のシンボル.
MSymbol Mcoding_utf_8_full
 UTF-8-FULL コード系のシンボル.
MSymbol Mcoding_utf_16
 UTF-16 コード系のシンボル.
MSymbol Mcoding_utf_16be
 UTF-16BE コード系のシンボル.
MSymbol Mcoding_utf_16le
 UTF-16LE コード系のシンボル.
MSymbol Mcoding_utf_32
 UTF-32 コード系のシンボル.
MSymbol Mcoding_utf_32be
 UTF-32BE コード系のシンボル.
MSymbol Mcoding_utf_32le
 UTF-32LE コード系のシンボル.
MSymbol Mcoding_sjis
 SJIS コード系のシンボル.

変数: mconv_define_coding() 用パラメータキー

MSymbol Mtype
MSymbol Mcharsets
MSymbol Mflags
MSymbol Mdesignation
MSymbol Minvocation
MSymbol Mcode_unit
MSymbol Mbom
MSymbol Mlittle_endian

変数: コード系のタイプを示すシンボル.

MSymbol Mutf
MSymbol Miso_2022

変数: パラメータ #Mflags の値となり得るシンボル.

MSymbol Mreset_at_eol
MSymbol Mreset_at_cntl
MSymbol Meight_bit
MSymbol Mlong_form
MSymbol Mdesignation_g0
MSymbol Mdesignation_g1
MSymbol Mdesignation_ctext
MSymbol Mdesignation_ctext_ext
MSymbol Mlocking_shift
MSymbol Msingle_shift
MSymbol Msingle_shift_7
MSymbol Meuc_tw_shift
MSymbol Miso_6429
MSymbol Mrevision_number
MSymbol Mfull_support

変数: その他

ほかの変数。

MSymbol Mmaybe
 "maybe"という名前を持つシンボル.
MSymbol Mcoding
 シンボル Mcoding.

列挙型

enum  MConversionResult {
  MCONVERSION_RESULT_SUCCESS,
  MCONVERSION_RESULT_INVALID_BYTE,
  MCONVERSION_RESULT_INVALID_CHAR,
  MCONVERSION_RESULT_INSUFFICIENT_SRC,
  MCONVERSION_RESULT_INSUFFICIENT_DST,
  MCONVERSION_RESULT_IO_ERROR
}
 コード変換の結果を示すコード. [詳細]
enum  MCodingType {
  MCODING_TYPE_CHARSET,
  MCODING_TYPE_UTF,
  MCODING_TYPE_ISO_2022,
  MCODING_TYPE_MISC
}
 コード系のタイプ. [詳細]
enum  MCodingFlagISO2022 {
  MCODING_ISO_RESET_AT_EOL = 0x1,
  MCODING_ISO_RESET_AT_CNTL = 0x2,
  MCODING_ISO_EIGHT_BIT = 0x4,
  MCODING_ISO_LONG_FORM = 0x8,
  MCODING_ISO_DESIGNATION_G0 = 0x10,
  MCODING_ISO_DESIGNATION_G1 = 0x20,
  MCODING_ISO_DESIGNATION_CTEXT = 0x40,
  MCODING_ISO_DESIGNATION_CTEXT_EXT = 0x80,
  MCODING_ISO_LOCKING_SHIFT = 0x100,
  MCODING_ISO_SINGLE_SHIFT = 0x200,
  MCODING_ISO_SINGLE_SHIFT_7 = 0x400,
  MCODING_ISO_EUC_TW_SHIFT = 0x800,
  MCODING_ISO_ISO6429 = 0x1000,
  MCODING_ISO_REVISION_NUMBER = 0x2000,
  MCODING_ISO_FULL_SUPPORT = 0x3000,
  MCODING_ISO_FLAG_MAX
}
 MCODING_TYPE_ISO_2022 タイプのコード系の詳細を表わすビットマスク. [詳細]

関数

MSymbol mconv_define_coding (const char *name, MPlist *plist, int(*resetter)(MConverter *), int(*decoder)(const unsigned char *, int, MText *, MConverter *), int(*encoder)(MText *, int, int, unsigned char *, int, MConverter *), void *extra_info)
 コード系を定義する.
MSymbol mconv_resolve_coding (MSymbol symbol)
 コード系の名前を解決する.
int mconv_list_codings (MSymbol **symbols)
 コード系を表わすシンボルを列挙する.
MConvertermconv_buffer_converter (MSymbol name, unsigned char *buf, int n)
 バッファに結び付けられたコードコンバータを作る.
MConvertermconv_stream_converter (MSymbol name, FILE *fp)
 ストリームに結び付けられたコードコンバータを作る.
int mconv_reset_converter (MConverter *converter)
 コードコンバータをリセットする.
void mconv_free_converter (MConverter *converter)
 コードコンバータを解放する.
MConvertermconv_rebind_buffer (MConverter *converter, unsigned char *buf, int n)
 コードコンバータにバッファ領域を結び付ける.
MConvertermconv_rebind_stream (MConverter *converter, FILE *fp)
 コードコンバータにストリームを結び付ける.
MTextmconv_decode (MConverter *converter, MText *mt)
 バイト列を M-text にデコードする.
MTextmconv_decode_buffer (MSymbol name, unsigned char *buf, int n)
 コード系に基づいてバッファ領域をデコードする.
MTextmconv_decode_stream (MSymbol name, FILE *fp)
 コード系に基づいてストリーム入力をデコードする.
int mconv_encode (MConverter *converter, MText *mt)
 M-text をバイト列にエンコードする.
int mconv_encode_range (MConverter *converter, MText *mt, int from, int to)
 M-text の一部をバイト列にエンコードする.
int mconv_encode_buffer (MSymbol name, MText *mt, unsigned char *buf, int n)
 M-text をエンコードしてバッファ領域に書き込む.
int mconv_encode_stream (MSymbol name, MText *mt, FILE *fp)
 M-text をエンコードしてストリームに書き込む.
int mconv_getc (MConverter *converter)
 コードコンバータ経由で1文字読む.
int mconv_ungetc (MConverter *converter, int c)
 コードコンバータに1文字戻す.
int mconv_putc (MConverter *converter, int c)
 コードコンバータを経由して1文字書く.
MTextmconv_gets (MConverter *converter, MText *mt)
 コードコンバータを使って1行読む.

説明

m17n ライブラリは、符号化文字集合 (coded character set; CCS) の文 字符合化方式 (character encoding scheme; CES) を コード系 と呼 ぶオブジェクトで表現する。アプリケーションプログラムは独自にコード 系を追加することもできる。

コードポイントから文字コードへの変換を エンコード と呼び、文字 コードからコードポイントへの変換を デコード と呼ぶ。

アプリケーションプログラムは、指定されたコード系でバイト列をデコー ドすることで M-text を得ることができる。また逆に、指定されたコード 系で M-text をエンコードしすることでバイト列を得ることができる。


列挙型

enum MConversionResult
 

これらの値のうち一つが MConverter->result に設定される。

列挙型の値:
MCONVERSION_RESULT_SUCCESS  コード変換は成功.
MCONVERSION_RESULT_INVALID_BYTE  デコード時、ソースに不正なバイトが含まれている.
MCONVERSION_RESULT_INVALID_CHAR  エンコード時、指定のコード系でエンコードできない文字がソー スに含まれている.
MCONVERSION_RESULT_INSUFFICIENT_SRC  デコード時、不完全なバイト列でソースが終わっている。
MCONVERSION_RESULT_INSUFFICIENT_DST  エンコード時、結果を格納する領域が短かすぎる。
MCONVERSION_RESULT_IO_ERROR  コード変換中に I/O エラーが起こった。

enum MCodingType
 

列挙型の値:
MCODING_TYPE_CHARSET  このタイプのコード系は文字セットを直接サポートする。各文字セッ トの次元とは、その文字セットで一文字を表現するために必要なバイ ト数であり、バイト列は文字のコードポイントを直接表わす。

m17n ライブラリはこのタイプ用のデフォルトのエンコード/デコー ドルーティンを提供する。

MCODING_TYPE_UTF  このタイプのコード系は、UTF 系 (UTF-8, UTF-16, UTF-32) のバイ ト列をサポートする。

m17n ライブラリはこのタイプ用のデフォルトのエンコード/デコー ドルーティンを提供する。

MCODING_TYPE_ISO_2022  このタイプのコード系は、ISO-2022 系のバイト列をサポートする。 各コード系の構造の詳細は MCodingInfoISO2022 で指定される。

m17n ライブラリはこのタイプ用のデフォルトのエンコード/デコー ドルーティンを提供する。

MCODING_TYPE_MISC  このタイプのコード系は、その他の構造のバイト列のためのものであ る。

m17n ライブラリはこのタイプ用のエンコード/デコードルーティン を提供しないので、アプリケーションプログラム側で準備す る必要がある。

enum MCodingFlagISO2022
 

列挙型の値:
MCODING_ISO_RESET_AT_EOL  エンコードの際、行末で呼び出し (invocation) と指示 (designation) の状態を初期値に戻す。
MCODING_ISO_RESET_AT_CNTL  エンコードの際、すべての制御文字の前で、呼び出し (invocation) と指示 (designation) の状態を初期値に戻す。
MCODING_ISO_EIGHT_BIT  図形文字集合の右側を使う。
MCODING_ISO_LONG_FORM  JISX0208.1978, GB2312, JISX0208.1983 の文字集合に対する指示シー クエンスとして、非標準の4バイト形式を用いる。
MCODING_ISO_DESIGNATION_G0  エンコードの際、特に指定されない限り、文字集合を G0 に指示 する。
MCODING_ISO_DESIGNATION_G1  エンコードの際、特に指定されない限り、ASCII 以外の文字集合を G1 に指示する。
MCODING_ISO_DESIGNATION_CTEXT  エンコードの際、特に指定されない限り、94文字集合を G0 に、96文字集合を G1 に指示する。
MCODING_ISO_DESIGNATION_CTEXT_EXT  エンコードの際、ISO-2022 に合致しない文字集合を ESC / ... でエ ンコードする。サポートされていない Unicode 文字は ESC G ... ESC @ でエンコードする。 デコードの際、これらのエスケープ・シーケンスを解釈する。
MCODING_ISO_LOCKING_SHIFT  ロッキングシフトを使う。
MCODING_ISO_SINGLE_SHIFT  シングルシフト (SS2 (0x8E or ESC N), SS3 (0x8F or ESC O)) を使う。
MCODING_ISO_SINGLE_SHIFT_7  7ビットシングルシフト 2 (SS2 (0x19)) を使う。
MCODING_ISO_EUC_TW_SHIFT  EUC-TW 風の特別なシフトを使う。
MCODING_ISO_ISO6429  ISO-6429 のエスケープシークエンスで方向を指示する。未実装。
MCODING_ISO_REVISION_NUMBER  エンコードの際、文字セットに revision number があればそ れを表わすエスケープシークエンスを生成する。
MCODING_ISO_FULL_SUPPORT  ISO-2022 の全文字集合をサポートする。
MCODING_ISO_FLAG_MAX 


関数

MSymbol mconv_define_coding const char *  name,
MPlist plist,
int(*)(MConverter *)  resetter,
int(*)(const unsigned char *, int, MText *, MConverter *)  decoder,
int(*)(MText *, int, int, unsigned char *, int, MConverter *)  encoder,
void *  extra_info
 

関数 mconv_define_coding() は、新しいコード系を定義し、それを name という名前のシンボル経由でアクセスできるようにする。 plist では定義するコード系のパラメータを以下のように指定する。

  • キーが Mtype で値がシンボルの時

    値はコード系のタイプを表し、Mcharset, Mutf, Miso_2022, Mnil の いずれかでなくてはならない。

    タイプが Mcharset ならば extra_info は無視される。

    タイプが Mutf ならば extra_infoMCodingInfoUTF へのポインタで なくてはならない。

    タイプが Miso_2022ならば extra_infoMCodingInfoISO2022 へのポ インタでなくてはならない。

    タイプが Mnil ならば、引数 resetter, decoder, encoder を与えな くてはならない。extra_info は無視される。それ以外の場合にはこれら は NULL で構わない。その際には m17n ライブラリが適切なデフォル ト値を与える。

  • キーが Mcharsets で値が plist の時

    値はこのコード系でサポートされる文字セットのリストである。plistのキーは Msymbol、値は文字セットを示すシンボルでなくてはならない。

  • キーが Mflags 値が plist の時

    タイプが Miso_2022 ならば、この値は, ISO 2022 インタプリタ用の制 御フラッグを示す。plistのキーはMsymbol、値は以下のいずれかでなく てはならない。

    • Mreset_at_eol

      このフラグがあれば、図形文字集合の指示や呼出は行末でリセットされて 当初の状態に戻る。

    • Mreset_at_cntl

      このフラグがあれば、図形文字集合の指示や呼出は制御文字に出会った時 点でリセットされて当初の状態に戻る。

    • Meight_bit

      このフラグがあれば、図形文字集合の右半面が用いられる。

    • Mlong_form

      このフラグがあれば、文字集合 JISX0208.1978, GB2312, JISX0208 を指 示する際に over-long エスケープシーケンス (ESC '$' '(' <final_byte>) が用いられる。

    • Mdesignation_g0

      このフラグと Mfull_support があれば、文字セットリストに現われない 文字セットを G0 集合に指示する。

    • Mdesignation_g1

      このフラグと Mfull_support があれば、文字セットリストに現われない 文字セットを G1 集合に指示する。

    • Mdesignation_ctext

      このフラグと Mfull_support があれば、文字セットリストに現われない 文字セットを G0 集合または G1 集合に、コンパウンドテキストの基準に そって指示する。

    • Mdesignation_ctext_ext

      このフラグと Mfull_support があれば、文字セットリストに現われない 文字セットを G0 集合または G1 集合に、あるいは拡張セグメントにコン パウンドテキストの基準にそって指示する。

    • Mlocking_shift

      このフラグがあれば、ロッキングシフトを用いる。

    • Msingle_shift

      このフラグがあれば、シングルシフトを用いる。

    • Msingle_shift_7

      このフラグがあれば、7-bit シングルシフトコード (0x19) を用いる。

    • Meuc_tw_shift;

      このフラグがあれば、EUC-TW に沿った特別なシフトを用いる。

    • Miso_6429

      現時点では用いられていない。

    • Mrevision_number

      このフラグがあれば、revision number を持つ文字セットを指示する際に revision number エスケープシークエンスを用いる。

    • Mfull_support

      このフラグがあれば、the International Registry に登録されている全 文字セットをサポートする。

  • キーが Mdesignationで値が plist の時

    タイプが Miso_2022 ならば、値は各文字をどのように指示するかを示す。 plist のキーは Minteger、値は集合(graphic register)を示す数字で なくてはならない。N番目の要素の値は、文字セットリストの N 番目 の 文字セットに対応する。値が 0..3 であれば、文字セットがすでに G0..G3 に指示 されている。

    値が負(-4..-1) であれば、初期状態では文字セットがどこにも指示され ていないこと、必要な際にはG0..G3 のそれぞれに指示することを意味す る。

  • キーが Minvocationで値が plist の時

    タイプが Miso_2022 ならば、値は各集合をどのように呼び出すかを示す。 plist の長さは 1 ないし 2 である。plist のキーは Minteger、値は集 合(graphic register)を示す数字でなければならない。最初の要素の値 が図形文字集合左半面に呼び出される集合である。 plist の長さが 1 な らば、右半面には何も呼び出されない。そうでければ、2つめの要素の値 が図形文字集合右半面に呼び出される集合となる。

  • キーが Mcode_unit で値が整数値の時

    タイプが Mutf ならば、値はコードユニットのビット長であり、8, 16, 32 のいずれかである。

  • キーが Mbom で値がシンボルの時

    タイプが Mutf でコードユニットのビット長が 16 か 32ならば、値は BOM (Byte Order Mark) を使用するかどうかを示す。値がデフォルト値の Mnil ならば、使用しない。値がMmaybe ならばデコード時に BOM があ るかどうかを調べる。それ以外ならば使用する。

  • キーが Mlittle_endian で値がシンボルの時

    タイプが Mutf でコードユニットのビット長が 16 か 32ならば、値はエ ンコードが little endian かどうかを示す。値がデフォルト値の Mnil ならば big endian であり、そうでなければ little endian である。

resetter はこのコード系用のコンバータを初期状態にリセットする関数 へのポインタである。この関数はコンバータオブジェクトへのポインタと いう1引数をとる。

decoder はバイト列をこのコード系に従ってデコードする関数へのポイ ンタである。この関数は以下の4引数をとる。

  • デコードするバイト列へのポインタ
  • デコードすべきバイト数
  • デコード結果の文字を付加する M-text へのポインタ
  • コンバータオブジェクトへのポインタ
decoder は成功したときには0を、失敗したときには-1を返さなくてはな らない。

encoder は M-text をこのコード系に従ってエンコードする関数へのポ インタである。この関数は以下の6引数をとる。

  • エンコードするM-text へのポインタ
  • M-text のエンコード開始位置
  • M-text のエンコード終了位置
  • 生成したバイトを保持するメモリ領域へのポインタ
  • メモリ領域のサイズ
  • コンバータオブジェクトへのポインタ
encoder は成功したときには0を、失敗したときには-1を返さなくてはな らない。

extra_info はコーディグシステムに関する追加情報を含むデータ構造へ のポインタである。このデータ構造のタイプは type に依存する。

戻り値:
処理に成功すれば mconv_define_coding()name という名前のシ ンボルを返す。 エラーが検出され た場合は Mnil を返し、外部変数 merror_code にエラーコードを設定する。

エラー:
MERROR_CODING

MSymbol mconv_resolve_coding MSymbol  symbol  ) 
 

関数 mconv_resolve_coding()symbol がコード系を示していればそ れを返す。そうでなければコード系の名前として symbol を正規化し、 それがコード系を示していれば正規化した名前を返す。そうでなければ Mnil を返す。

int mconv_list_codings MSymbol **  symbols  ) 
 

関数 mchar_list_codings() は、コード系を示すシンボルを並べた配列 を作り、symbols でポイントされた場所にこの配列へのポインタを置き、 配列の長さを返す。

MConverter* mconv_buffer_converter MSymbol  name,
unsigned char *  buf,
int  n
 

関数 mconv_buffer_converter() は、コード系 name 用のコードコン バータを作る。このコードコンバータは、buf で示される大きさ n バ イトのバッファ領域に結び付けられる。これ以降のデコードおよび エンコードは、このバッファ領域に対して行なわれる。

nameMnil であってもよい。この場合は現在のロケール (LC_CTYPE) に関連付けられたコード系が使われる。

戻り値:
もし処理が成功すれば mconv_buffer_converter() は 作成したコードコ ンバータを返す。そうでなければ NULL を返し、外部変数 merror_code にエラーコードを設定する。

エラー:
MERROR_SYMBOL, MERROR_CODING
参照:
mconv_stream_converter()

MConverter* mconv_stream_converter MSymbol  name,
FILE *  fp
 

関数 mconv_stream_converter() は、コード系 name 用のコードコン バータを作る。このコードコンバータは、ストリーム fp に結び付けら れる。これ以降のデコードおよびエンコードは、このストリームに対して 行なわれる。

nameMnil であってもよい。この場合は現在のロケール (LC_CTYPE) に関連付けられたコード系が使われる。

戻り値:
もし処理が成功すれば、mconv_stream_converter() は作成した コードコンバータを返す。そうでなければ NULL を返し、外部変数 merror_code にエラーコードを設定する。

エラー:
MERROR_SYMBOL, MERROR_CODING
参照:
mconv_buffer_converter()

int mconv_reset_converter MConverter converter  ) 
 

関数 mconv_reset_converter() はコードコンバータ converter を初期 状態に戻す。

戻り値:
もし converter->coding にリセット用の関数が定義されているならば、 mconv_reset_converter() はその関数に converter を適用した結果を 返し、そうでなければ0を返す。

void mconv_free_converter MConverter converter  ) 
 

関数 mconv_free_converter() はコードコンバータ converter を解放 する。

MConverter* mconv_rebind_buffer MConverter converter,
unsigned char *  buf,
int  n
 

関数 mconv_rebind_buffer() は、buf によって指された大きさ n バ イトのバッファ領域をコードコンバータ converter に結び付ける。これ 以降のデコードおよびエンコードは、この新たに結び付けられたバッファ 領域に対して行なわれるようになる。

戻り値:
この関数は常に converter を返す。

参照:
mconv_rebind_stream()

MConverter* mconv_rebind_stream MConverter converter,
FILE *  fp
 

関数 mconv_rebind_stream() は、ストリーム fp をコードコンバータ converter に結び付ける。これ以降のデコードおよびエンコードは、 この新たに結び付けられたストリームに対して行なわれるようになる。

戻り値:
この関数は常に converter を返す。

参照:
mconv_rebind_buffer()

MText* mconv_decode MConverter converter,
MText mt
 

関数 mconv_decode() は、バイト列をデコードしてその結果を M-text mt の末尾に追加する。デコード元のバイト列は、converter に現在結 び付けられているバッファ領域あるいはストリームから取られる。

戻り値:
もし処理が成功すれば、mconv_decode() は更新された mt を返す。そ うでなければ NULL を返し、外部変数 merror_code にエラーコードを 設定する。
エラー:
MERROR_IO, MERROR_CODING
参照:
mconv_rebind_buffer(), mconv_rebind_stream(), mconv_encode(), mconv_encode_range(), mconv_decode_buffer(), mconv_decode_stream()

MText* mconv_decode_buffer MSymbol  name,
unsigned char *  buf,
int  n
 

関数 mconv_decode_buffer() は、buf によって指された n バイトの バッファ領域を、コード系 name に基づいてデコードする。デコードに 必要なコードコンバータの作成と解放は自動的に行なわれる。

戻り値:
もし処理が成功すれば、mconv_decode_buffer() は得られた M-text を 返す。そうでなければ NULL を返し、外部変数 merror_code にエラー コードを設定する。
エラー:
MERROR_IO, MERROR_CODING
参照:
mconv_decode(), mconv_decode_stream()

MText* mconv_decode_stream MSymbol  name,
FILE *  fp
 

関数 mconv_decode_stream() は、ストリーム fp から読み込まれるバ イト列全体を、コード系 name に基づいてデコードする。デコードに必 要なコードコンバータの作成と解放は自動的に行なわれる。

戻り値:
もし処理が成功すれば、mconv_decode_stream() は得られた M-text を返 す。そうでなければ NULL を返し、外部変数 merror_code にエラーコー ドを設定する。
エラー:
MERROR_IO, MERROR_CODING
参照:
mconv_decode(), mconv_decode_buffer()

int mconv_encode MConverter converter,
MText mt
 

関数 mconv_encode() は、M-text mt をエンコードして、コードコンバー タ converter に現在結び付けられているバッファ領域あるいはストリー ムに得られたバイト列を書き込む。

戻り値:
もし処理が成功すれば、mconv_encode() は書き込まれたバイト数を返す。 そうでなければ -1 を返し、外部変数 merror_code にエラーコードを設定 する。
エラー:
MERROR_IO, MERROR_CODING
参照:
mconv_rebind_buffer(), mconv_rebind_stream(), mconv_decode(), mconv_encode_range()

int mconv_encode_range MConverter converter,
MText mt,
int  from,
int  to
 

関数 mconv_encode_range() は、M-text mtfrom (含む)から to (含まない)までの範囲のテキストをエンコードして、コードコンバー タ converter に現在結び付けられているバッファ領域あるいはストリー ムに得られたバイト列を書き込む。

戻り値:
もし処理が成功すれば、mconv_encode_range() は書き込まれたバイト数 を返す。そうでなければ -1 を返し、外部変数 merror_code にエラーコー ドを設定する。
エラー:
MERROR_RANGE, MERROR_IO, MERROR_CODING
参照:
mconv_rebind_buffer(), mconv_rebind_stream(), mconv_decode(), mconv_encode()

int mconv_encode_buffer MSymbol  name,
MText mt,
unsigned char *  buf,
int  n
 

関数 mconv_encode_buffer() はM-text mt をコード系 name に基づい てエンコードし、得られたバイト列を buf の指すバッファ領域に書き込 む。n は書き込む最大バイト数である。エンコードに必要なコードコン バータの作成と解放は自動的に行なわれる。

戻り値:
もし処理が成功すれば、mconv_encode_buffer() は書き込まれたバイト 数を返す。そうでなければ-1を返し、外部変数 merror_code にエラーコー ドを設定する。
エラー:
MERROR_IO, MERROR_CODING
参照:
mconv_encode(), mconv_encode_stream()

int mconv_encode_stream MSymbol  name,
MText mt,
FILE *  fp
 

関数 mconv_encode_stream() はM-text mt をコード系 name に基づい てエンコードし、得られたバイト列をストリーム fp に書き出す。エン コードに必要なコードコンバータの作成と解放は自動的に行なわれる。

戻り値:
もし処理が成功すれば、mconv_encode_stream() は書き込まれたバイト数 を返す。そうでなければ-1を返し、外部変数 merror_code にエラーコード を設定する。
エラー:
MERROR_IO, MERROR_CODING
参照:
mconv_encode(), mconv_encode_buffer(), mconv_encode_file()

int mconv_getc MConverter converter  ) 
 

関数 mconv_getc() は、コードコンバータ converter に現在結び付け られているバッファ領域あるいはストリームから 1 文字を読み込む。バ イト列のデコードには converter のデコーダが用いられる。converter の内部状態は必要に応じて更新される。

戻り値:
処理が成功すれば、mconv_getc() は読み込まれた文字を返す。入力源が EOF に達した場合は、外部変数 merror_code を変えずに EOF を返す。 エラーが検出された場合は EOF を返し、merror_code にエラーコード を設定する。
エラー:
MERROR_CODING
参照:
mconv_ungetc(), mconv_putc(), mconv_gets()

int mconv_ungetc MConverter converter,
int  c
 

関数 mconv_ungetc() は、コードコンバータ converter に文字 c を 押し戻す。戻す文字数に制限はない。この後に mconv_getc() を呼び出 すと、最後に戻された文字が最初に読まれる。戻された文字は converter の内部に蓄えられるだけであり、実際に入力源に書き込まれ るわけではない。converter の内部状態は必要に応じて更新される。

戻り値:
処理が成功すれば、mconv_ungetc() は c を返す。そうでなければ EOF を返し、外部変数 merror_code にエラーコードを設定する。
エラー:
MERROR_CODING, MERROR_CHAR
参照:
mconv_getc(), mconv_putc(), mconv_gets()

int mconv_putc MConverter converter,
int  c
 

関数 mconv_putc() は、コードコンバータ converter に現在結び付け られているバッファ領域あるいはストリームに文字 c を書き出す。文字 のエンコードには converter のエンコーダが用いられる。実際に書き出 されたバイト数は、converter の メンバー nbytes にセットされる。 converter の内部状態は必要に応じて更新される。

戻り値:
処理が成功すれば、mconv_putc() は c を返す。エラーが検出された場合 は EOF を返し、外部変数 merror_code にエラーコードを設定する。
エラー:
MERROR_CODING, MERROR_IO, MERROR_CHAR
参照:
mconv_getc(), mconv_ungetc(), mconv_gets()

MText* mconv_gets MConverter converter,
MText mt
 

関数 mconv_gets() は、コードコンバータ converter に現在結び付け られているバッファ領域あるいはストリームから 1 行を読み込む。バイ ト列のデコードには converter のデコーダが用いられる。デコードされ た文字列は M-text mt の末尾に追加される。元のバイト列の終端改行文 字は追加されない。converter の内部状態は必要に応じて更新される。

戻り値:
処理が成功すれば、mconv_gets() は変更された mt を返す。もし1文字 も読まずに EOF に当たった場合は、mt を変更せずにそのまま返す。エ ラーが検出された場合は NULL を返し、merror_code にエラーコードを 設定する。
エラー:
MERROR_CODING
参照:
mconv_getc(), mconv_ungetc(), mconv_putc()


変数

MSymbol Mcoding_us_ascii
 

シンボル Mcoding_us_ascii"us-ascii" という名前を持ち、 CES US-ASCII 用のコード系を示す。

MSymbol Mcoding_iso_8859_1
 

シンボル Mcoding_iso_8859_1"iso-8859-1" という名前 を持ち、CES ISO-8859-1 用のコード系を示す。

MSymbol Mcoding_utf_8
 

シンボル Mcoding_utf_8"utf-8" という名前を持ち、CES UTF-8 用のコード系を示す。

MSymbol Mcoding_utf_8_full
 

シンボル Mcoding_utf_8_full"utf-8-full" という名前を 持ち、"UTF-8" の拡張であるコード系を示す。このコード系は UTF-8 と同じエンコーディングアルゴリズムを用いるが、対象は Unicode の文字に限らない。またm17n ライブラリが扱う全ての文字をエンコード することができる。

MSymbol Mcoding_utf_16
 

シンボル Mcoding_utf_16"utf-16" という名前を持ち、 CES UTF-16 (RFC 2279) 用のコード系を示す。

MSymbol Mcoding_utf_16be
 

シンボル Mcoding_utf_16be"utf-16be" という名前を持ち、 CES UTF-16BE (RFC 2279) 用のコード系を示す。

MSymbol Mcoding_utf_16le
 

シンボル Mcoding_utf_16le"utf-16le" という名前を持ち、 CES UTF-16LE (RFC 2279) 用のコード系を示す。

MSymbol Mcoding_utf_32
 

シンボル Mcoding_utf_32"utf-32" という名前を持ち、 CES UTF-32 (RFC 2279) 用のコード系を示す。

MSymbol Mcoding_utf_32be
 

シンボル Mcoding_utf_32be"utf-32be" という名前を持ち、 CES UTF-32BE (RFC 2279) 用のコード系を示す。

MSymbol Mcoding_utf_32le
 

シンボル Mcoding_utf_32le"utf-32le" という名前を持ち、 CES UTF-32LE (RFC 2279) 用のコード系を示す。

MSymbol Mcoding_sjis
 

シンボル Mcoding_sjis has は "sjis" という名前を持ち、 CES Shift-JIS用のコード系を示す。

MSymbol Mtype
 

mconv_define_coding() 用パラメータキー (詳細は mconv_define_coding()参照).

MSymbol Mcharsets
 

mconv_define_coding() 用パラメータキー (詳細は mconv_define_coding()参照).

MSymbol Mflags
 

mconv_define_coding() 用パラメータキー (詳細は mconv_define_coding()参照).

MSymbol Mdesignation
 

mconv_define_coding() 用パラメータキー (詳細は mconv_define_coding()参照).

MSymbol Minvocation
 

mconv_define_coding() 用パラメータキー (詳細は mconv_define_coding()参照).

MSymbol Mcode_unit
 

mconv_define_coding() 用パラメータキー (詳細は mconv_define_coding()参照).

MSymbol Mbom
 

mconv_define_coding() 用パラメータキー (詳細は mconv_define_coding()参照).

MSymbol Mlittle_endian
 

mconv_define_coding() 用パラメータキー (詳細は mconv_define_coding()参照).

MSymbol Mutf
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mtype の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Miso_2022
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mtype の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Mreset_at_eol
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Mreset_at_cntl
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Meight_bit
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Mlong_form
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Mdesignation_g0
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Mdesignation_g1
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Mdesignation_ctext
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Mdesignation_ctext_ext
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Mlocking_shift
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Msingle_shift
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Msingle_shift_7
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Meuc_tw_shift
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Miso_6429
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Mrevision_number
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Mfull_support
 

関数 mconv_define_coding() の引数として用いられる、コード系の パラメータ Mflags の値となり得るシンボル。(詳細は mconv_define_coding()参照)。

MSymbol Mmaybe
 

変数 Mmaybe"maybe" という名前を持つ。これは関数 mconv_define_coding() パラメータ Mbom の値として用いられる。(詳 細は mconv_define_coding() 参照)。

MSymbol Mcoding
 

デコードされた M-text はすべて、キーが定義済みシンボル Mcoding であるようなテキストプロパティを持つ。シンボル Mcoding"coding" という名前を持つ。


このページの先頭

Main Page   Modules   Data Structures   Globals   Appendix  

mulemark mule-aist@m17n.org