@end defvar
@defun position-bytes position
-@tindex position-bytes
Return the byte-position corresponding to buffer position
@var{position} in the current buffer. This is 1 at the start of the
buffer, and counts upward in bytes. If @var{position} is out of
@end defun
@defun byte-to-position byte-position
-@tindex byte-to-position
Return the buffer position corresponding to byte-position
@var{byte-position} in the current buffer. If @var{byte-position} is
out of range, the value is @code{nil}.
@end defun
@defun charset-plist charset
-@tindex charset-plist
This function returns the charset property list of the character set
@var{charset}. Although @var{charset} is a symbol, this is not the same
as the property list of that symbol. Charset properties are used for
@end defun
@defun charset-bytes charset
-@tindex charset-bytes
This function returns the number of bytes used to represent a character
in character set @var{charset}.
@end defun
return value is just one coding system, the one that is highest in
priority.
-If the region contains only @acronym{ASCII} characters, the value
-is @code{undecided} or @code{(undecided)}, or a variant specifying
+If the region contains only @acronym{ASCII} characters except for such
+ISO-2022 control characters ISO-2022 as @code{ESC}, the value is
+@code{undecided} or @code{(undecided)}, or a variant specifying
end-of-line conversion, if that can be deduced from the text.
@end defun
@code{insert-file-contents}, @code{write-region},
@code{start-process}, @code{call-process}, @code{call-process-region},
or @code{open-network-stream}. These are the names of the Emacs I/O
-primitives that can do coding system conversion.
+primitives that can do character code and eol 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 @dfn{target}. For example, if
+to the corresponding I/O primitive. Depending on the primitive, one
+of those arguments is selected as the @dfn{target}. For example, if
@var{operation} does file I/O, whichever argument specifies the file
name is the target. For subprocess primitives, the process name is the
target. For @code{open-network-stream}, the target is the service name
Depending on @var{operation}, this function looks up the target in
@code{file-coding-system-alist}, @code{process-coding-system-alist},
-or @code{network-coding-system-alist}.
+or @code{network-coding-system-alist}. If the target is found in the
+alist, @code{find-operation-coding-system} returns its association in
+the alist; otherwise it returns @code{nil}.
+
+If @var{operation} is @code{insert-file-contents}, the argument
+corresponding to the target may be a cons cell of the form
+@code{(@var{filename} . @var{buffer})}). In that case, @var{filename}
+is a file name to look up in @code{file-coding-system-alist}, and
+@var{buffer} is a buffer that contains the file's contents (not yet
+decoded). If @code{file-coding-system-alist} specifies a function to
+call for this file, and that function needs to examine the file's
+contents (as it usually does), it should examine the contents of
+@var{buffer} instead of reading the file.
@end defun
@node Specifying Coding Systems
how Emacs interacts with these features.
@defvar locale-coding-system
-@tindex locale-coding-system
@cindex keyboard input decoding on X
This variable specifies the coding system to use for decoding system
error messages and---on X Window system only---keyboard input, for
@end defvar
@defvar system-messages-locale
-@tindex system-messages-locale
This variable specifies the locale to use for generating system error
messages. Changing the locale can cause messages to come out in a
different language or in a different orthography. If the variable is
@end defvar
@defvar system-time-locale
-@tindex system-time-locale
This variable specifies the locale to use for formatting time values.
Changing the locale can cause messages to appear according to the
conventions of a different language. If the variable is @code{nil}, the