Function: canonicalize-coding-system-name

canonicalize-coding-system-name is a byte-compiled function defined in mule-cmds.el.gz.

Signature

(canonicalize-coding-system-name NAME)

Source Code

;; Defined in /usr/src/emacs/lisp/international/mule-cmds.el.gz
;; Canonicalize the coding system name NAME by removing some prefixes
;; and delimiter characters.  Support function of
;; coding-system-from-name.
(defun canonicalize-coding-system-name (name)
  (if (string-match "^\\(ms\\|ibm\\|windows-\\)\\([0-9]+\\)$" name)
      ;; "ms950", "ibm950", "windows-950" -> "cp950"
      (concat "cp" (match-string 2 name))
    (if (string-match "^iso[-_ ]?[0-9]" name)
	;; "iso-8859-1" -> "8859-1", "iso-2022-jp" ->"2022-jp"
	(setq name (substring name (1- (match-end 0)))))
    (let ((idx (string-match "[-_ /]" name)))
      ;; Delete "-", "_", " ", "/" but do distinguish "16-be" and "16be".
      (while idx
	(if (and (>= idx 2)
		 (eq (string-match "16-[lb]e$" name (- idx 2))
		     (- idx 2)))
	    (setq idx (string-match "[-_ /]" name (match-end 0)))
	  (setq name (concat (substring name 0 idx) (substring name (1+ idx)))
		idx (string-match "[-_ /]" name idx))))
      name)))