Next: ユーザーが選択したコーディングシステム, Previous: エンコーディングとI/O, Up: コーディングシステム [Contents][Index]
以下はコーディングシステムと連携するLisp機能です:
この関数はすべてのコーディングシステムの名前(シンボル)をリターンする。base-onlyが非nilなら、値にはベースコーディングシステムだけが含まれる。それ以外ならエイリアス、およびバリアントコーディングシステムも同様に含まれる。
この関数はobjectがコーディングシステムの名前ならt、またはnilをリターンする。
この関数はcoding-systemの有効性をチェックする。有効ならcoding-systemをリターンする。coding-systemがnilなら、この関数はnilをリターンする。それ以外の値にたいしてはerror-symbolがcoding-system-errorであるようなエラーをシグナルする(signalを参照)。
この関数は行末(eolとも言う)をcoding-systemで使用されるタイプに変換する。coding-systemが特定のeol変換を指定する場合にはリターン値は0、1、2のいずれかであり、それらは順にunix、dos、macを意味する。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変換が採用される。
この関数はcoding-systemと似ているがeol-typeで指定されたeol変換の異なるコーディングシステムをリターンする。eol-typeはunix、dos、mac、またはnilであること。これがnilならリターンされるコーディングシステムは、データのeol変換により決定される。
eol-typeはunix、dos、macを意味する0、1、2でもよい。
この関数はeol-codingの行末変換と、text-codingのテキスト変換を使用するコーディングシステムをリターンする。text-codingがnilならこれはundecided、またはeol-codingに対応するバリアントの1つをリターンする。
この関数はfromとtoの間のテキストのエンコードに使用可能なコーディングシステムのリストをリターンする。このリスト内のすべてのリストは、そのテキスト範囲内にあるすべてのマルチバイト文字を安全にエンコードできる。
そのテキストがマルチバイト文字を含まれなければ、この関数はリスト(undecided)をリターンする。
この関数はstringのテキストのエンコードに使用可能な、コーディングシステムのリストをリターンする。このリスト内のすべてのリストはstringにあるすべてのマルチバイト文字を安全にエンコードできる。そのテキストがマルチバイト文字を含まれなければ、この関数はリスト(undecided)をリターンする。
この関数はリストcharsets内のすべての文字セットのエンコードに使用可能なコーディングシステムのリストをリターンする。
この関数はリストcoding-system-list内のコーディングシステムがstartとendの間のリージョン内にあるすべての文字をエンコード可能かどうかをチェックする。このリスト内のすべてのコーディングシステムが指定されたテキストをエンコード可能なら、この関数はnilをリターンする。ある文字をエンコードできないコーディングシステムがある場合には、各要素が(coding-system1
pos1 pos2
…)という形式のalistが値となる。これはcoding-system1がバッファーの位置pos1、pos2、...にある文字をエンコードできないことを意味する。
startは文字列かもしれず、その場合にはendは無視されてリターン値はバッファー位置のかわりに文字列のインデックスを参照することになる。
この関数はstartからendのテキストのデコードに適したコーディングシステムを選択する。このテキストはバイトシーケンス、すなわちユニバイトテキスト、ASCIIのみのマルチバイトテキスト、8ビット文字のシーケンスであること(明示的なエンコードとデコードを参照)。
この関数は通常はスキャンしたテキストのデコーディングを処理可能なコーディングシステムのリストをリターンする。これらのコーディングシステムは優先度降順でリストされる。しかしhighestが非nilなら、リターン値はもっとも高い優先度のコーディングシステムただ1つとなる。
リージョンにISO-2022のESCのようなISO-2022制御文字を除いてASCII文字だけが含まれる場合には値はundecided、(undecided)、またはテキストから推論可能ならeol変換を指定するバリアントとなる。
リージョンにnullバイトが含まれる場合には、あるコーディングシステムによりエンコードされたテキストがリージョン内に含まれる場合でも値はno-conversionとなる。
この関数はdetect-coding-regionと似ているがバッファー内のバイトのかわりにstringのコンテンツを処理する点が異なる。
この変数が非nil値をもつなら、リージョンや文字列のエンコーディング検出時にnullバイトを無視する。これによりIndexノードをもつInfoファイルのようなnullバイトを含むテキストのエンコーディングを正しく検出できる。
この変数が非nil値をもつなら、リージョンや文字列のエンコーディング検出時にISO-2022エスケープシーケンスを無視する。結果としてこれまでいくつかのISO-2022エンコーディングにおいてエンコード済みと検出されていたテキストがなくなり、バッファー内ですべてのエスケープシーケンスが可視になる。警告:
この変数の使用には特に注意を払うこと。なぜならEmacsディストリビューション内で多くのファイルがISO-2022エンコーディングを使用するからである。
この関数はcoding-systemがサポートする文字セット(文字セットを参照)のリストをリターンする。リストすべき文字セットを非常に多くサポートするいくつかのコーディングシステムでは特別な値がリストされる:
(emacs)。
(unicode)。
iso-2022。
emacs-mule。
サブプロセスへの入出力に使用されるコーディングシステムのチェックやセットの方法についてはProcess
Information、特に関数process-coding-systemやset-process-coding-systemの説明を参照してください。
Next: ユーザーが選択したコーディングシステム, Previous: エンコーディングとI/O, Up: コーディングシステム [Contents][Index]