emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r99337: international/mule-cmds.el (c


From: Kenichi Handa
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r99337: international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Date: Fri, 15 Jan 2010 21:52:50 +0900
User-agent: Bazaar (2.0.2)

------------------------------------------------------------
revno: 99337 [merge]
committer: Kenichi Handa  <address@hidden>
branch nick: trunk
timestamp: Fri 2010-01-15 21:52:50 +0900
message:
  international/mule-cmds.el (canonicalize-coding-system-name): Convert 
"msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
modified:
  lisp/ChangeLog
  lisp/international/mule-cmds.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2010-01-15 03:59:04 +0000
+++ b/lisp/ChangeLog    2010-01-15 12:40:13 +0000
@@ -1,3 +1,8 @@
+2010-01-15  Kenichi Handa  <address@hidden>
+
+       * international/mule-cmds.el (canonicalize-coding-system-name):
+       Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
+
 2010-01-15  Glenn Morris  <address@hidden>
 
        * log-view.el (top-level): Require 'wid-edit.  (Bug#5311)

=== modified file 'lisp/international/mule-cmds.el'
--- a/lisp/international/mule-cmds.el   2010-01-13 08:35:10 +0000
+++ b/lisp/international/mule-cmds.el   2010-01-15 12:35:31 +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)."


reply via email to

[Prev in Thread] Current Thread [Next in Thread]