MS-DOSやMS-Windows上のEmacsは、 特定のファイル名をテキストファイルやバイナリファイルとして認識します。 『バイナリファイル』とは、必ずしも文字を意味しないバイト値のファイルです。 Emacsは、バイナリファイルに対しては行末変換や文字コード変換を行いません。 一方、その名前から『テキストファイル』と印が付いた 新規ファイルを作成すると、EmacsはDOSの行末変換を行います。
この変数は、各バッファで自動的にバッファローカルになり、 バッファで訪問したファイルのファイル型を記録する。 バッファが
buffer-file-coding-system
で コーディングシステムを指定しない場合、 バッファ内容を書き出すときに用いるコーディングシステムを この変数を用いて決定する。 テキストに対してはnil
、バイナリに対してt
であること。 これがt
であると、コーディングシステムはno-conversion
である。 さもなければ、undecided-dos
を用いる。通常、この変数はファイルを訪問すると設定される。 いかなる変換も行わずにファイルを訪問すると
nil
に設定される。
この変数は、テキスト/バイナリファイルを認識するための連想リストを保持する。 各要素は(regexp . type)の形である。 ここで、regexpはファイル名に対して一致をとり、 typeは、テキストファイルでは
nil
、 バイナリファイルではt
、あるいは、 どちらであるかを計算するために呼び出す関数である。 それが関数であると、1つの引数(ファイル名)で呼ばれ、t
かnil
を返すこと。MS-DOSやMS-Windowsで動作しているEmacsは、 この連想リストを調べて、ファイルを読む際に使用する コーディングシステムを決定する。 テキストファイルでは
undecided-dos
が使われる。 バイナリファイルではno-conversion
が使われる。指定したファイルがこの連想リストの要素に一致しないと、
default-buffer-file-type
がファイルの扱い方を指定する。