Function: modify-coding-system-alist
modify-coding-system-alist is a byte-compiled function defined in
mule.el.gz.
Signature
(modify-coding-system-alist TARGET-TYPE REGEXP CODING-SYSTEM)
Documentation
Modify one of look up tables for finding a coding system on I/O operation.
There are three of such tables, file-coding-system-alist,
process-coding-system-alist, and network-coding-system-alist.
TARGET-TYPE specifies which of them to modify.
If it is file, it affects file-coding-system-alist (which see).
If it is process, it affects process-coding-system-alist (which see).
If it is network, it affects network-coding-system-alist (which see).
REGEXP is a regular expression matching a target of I/O operation.
The target is a file name if TARGET-TYPE is file, a program name if
TARGET-TYPE is process, or a network service name or a port number
to connect to if TARGET-TYPE is network.
CODING-SYSTEM is a coding system to perform code conversion on the I/O operation, or a cons cell (DECODING . ENCODING) specifying the coding systems for decoding and encoding respectively, or a function symbol which, when called, returns such a cons cell.
Source Code
;; Defined in /usr/src/emacs/lisp/international/mule.el.gz
(defun modify-coding-system-alist (target-type regexp coding-system)
"Modify one of look up tables for finding a coding system on I/O operation.
There are three of such tables, `file-coding-system-alist',
`process-coding-system-alist', and `network-coding-system-alist'.
TARGET-TYPE specifies which of them to modify.
If it is `file', it affects `file-coding-system-alist' (which see).
If it is `process', it affects `process-coding-system-alist' (which see).
If it is `network', it affects `network-coding-system-alist' (which see).
REGEXP is a regular expression matching a target of I/O operation.
The target is a file name if TARGET-TYPE is `file', a program name if
TARGET-TYPE is `process', or a network service name or a port number
to connect to if TARGET-TYPE is `network'.
CODING-SYSTEM is a coding system to perform code conversion on the I/O
operation, or a cons cell (DECODING . ENCODING) specifying the coding
systems for decoding and encoding respectively, or a function symbol
which, when called, returns such a cons cell."
(or (memq target-type '(file process network))
(error "Invalid target type: %s" target-type))
(or (stringp regexp)
(and (eq target-type 'network) (integerp regexp))
(error "Invalid regular expression: %s" regexp))
(if (symbolp coding-system)
(if (not (fboundp coding-system))
(progn
(check-coding-system coding-system)
(setq coding-system (cons coding-system coding-system))))
(check-coding-system (car coding-system))
(check-coding-system (cdr coding-system)))
(cond ((eq target-type 'file)
(let ((slot (assoc regexp file-coding-system-alist)))
(if slot
(setcdr slot coding-system)
(setq file-coding-system-alist
(cons (cons regexp coding-system)
file-coding-system-alist)))))
((eq target-type 'process)
(let ((slot (assoc regexp process-coding-system-alist)))
(if slot
(setcdr slot coding-system)
(setq process-coding-system-alist
(cons (cons regexp coding-system)
process-coding-system-alist)))))
(t
(let ((slot (assoc regexp network-coding-system-alist)))
(if slot
(setcdr slot coding-system)
(setq network-coding-system-alist
(cons (cons regexp coding-system)
network-coding-system-alist)))))))