1315
|
1 ;;; mule-win32-init.el --- initialization code for MS Windows/Cygwin under MULE
|
|
2 ;;; Copyright (C) 2001, 2002 Ben Wing.
|
|
3
|
|
4 ;; This file is part of XEmacs.
|
|
5
|
|
6 ;; XEmacs is free software; you can redistribute it and/or modify it
|
|
7 ;; under the terms of the GNU General Public License as published by
|
|
8 ;; the Free Software Foundation; either version 2, or (at your option)
|
|
9 ;; any later version.
|
|
10
|
|
11 ;; XEmacs is distributed in the hope that it will be useful, but
|
|
12 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14 ;; General Public License for more details.
|
|
15
|
|
16 ;; You should have received a copy of the GNU General Public License
|
|
17 ;; along with XEmacs; see the file COPYING. If not, write to the
|
|
18 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
19 ;; Boston, MA 02111-1307, USA.
|
|
20
|
|
21 (make-coding-system
|
|
22 'mswindows-multibyte 'mswindows-multibyte
|
|
23 "MS Windows Multibyte (current code page)"
|
|
24 '(mnemonic "MSW-MB"
|
|
25 documentation
|
|
26 "MS Windows multibyte -- current code page.
|
|
27
|
|
28 This implements the encoding specified by the current code page --
|
|
29 i.e. the ANSI code page corresponding to the current locale, as
|
|
30 returned by
|
|
31
|
|
32 (mswindows-locale-code-page (mswindows-current-locale))
|
|
33 "
|
|
34 locale current
|
|
35 code-page ansi))
|
|
36
|
|
37 ;; we temporarily aliased this to raw-text in intl-win32.c.
|
|
38 (define-coding-system-alias 'mswindows-multibyte-system-default nil)
|
|
39 (make-coding-system
|
|
40 'mswindows-multibyte-system-default 'mswindows-multibyte
|
|
41 "MS Windows Multibyte (system default code page)"
|
|
42 '(mnemonic "MSW-MB-SysDef"
|
|
43 documentation
|
|
44 "MS Windows multibyte -- system default code page.
|
|
45
|
|
46 This implements the encoding specified by the system default code page
|
|
47 -- i.e. the ANSI code page corresponding to the system default locale,
|
|
48 as returned by
|
|
49
|
|
50 (mswindows-locale-code-page (mswindows-system-default-locale))
|
|
51 "
|
|
52 locale system-default
|
|
53 code-page ansi))
|
|
54
|
|
55 (make-coding-system
|
|
56 'mswindows-multibyte-user-default 'mswindows-multibyte
|
|
57 "MS Windows Multibyte (user default code page)"
|
|
58 '(mnemonic "MSW-MB-UserDef"
|
|
59 documentation
|
|
60 "MS Windows multibyte -- user default code page.
|
|
61
|
|
62 This implements the encoding specified by the user default code page
|
|
63 -- i.e. the ANSI code page corresponding to the user default locale,
|
|
64 as returned by
|
|
65
|
|
66 (mswindows-locale-code-page (mswindows-user-default-locale))
|
|
67 "
|
|
68 locale user-default
|
|
69 code-page ansi))
|
|
70
|
|
71 (make-coding-system
|
|
72 'mswindows-multibyte-oem 'mswindows-multibyte
|
|
73 "MS Windows Multibyte (current OEM code page)"
|
|
74 '(mnemonic "MSW-MB-OEM"
|
|
75 documentation
|
|
76 "MS Windows multibyte -- current OEM code page.
|
|
77
|
|
78 This implements the encoding specified by the current OEM code page
|
|
79 -- i.e. the OEM code page corresponding to the current locale,
|
|
80 as returned by
|
|
81
|
|
82 (mswindows-locale-oem-code-page (mswindows-current-locale))
|
|
83 "
|
|
84 locale current
|
|
85 code-page oem))
|
|
86
|
|
87 (make-coding-system
|
|
88 'mswindows-multibyte-oem-system-default 'mswindows-multibyte
|
|
89 "MS Windows Multibyte (system default OEM code page)"
|
|
90 '(mnemonic "MSW-MB-OEM-SysDef"
|
|
91 documentation
|
|
92 "MS Windows multibyte -- system default OEM code page.
|
|
93
|
|
94 This implements the encoding specified by the system default OEM code page
|
|
95 -- i.e. the OEM code page corresponding to the system default locale,
|
|
96 as returned by
|
|
97
|
|
98 (mswindows-locale-oem-code-page (mswindows-system-default-locale))
|
|
99 "
|
|
100 locale system-default
|
|
101 code-page oem))
|
|
102
|
|
103 (make-coding-system
|
|
104 'mswindows-multibyte-oem-user-default 'mswindows-multibyte
|
|
105 "MS Windows Multibyte (user default OEM code page)"
|
|
106 '(mnemonic "MSW-MB-OEM-UserDef"
|
|
107 documentation
|
|
108 "MS Windows multibyte -- user default OEM code page.
|
|
109
|
|
110 This implements the encoding specified by the user default OEM code page
|
|
111 -- i.e. the OEM code page corresponding to the user default locale,
|
|
112 as returned by
|
|
113
|
|
114 (mswindows-locale-oem-code-page (mswindows-user-default-locale))
|
|
115 "
|
|
116 locale user-default
|
|
117 code-page oem))
|
|
118
|
4145
|
119 (loop
|
|
120 for (ansioem cp category name)
|
|
121 in '(("EBCDIC" 037 no-conversion "EBCDIC")
|
|
122 ("OEM" 437 no-conversion "MS-DOS United States")
|
|
123 ("EBCDIC" 500 no-conversion "EBCDIC \"500V1\"")
|
|
124
|
|
125 ;; This is ISO-8859-6.
|
|
126 ;; ("OEM" 708 "Arabic (ASMO 708)")
|
|
127 ("OEM" 709 no-conversion "Arabic (ASMO 449+, BCON V4)")
|
|
128 ("OEM" 710 no-conversion "Arabic (Transparent Arabic)")
|
|
129 ("OEM" 720 no-conversion "Arabic (Transparent ASMO)")
|
|
130 ("OEM" 737 no-conversion "Greek (formerly 437G)")
|
|
131 ("OEM" 775 no-conversion "Baltic")
|
|
132 ("OEM" 850 no-conversion "MS-DOS Multilingual (Latin I)")
|
|
133 ("OEM" 852 no-conversion "MS-DOS Slavic (Latin II)")
|
|
134 ("OEM" 855 no-conversion "IBM Cyrillic (primarily Russian)")
|
|
135 ("OEM" 857 no-conversion "IBM Turkish")
|
|
136 ("OEM" 860 no-conversion "MS-DOS Portuguese")
|
|
137 ("OEM" 861 no-conversion "MS-DOS Icelandic")
|
|
138 ("OEM" 862 no-conversion "Hebrew")
|
|
139 ("OEM" 863 no-conversion "MS-DOS Canadian-French")
|
|
140 ("OEM" 864 no-conversion "Arabic")
|
|
141 ("OEM" 865 no-conversion "MS-DOS Nordic")
|
|
142 ; ("OEM" 866 no-conversion "MS-DOS Russian")
|
|
143 ("OEM" 869 no-conversion "IBM Modern Greek")
|
|
144 ("Ansi/OEM" 874 no-conversion "Thai")
|
|
145 ("EBCDIC" 875 no-conversion "EBCDIC")
|
|
146 ("Ansi/OEM" 932 shift_jis "Japanese")
|
|
147 ("Ansi/OEM" 936 iso_8_2 "Chinese (PRC, Singapore)")
|
|
148 ("Ansi/OEM" 949 iso_8_2 "Korean")
|
|
149 ("Ansi/OEM" 950 big5 "Chinese (Taiwan; Hong Kong SAR, PRC)")
|
|
150 ("EBCDIC" 1026 no-conversion "EBCDIC")
|
|
151
|
|
152 ;; This code page doesn't work. See
|
|
153 ;; http://blogs.msdn.com/michkap/archive/2005/08/01/446475.aspx
|
|
154 ; ("ANSI" 1200 utf-16-little-endian "Unicode (BMP of ISO 10646)")
|
|
155
|
|
156 ("ANSI" 1250 no-conversion "Windows 3.1 Eastern European")
|
|
157
|
|
158 ;; We implement this ourselves, and keeping the same implementation
|
|
159 ;; across platforms means behaviour is a bit more consistent.
|
|
160 ; ("ANSI" 1251 no-conversion "Windows 3.1 Cyrillic")
|
|
161 ; ("ANSI" 1252 no-conversion "Windows 3.1 US (ANSI)")
|
|
162
|
|
163 ; ("ANSI" 1253 no-conversion "Windows 3.1 Greek")
|
|
164 ("ANSI" 1254 no-conversion "Windows 3.1 Turkish")
|
|
165 ("ANSI" 1255 no-conversion "Hebrew")
|
|
166 ("ANSI" 1256 no-conversion "Arabic")
|
|
167 ("ANSI" 1257 no-conversion "Baltic")
|
|
168 ("ANSI" 1258 no-conversion "VietNam")
|
|
169 ;; #### Is this category right? I don't have Lunde to hand, and the
|
|
170 ;; online information on Johab is scant.
|
|
171 ("Ansi/OEM" 1361 iso_8_2 "Korean (Johab)")
|
|
172 ("Mac" 10000 no-conversion "Macintosh Roman")
|
|
173 ("Mac" 10001 shift_jis "Macintosh Japanese")
|
|
174 ("Mac" 10006 no-conversion "Macintosh Greek I")
|
|
175 ("Mac" 10007 no-conversion "Macintosh Cyrillic")
|
|
176 ("Mac" 10029 no-conversion "Macintosh Latin 2")
|
|
177 ("Mac" 10079 no-conversion "Macintosh Icelandic")
|
|
178 ("Mac" 10081 no-conversion "Macintosh Turkish"))
|
|
179 do
|
|
180 (make-coding-system
|
|
181 (intern (format "windows-%s" cp))
|
|
182 'mswindows-multibyte
|
|
183 (format "MS Windows code page %s (%s, %s)" cp ansioem name)
|
|
184 `(mnemonic
|
|
185 ,(format "MSW-%s" cp)
|
|
186 code-page ,cp
|
|
187 documentation
|
|
188 ,(format
|
|
189 "MS Windows Multibyte -- code page %s (%s, %s).
|
1315
|
190
|
|
191 This implements the encoding specified by code page %s.
|
|
192 For more information on code pages, see `mswindows-charset-code-page'."
|
4145
|
193 cp ansioem name cp)))
|
|
194 (define-coding-system-alias
|
|
195 (intern (format "cp%s" cp))
|
|
196 (intern (format "windows-%s" cp)))
|
|
197 (coding-system-put (intern (format "windows-%s" cp)) 'category category))
|
|
198
|