[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#5387: MS950 alias for CP950 charset
From: |
Kenichi Handa |
Subject: |
bug#5387: MS950 alias for CP950 charset |
Date: |
Fri, 15 Jan 2010 21:57:07 +0900 |
In article <87my0fy44r.fsf@jidanni.org>, jidanni@jidanni.org writes:
>>> And it turns out MS950 is an alias for CP950,
>>> Where did you get that information?
> I inferred it from my single encounter.
>>> I checked <http://www.iana.org/assignments/character-sets>
>>> and found that only MS936 is listed as an alias of GBK.
> That makes two... or 1.5.
And,
iconv: MS932, MS936, MSCP949, MSCP1361
python: ms932, ms936, ms949, ms950, ms1361
hmmm...
I've just installed the attached change to accept msXXX.
canonicalize-coding-system-name is used by
coding-system-from-name, and, at least, rmail uses it.
If you are using rmail, please try the latest code, or the
attached patch.
---
Kenichi Handa
handa@m17n.org
=== modified file 'lisp/international/mule-cmds.el'
--- lisp/international/mule-cmds.el 2010-01-13 08:35:10 +0000
+++ lisp/international/mule-cmds.el 2010-01-15 12:33:24 +0000
@@ -226,19 +226,22 @@
;; and delimiter characters. Support function of
;; coding-system-from-name.
(defun canonicalize-coding-system-name (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))
+ (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)))
(defun coding-system-from-name (name)
"Return a coding system whose name matches with NAME (string or symbol)."