Mercurial > emacs
changeset 24345:26fcfef41d24
(coding-system-list): Moved here from
mule-util.el to avoid autoloading mule-util by the call of
select-safe-coding-system.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Thu, 18 Feb 1999 13:11:24 +0000 |
parents | 8b7ef7fb9e2e |
children | 68d26067bb74 |
files | lisp/international/mule.el |
diffstat | 1 files changed, 19 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/international/mule.el Thu Feb 18 12:52:07 1999 +0000 +++ b/lisp/international/mule.el Thu Feb 18 13:11:24 1999 +0000 @@ -481,6 +481,25 @@ (setq len (/ len 2)))) (setcdr tem (cons coding-system (cdr tem)))))) +(defun coding-system-list (&optional base-only) + "Return a list of all existing coding systems. +If optional arg BASE-ONLY is non-nil, only base coding systems are listed." + (let* ((codings (copy-sequence coding-system-list)) + (tail (cons nil codings))) + ;; Remove subsidiary coding systems (eol variants) and alias + ;; coding systems (if necessary). + (while (cdr tail) + (let* ((coding (car (cdr tail))) + (aliases (coding-system-get coding 'alias-coding-systems))) + (if (or + ;; CODING is an eol variant if not in ALIASES. + (not (memq coding aliases)) + ;; CODING is an alias if it is not car of ALIASES. + (and base-only (not (eq coding (car aliases))))) + (setcdr tail (cdr (cdr tail))) + (setq tail (cdr tail))))) + codings)) + ;; Make subsidiary coding systems (eol-type variants) of CODING-SYSTEM. (defun make-subsidiary-coding-system (coding-system) (let ((coding-spec (coding-system-spec coding-system))