# HG changeset patch # User Kenichi Handa # Date 919343484 0 # Node ID 26fcfef41d24c37dd9b969c0ef198f47ded6c797 # Parent 8b7ef7fb9e2e70b1fda08780440b1187e279c6ff (coding-system-list): Moved here from mule-util.el to avoid autoloading mule-util by the call of select-safe-coding-system. diff -r 8b7ef7fb9e2e -r 26fcfef41d24 lisp/international/mule.el --- 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))