Next: , Previous: , Up: コーディングシステム   [Contents][Index]


34.10.3 Lispでのコーディングシステム

以下はコーディングシステムと連携するLisp機能です:

Function: coding-system-list &optional base-only

この関数はすべてのコーディングシステムの名前(シンボル)をリターンする。base-onlyが非nilなら、値にはベースコーディングシステムだけが含まれる。それ以外ならエイリアス、およびバリアントコーディングシステムも同様に含まれる。

Function: coding-system-p object

この関数はobjectがコーディングシステムの名前ならt、またはnilをリターンする。

Function: check-coding-system coding-system

この関数はcoding-systemの有効性をチェックする。有効ならcoding-systemをリターンする。coding-systemnilなら、この関数はnilをリターンする。それ以外の値にたいしてはerror-symbolcoding-system-errorであるようなエラーをシグナルする(signalを参照)。

Function: coding-system-eol-type coding-system

この関数は行末(eolとも言う)をcoding-systemで使用されるタイプに変換する。coding-systemが特定のeol変換を指定する場合にはリターン値は0、1、2のいずれかであり、それらは順にunixdosmacを意味する。coding-systemが明示的にeol変換を指定しなければ、リターン値は以下のようにそれぞれが可能なeol変換タイプをもつようなコーディングシステムのベクター:

(coding-system-eol-type 'latin-1)
     ⇒ [latin-1-unix latin-1-dos latin-1-mac]

この関数がベクターをリターンしたら、Emacsはテキストのエンコードやデコードプロセスの一部として使用するeol変換を決定するだろう。デコードではテキストの行末フォーマットは自動検知され、eol変換はそれに適合するようセットされる(DOSスタイルのCRLFフォーマットは暗黙でeol変換にdosをセットする)。エンコードにたいしては適切なデフォルトコーディングシステム(buffer-file-coding-systemにたいするbuffer-file-coding-systemのデフォルト値)、または背景にあるプラットフォームにたいして適切なデフォルトeol変換が採用される。

Function: coding-system-change-eol-conversion coding-system eol-type

この関数はcoding-systemと似ているがeol-typeで指定されたeol変換の異なるコーディングシステムをリターンする。eol-typeunixdosmac、またはnilであること。これがnilならリターンされるコーディングシステムは、データのeol変換により決定される。

eol-typeunixdosmacを意味する0、1、2でもよい。

Function: coding-system-change-text-conversion eol-coding text-coding

この関数はeol-codingの行末変換と、text-codingのテキスト変換を使用するコーディングシステムをリターンする。text-codingnilならこれはundecided、またはeol-codingに対応するバリアントの1つをリターンする。

Function: find-coding-systems-region from to

この関数はfromtoの間のテキストのエンコードに使用可能なコーディングシステムのリストをリターンする。このリスト内のすべてのリストは、そのテキスト範囲内にあるすべてのマルチバイト文字を安全にエンコードできる。

そのテキストがマルチバイト文字を含まれなければ、この関数はリスト(undecided)をリターンする。

Function: find-coding-systems-string string

この関数はstringのテキストのエンコードに使用可能な、コーディングシステムのリストをリターンする。このリスト内のすべてのリストはstringにあるすべてのマルチバイト文字を安全にエンコードできる。そのテキストがマルチバイト文字を含まれなければ、この関数はリスト(undecided)をリターンする。

Function: find-coding-systems-for-charsets charsets

この関数はリストcharsets内のすべての文字セットのエンコードに使用可能なコーディングシステムのリストをリターンする。

Function: check-coding-systems-region start end coding-system-list

この関数はリストcoding-system-list内のコーディングシステムがstartendの間のリージョン内にあるすべての文字をエンコード可能かどうかをチェックする。このリスト内のすべてのコーディングシステムが指定されたテキストをエンコード可能なら、この関数はnilをリターンする。ある文字をエンコードできないコーディングシステムがある場合には、各要素が(coding-system1 pos1 pos2 …)という形式のalistが値となる。これはcoding-system1がバッファーの位置pos1pos2...にある文字をエンコードできないことを意味する。

startは文字列かもしれず、その場合にはendは無視されてリターン値はバッファー位置のかわりに文字列のインデックスを参照することになる。

Function: detect-coding-region start end &optional highest

この関数はstartからendのテキストのデコードに適したコーディングシステムを選択する。このテキストはバイトシーケンス、すなわちユニバイトテキスト、ASCIIのみのマルチバイトテキスト、8ビット文字のシーケンスであること(明示的なエンコードとデコードを参照)。

この関数は通常はスキャンしたテキストのデコーディングを処理可能なコーディングシステムのリストをリターンする。これらのコーディングシステムは優先度降順でリストされる。しかしhighestが非nilなら、リターン値はもっとも高い優先度のコーディングシステムただ1つとなる。

リージョンにISO-2022のESCのようなISO-2022制御文字を除いてASCII文字だけが含まれる場合には値はundecided(undecided)、またはテキストから推論可能ならeol変換を指定するバリアントとなる。

リージョンにnullバイトが含まれる場合には、あるコーディングシステムによりエンコードされたテキストがリージョン内に含まれる場合でも値はno-conversionとなる。

Function: detect-coding-string string &optional highest

この関数はdetect-coding-regionと似ているがバッファー内のバイトのかわりにstringのコンテンツを処理する点が異なる。

Variable: inhibit-null-byte-detection

この変数が非nil値をもつなら、リージョンや文字列のエンコーディング検出時にnullバイトを無視する。これによりIndexノードをもつInfoファイルのようなnullバイトを含むテキストのエンコーディングを正しく検出できる。

Variable: inhibit-iso-escape-detection

この変数が非nil値をもつなら、リージョンや文字列のエンコーディング検出時にISO-2022エスケープシーケンスを無視する。結果としてこれまでいくつかのISO-2022エンコーディングにおいてエンコード済みと検出されていたテキストがなくなり、バッファー内ですべてのエスケープシーケンスが可視になる。警告: この変数の使用には特に注意を払うこと。なぜならEmacsディストリビューション内で多くのファイルがISO-2022エンコーディングを使用するからである。

Function: coding-system-charset-list coding-system

この関数はcoding-systemがサポートする文字セット(文字セットを参照)のリストをリターンする。リストすべき文字セットを非常に多くサポートするいくつかのコーディングシステムでは特別な値がリストされる:

  • coding-systemがすべてのEmacs文字をサポートするなら値は(emacs)
  • coding-systemがすべてのUnicode文字をサポートするなら値は(unicode)
  • coding-systemがすべてのISO-2022文字をサポートするなら値はiso-2022
  • coding-systemがEmacsバージョン21(Unicodeサポートの内部的な実装以前)で使用される内部的コーディングシステム内のすべての文字をサポートするなら値はemacs-mule

サブプロセスへの入出力に使用されるコーディングシステムのチェックやセットの方法についてはProcess Information、特に関数process-coding-systemset-process-coding-systemの説明を参照してください。


Next: ユーザーが選択したコーディングシステム, Previous: エンコーディングとI/O, Up: コーディングシステム   [Contents][Index]