[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This section describes variables that specify the default coding system for certain files or when running certain subprograms, and the function that I/O operations use to access them.
The idea of these variables is that you set them once and for all to the
defaults you want, and then do not change them again. To specify a
particular coding system for a particular operation in a Lisp program,
don't change these variables; instead, override them using
coding-system-for-read
and coding-system-for-write
(see section 33.10.6 Specifying a Coding System for One Operation).
(regexp
. coding-system)
; a file whose first few kilobytes match
regexp is decoded with coding-system when its contents are
read into a buffer. The settings in this alist take priority over
coding:
tags in the files and the contents of
file-coding-system-alist
(see below). The default value is set
so that Emacs automatically recognizes mail files in Babyl format and
reads them with no code conversions.
(pattern . coding)
, where pattern is a regular
expression that matches certain file names. The element applies to file
names that match pattern.
The CDR of the element, coding, should be either a coding system, a cons cell containing two coding systems, or a function name (a symbol with a function definition). If coding is a coding system, that coding system is used for both reading the file and writing it. If coding is a cons cell containing two coding systems, its CAR specifies the coding system for decoding, and its CDR specifies the coding system for encoding.
If coding is a function name, the function must return a coding system or a cons cell containing two coding systems. This value is used as described above.
file-coding-system-alist
, except that pattern is
matched against the program name used to start the subprocess. The coding
system or systems specified in this alist are used to initialize the
coding systems used for I/O to the subprocess, but you can specify
other coding systems later using set-process-coding-system
.
Warning: Coding systems such as undecided
, which
determine the coding system from the data, do not work entirely reliably
with asynchronous subprocess output. This is because Emacs handles
asynchronous subprocess output in batches, as it arrives. If the coding
system leaves the character code conversion unspecified, or leaves the
end-of-line conversion unspecified, Emacs must try to detect the proper
conversion from one batch at a time, and this does not always work.
Therefore, with an asynchronous subprocess, if at all possible, use a
coding system which determines both the character code conversion and
the end of line conversion--that is, one like latin-1-unix
,
rather than undecided
or latin-1
.
file-coding-system-alist
,
with the difference that the pattern in an element may be either a
port number or a regular expression. If it is a regular expression, it
is matched against the network service name used to open the network
stream.
The value should be a cons cell of the form (input-coding
. output-coding)
. Here input-coding applies to input from
the subprocess, and output-coding applies to output to it.
(decoding-system encoding-system) |
The first element, decoding-system, is the coding system to use for decoding (in case operation does decoding), and encoding-system is the coding system for encoding (in case operation does encoding).
The argument operation should be a symbol, one of
insert-file-contents
, write-region
, call-process
,
call-process-region
, start-process
, or
open-network-stream
. These are the names of the Emacs I/O primitives
that can do coding system conversion.
The remaining arguments should be the same arguments that might be given
to that I/O primitive. Depending on the primitive, one of those
arguments is selected as the target. For example, if
operation does file I/O, whichever argument specifies the file
name is the target. For subprocess primitives, the process name is the
target. For open-network-stream
, the target is the service name
or port number.
This function looks up the target in file-coding-system-alist
,
process-coding-system-alist
, or
network-coding-system-alist
, depending on operation.
See section 33.10.5 Default Coding Systems.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |