From: Kenichi Handa Date: Fri, 27 May 2005 11:20:16 +0000 (+0000) Subject: Don't register a coding system into X-Git-Tag: emacs-pretest-22.0.90~9501 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=848613f8691dfab1b9e4de0b0a7a3254d9e00fb4;p=emacs.git Don't register a coding system into non-iso-charset-alist more than once. (cp-make-coding-system): Likewise. --- diff --git a/lisp/international/code-pages.el b/lisp/international/code-pages.el index 73c953a2fe4..c70388ba4c9 100644 --- a/lisp/international/code-pages.el +++ b/lisp/international/code-pages.el @@ -193,15 +193,18 @@ Return an updated `non-iso-charset-alist'." ;; a separate table that only translates the coding ;; system's safe-chars. (cons 'translation-table-for-input 'ucs-mule-to-mule-unicode))) - (push (list ',name - nil ; charset list - ',decoder - (let (l) ; code range - (dolist (elt (reverse codes)) - (push (cdr elt) l) - (push (car elt) l)) - (list l))) - non-iso-charset-alist)))) + (let ((slot (assq ',name non-iso-charset-alist)) + (elt (list nil ; charset list + ',decoder + (let (l) ; code range + (dolist (elt (reverse codes)) + (push (cdr elt) l) + (push (car elt) l)) + (list l))))) + (if (not slot) + (push (cons ',name elt) non-iso-charset-alist) + (setcdr slot elt) + non-iso-charset-alist))))) (eval-when-compile (defvar non-iso-charset-alist)) @@ -4502,11 +4505,14 @@ Return an updated `non-iso-charset-alist'." ;; Define cp125* as aliases for all windows-125*, so on Windows ;; we can just concat "cp" to the ANSI codepage we get from the system ;; and not have to worry about whether it should be "cp" or "windows-". - (if (coding-system-p w) - (define-coding-system-alias c w)) - ;; Compatibility with codepage.el, though cp... are not the - ;; canonical names. - (push (assoc w non-iso-charset-alist) non-iso-charset-alist))) + (when (coding-system-p w) + (define-coding-system-alias c w) + ;; Compatibility with codepage.el, though cp... are not the + ;; canonical names. + (if (not (assq c non-iso-charset-alist)) + (let ((slot (assq w non-iso-charset-alist))) + (if slot + (push (cons c (cdr slot)) non-iso-charset-alist))))))) (provide 'code-pages)