aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
Diffstat (limited to 'admin')
-rw-r--r--admin/charsets/Makefile324
-rw-r--r--admin/charsets/Makefile.in335
-rwxr-xr-xadmin/charsets/mapconv33
-rw-r--r--admin/charsets/mapfiles/PTCP1542
-rw-r--r--admin/notes/unicode19
5 files changed, 376 insertions, 337 deletions
diff --git a/admin/charsets/Makefile b/admin/charsets/Makefile
deleted file mode 100644
index e5cf2508d85..00000000000
--- a/admin/charsets/Makefile
+++ /dev/null
@@ -1,324 +0,0 @@
1# Makefile -- Makefile to generate charset maps in etc/charsets.
2# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
3# National Institute of Advanced Industrial Science and Technology (AIST)
4# Registration Number H13PRO009
5#
6# This file is part of GNU Emacs.
7
8# GNU Emacs is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
12
13# GNU Emacs is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17
18# You should have received a copy of the GNU General Public License
19# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
20
21# Commentary:
22
23# If your system doesn't have the directory /usr/share/i18n/charmaps,
24# get the source of the latest glibc, gzip all the charmap files in
25# the directory "localedate/charmaps", and set the variable
26# GLIBC_CHARMAPS to that directory.
27
28GLIBC_CHARMAPS=/usr/share/i18n/charmaps
29
30CHARSETS = ${ISO8859} ${IBM} ${CODEPAGE} ${CJK} ${MISC} ${MULE}
31
32# Note: We can not prepend "ISO-" to these map files because of file
33# name limits on DOS.
34ISO8859 = \
35 8859-2.map 8859-3.map 8859-4.map 8859-5.map 8859-6.map 8859-7.map \
36 8859-8.map 8859-9.map 8859-10.map 8859-11.map 8859-13.map 8859-14.map \
37 8859-15.map 8859-16.map
38
39IBM = \
40 IBM037.map IBM038.map \
41 IBM256.map IBM273.map IBM274.map IBM275.map IBM277.map IBM278.map \
42 IBM280.map IBM281.map IBM284.map IBM285.map IBM290.map IBM297.map \
43 IBM420.map IBM423.map IBM424.map IBM437.map IBM500.map IBM850.map \
44 IBM851.map IBM852.map IBM855.map IBM856.map IBM857.map IBM860.map \
45 IBM861.map IBM862.map IBM863.map IBM864.map IBM865.map IBM866.map \
46 IBM868.map IBM869.map IBM870.map IBM871.map IBM874.map IBM875.map \
47 IBM880.map IBM891.map IBM903.map IBM904.map IBM905.map IBM918.map \
48 IBM1004.map IBM1026.map IBM1047.map
49
50CODEPAGE = \
51 CP737.map CP775.map CP1125.map\
52 CP1250.map CP1251.map CP1252.map CP1253.map CP1254.map \
53 CP1255.map CP1256.map CP1257.map CP1258.map \
54 CP10007.map \
55 CP720.map CP858.map
56
57CJK = GB2312.map GBK.map GB180302.map GB180304.map \
58 BIG5.map BIG5-HKSCS.map\
59 CNS-1.map CNS-2.map CNS-3.map CNS-4.map CNS-5.map CNS-6.map CNS-7.map \
60 CNS-F.map \
61 JISX0201.map JISX0208.map JISX0212.map JISX2131.map JISX2132.map \
62 JISC6226.map CP932-2BYTE.map JISX213A.map\
63 KSC5601.map KSC5636.map JOHAB.map
64
65MISC = KOI-8.map KOI8-R.map KOI8-U.map KOI8-T.map ALTERNATIVNYJ.map \
66 MIK.map PTCP154.map \
67 TIS-620.map VISCII.map VSCII.map VSCII-2.map\
68 KA-PS.map KA-ACADEMY.map \
69 HP-ROMAN8.map NEXTSTEP.map MACINTOSH.map EBCDICUK.map EBCDICUS.map \
70 stdenc.map symbol.map \
71 CP949-2BYTE.map \
72 BIG5-1.map BIG5-2.map
73
74# Emacs-mule charsets.
75MULE = MULE-ethiopic.map MULE-ipa.map MULE-is13194.map \
76 MULE-sisheng.map MULE-tibetan.map \
77 MULE-lviscii.map MULE-uviscii.map
78
79TRANS_TABLE = cp51932.el eucjp-ms.el
80SED_SCRIPT = jisx2131-filter
81
82all: ${CHARSETS} ${TRANS_TABLE}
83
84AWK = gawk
85
86# Rules for each charset
87
88VSCII.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz mapconv compact.awk
89 # Generating $@...
90 @./mapconv $< '/^<.*[ ]\/x[0-9a-f].[ ]/' GLIBC-1 compact.awk > $@
91
92VSCII-2.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz mapconv compact.awk
93 # Generating $@...
94 @./mapconv $< '/^<.*[ ]\/x[2-7a-f].[ ]/' GLIBC-1 compact.awk \
95 | sed 's/0x20-0x7F.*/0x00-0x7F 0x0000/' > $@
96
97ALTERNATIVNYJ.map: IBM866.map
98 # Generating $@...
99 @echo "# Modified from IBM866.map according to the chart at" > $@
100 @echo "# http://www.cyrillic.com/ref/cyrillic/koi-8alt.html," >> $@
101 @echo "# with guesses for the Unicodes of the glyphs." >> $@
102 @sed -e '1 d' \
103 -e '/0xF2/ s/ .*/ 0x2019/' \
104 -e '/0xF3/ s/ .*/ 0x2018/' \
105 -e '/0xF4/ s/ .*/ 0x0301/' \
106 -e '/0xF5/ s/ .*/ 0x0300/' \
107 -e '/0xF6/ s/ .*/ 0x203A/' \
108 -e '/0xF7/ s/ .*/ 0x2039/' \
109 -e '/0xF8/ s/ .*/ 0x2191/' \
110 -e '/0xF9/ s/ .*/ 0x2193/' \
111 -e '/0xFA/ s/ .*/ 0x00B1/' \
112 -e '/0xFB/ s/ .*/ 0x00F7/' < $< >> $@
113
114MIK.map: mapfiles/bulgarian-mik.txt mapconv compact.awk
115 # Generating $@...
116 @./mapconv $< '1,$$' CZYBORRA compact.awk > $@
117
118PTCP154.map: mapfiles/PTCP154 mapconv compact.awk
119 # Generating $@...
120 @./mapconv $< '/^0x/' IANA compact.awk > $@
121
122stdenc.map: mapfiles/stdenc.txt mapconv compact.awk
123 # Generating $@...
124 @./mapconv $< '/^[0-9A-Fa-f]/' UNICODE compact.awk > $@
125
126symbol.map: mapfiles/symbol.txt mapconv compact.awk
127 # Generating $@...
128 @./mapconv $< '/^[0-9A-Fa-f]/' UNICODE compact.awk > $@
129
130CP720.map: mapfiles/CP720.map
131 # Generating $@...
132 @cp $< $@
133
134CP858.map: mapfiles/CP858.map
135 # Generating $@...
136 @cp $< $@
137
138CP949-2BYTE.map: ${GLIBC_CHARMAPS}/CP949.gz mapconv compact.awk
139 # Generating $@...
140 @./mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@
141
142GB2312.map: ${GLIBC_CHARMAPS}/GB2312.gz mapconv compact.awk
143 # Generating $@...
144 @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@
145
146GBK.map: ${GLIBC_CHARMAPS}/GBK.gz mapconv compact.awk
147 # Generating $@...
148 @./mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@
149
150GB180302.map: ${GLIBC_CHARMAPS}/GB18030.gz mapconv gb180302.awk
151 # Generating $@...
152 @./mapconv $< '/^<.*[ ]\/x..\/x..[ ]/' GLIBC-2 gb180302.awk > $@
153
154GB180304.map: GB180302.map gb180304.awk
155 # Generating $@...
156 @$(AWK) -f gb180304.awk < $< > $@
157
158JISX0201.map: ${GLIBC_CHARMAPS}/JIS_X0201.gz mapconv compact.awk
159 # Generating $@...
160 @./mapconv $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 compact.awk > $@
161 @echo "# Generated by hand" >> $@
162 @echo "0xA1-0xDF 0xFF61" >> $@
163
164JISX0208.map: ${GLIBC_CHARMAPS}/EUC-JP.gz mapconv
165 # Generating $@...
166 @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \
167 | sed 's/0x2015/0x2014/' > $@
168
169JISX0212.map: ${GLIBC_CHARMAPS}/EUC-JP.gz mapconv compact.awk
170 # Generating $@...
171 @./mapconv $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 compact.awk > $@
172
173jisx2131-filter: mapfiles/JISX213A.map
174 @sed -n -e '/^#/d' -e 's,.*0x\([0-9A-Z]*\)$$,/0x0*\1$$/d,p' < $< > $@
175
176JISX2131.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz mapconv jisx2131-filter
177 # Generating $@...
178 @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \
179 | sed -f jisx2131-filter \
180 | sed -e 's/0x2015/0x2014/' -e 's/0x2299/0x29BF/' > $@
181
182JISX2132.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz mapconv
183 # Generating $@...
184 @./mapconv $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 > $@
185
186JISX213A.map: mapfiles/JISX213A.map
187 # Generating $@
188 @cp $< $@
189
190CP932-2BYTE.map: mapfiles/CP932.TXT mapconv cp932.awk
191 # Generating $@...
192 @./mapconv $< '/^0x[89A-F][0-9A-F][0-9A-F]/' UNICODE2 cp932.awk > $@
193
194cp51932.el: CP932-2BYTE.map cp51932.awk
195 @$(AWK) -f cp51932.awk < CP932-2BYTE.map > $@
196
197eucjp-ms.el: ${GLIBC_CHARMAPS}/EUC-JP-MS.gz eucjp-ms.awk
198 @zcat $< | $(AWK) -f eucjp-ms.awk > $@
199
200JISC6226.map: mapfiles/Uni2JIS mapconv kuten.awk
201 # Generating $@...
202# As Uni2JIS doesn't contain mappings of characters added to Unicode
203# recently, we add them manually here (including one correction for
204# U+005C vs U+FF3C). These changes are based on bogytech's blog at
205# http://bogytech.blogspot.jp/search/label/emacs.
206 @./mapconv $< '/^[^#].*0-/' YASUOKA kuten.awk \
207 | sed -e '/0x2140/s/005C/FF3C/' \
208 -e '$$ a 0x3442 0x3D4E' \
209 -e '$$ a 0x374E 0x25874' \
210 -e '$$ a 0x3764 0x28EF6' \
211 -e '$$ a 0x513D 0x2F80F' \
212 -e '$$ a 0x7045 0x9724' > $@
213
214KSC5601.map: ${GLIBC_CHARMAPS}/EUC-KR.gz mapconv compact.awk
215 # Generating $@...
216 @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@
217
218BIG5.map: ${GLIBC_CHARMAPS}/BIG5.gz mapconv compact.awk
219 # Generating $@...
220 @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2 > $@
221
222BIG5-1.map: BIG5.map mapconv big5.awk
223 # Generating $@...
224 @echo "# Generated from $<" > $@
225 @sed -n -e '/0xa140/,/0xc8fe/p' < $< | gawk -f big5.awk >> $@
226
227BIG5-2.map: BIG5.map mapconv big5.awk
228 # Generating $@...
229 @echo "# Generated from $<" > $@
230 @sed -n -e '/0xc940/,$$ p' < $< | gawk -f big5.awk >> $@
231
232BIG5-HKSCS.map: ${GLIBC_CHARMAPS}/BIG5-HKSCS.gz mapconv compact.awk
233 # Generating $@...
234 @./mapconv $< '/^<.*[ ]\/x[89a-f].\//' GLIBC-2 compact.awk > $@
235
236JOHAB.map: ${GLIBC_CHARMAPS}/JOHAB.gz mapconv compact.awk
237 # Generating $@...
238 @./mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@
239
240CNS-1.map: ${GLIBC_CHARMAPS}/EUC-TW.gz mapconv compact.awk
241 # Generating $@...
242 @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@
243
244# CNS-1.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
245# # Generating $@...
246# @./mapconv $< '/^C1/' KANJI-DATABASE compact.awk > $@
247
248CNS-2.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
249 # Generating $@...
250 @./mapconv $< '/^C2/' KANJI-DATABASE compact.awk > $@
251
252CNS-3.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
253 # Generating $@...
254 @./mapconv $< '/^C3/' KANJI-DATABASE compact.awk > $@
255
256CNS-4.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
257 # Generating $@...
258 @./mapconv $< '/^C4/' KANJI-DATABASE compact.awk > $@
259
260CNS-5.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
261 # Generating $@...
262 @./mapconv $< '/^C5/' KANJI-DATABASE compact.awk > $@
263
264CNS-6.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
265 # Generating $@...
266 @./mapconv $< '/^C6/' KANJI-DATABASE compact.awk > $@
267
268CNS-7.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
269 # Generating $@...
270 @./mapconv $< '/^C7/' KANJI-DATABASE compact.awk > $@
271
272CNS-F.map: ${GLIBC_CHARMAPS}/EUC-TW.gz mapconv compact.awk
273 # Generating $@...
274 @./mapconv $< '/^<.*\/x8e\/xaf/ s,/x8e/xaf,,' GLIBC-2-7 compact.awk > $@
275
276# General target to produce map files for mule charsets.
277MULE-%.map: mapfiles/MULE-%.map
278 # Generating $@...
279 @cp $< $@
280
281# General target to produce map files for ISO-8859, GEORGIAN, and
282# EBCDIC charsets. We can not use the original file name because of
283# file name limit on DOS. "KA" is ISO 639 language code for Georgian.
284
2858859-%.map: ${GLIBC_CHARMAPS}/ISO-8859-%.gz mapconv compact.awk
286 # Generating $@...
287 @./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@
288
289KA-%.map: ${GLIBC_CHARMAPS}/GEORGIAN-%.gz mapconv compact.awk
290 # Generating $@...
291 @./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@
292
293EBCDIC%.map: ${GLIBC_CHARMAPS}/EBCDIC-%.gz mapconv compact.awk
294 # Generating $@...
295 @./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@
296
297# General target to produce map files for single-byte charsets.
298
299%.map: ${GLIBC_CHARMAPS}/%.gz mapconv compact.awk
300 # Generating $@...
301 @./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@
302
303install:
304 @for f in ${CHARSETS}; do \
305 if test -r $$f; then \
306 if ! cmp -s $$f ../../etc/charsets/$$f; then \
307 echo updating $$f; \
308 cp $$f ../../etc/charsets; \
309 fi; \
310 fi; \
311 done
312 @for f in ${TRANS_TABLE}; do \
313 if test -r $$f; then \
314 if ! cmp -s $$f ../../lisp/international/$$f; then \
315 echo updating $$f; \
316 cp $$f ../../lisp/international; \
317 fi; \
318 fi; \
319 done
320
321# Clear files that are automatically generated.
322clean:
323 rm -f ${CHARSETS} ${TRANS_TABLE} ${SED_SCRIPT}
324
diff --git a/admin/charsets/Makefile.in b/admin/charsets/Makefile.in
new file mode 100644
index 00000000000..0b96cd19713
--- /dev/null
+++ b/admin/charsets/Makefile.in
@@ -0,0 +1,335 @@
1### @configure_input@
2
3# Copyright (C) 2015 Free Software Foundation, Inc.
4
5# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
6# National Institute of Advanced Industrial Science and Technology (AIST)
7# Registration Number H13PRO009
8#
9# This file is part of GNU Emacs.
10
11# GNU Emacs is free software: you can redistribute it and/or modify
12# it under the terms of the GNU General Public License as published by
13# the Free Software Foundation, either version 3 of the License, or
14# (at your option) any later version.
15
16# GNU Emacs is distributed in the hope that it will be useful,
17# but WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19# GNU General Public License for more details.
20
21# You should have received a copy of the GNU General Public License
22# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
23
24### Commentary:
25
26# Generate charset maps in etc/charsets.
27
28# If your system doesn't have the directory /usr/share/i18n/charmaps,
29# get the source of the latest glibc, gzip all the charmap files in
30# the directory "localedate/charmaps", and set the variable
31# GLIBC_CHARMAPS to that directory.
32
33SHELL = @SHELL@
34
35AWK = @AWK@
36
37srcdir = @srcdir@
38top_srcdir = @top_srcdir@
39
40charsetdir = ${top_srcdir}/etc/charsets
41lispintdir = ${top_srcdir}/lisp/international
42mapfiledir = ${srcdir}/mapfiles
43
44GLIBC_CHARMAPS=/usr/share/i18n/charmaps
45
46AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
47AM_V_GEN = $(am__v_GEN_@AM_V@)
48am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
49am__v_GEN_0 = @echo " GEN " $@;
50am__v_GEN_1 =
51
52AM_V_at = $(am__v_at_@AM_V@)
53am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
54am__v_at_0 = @
55am__v_at_1 =
56
57# Note: We can not prepend "ISO-" to these map files because of file
58# name limits on DOS.
59ISO8859 = \
60 8859-2.map 8859-3.map 8859-4.map 8859-5.map 8859-6.map 8859-7.map \
61 8859-8.map 8859-9.map 8859-10.map 8859-11.map 8859-13.map 8859-14.map \
62 8859-15.map 8859-16.map
63
64IBM = \
65 IBM037.map IBM038.map \
66 IBM256.map IBM273.map IBM274.map IBM275.map IBM277.map IBM278.map \
67 IBM280.map IBM281.map IBM284.map IBM285.map IBM290.map IBM297.map \
68 IBM420.map IBM423.map IBM424.map IBM437.map IBM500.map IBM850.map \
69 IBM851.map IBM852.map IBM855.map IBM856.map IBM857.map IBM860.map \
70 IBM861.map IBM862.map IBM863.map IBM864.map IBM865.map IBM866.map \
71 IBM868.map IBM869.map IBM870.map IBM871.map IBM874.map IBM875.map \
72 IBM880.map IBM891.map IBM903.map IBM904.map IBM905.map IBM918.map \
73 IBM1004.map IBM1026.map IBM1047.map
74
75CODEPAGE = \
76 CP737.map CP775.map CP1125.map\
77 CP1250.map CP1251.map CP1252.map CP1253.map CP1254.map \
78 CP1255.map CP1256.map CP1257.map CP1258.map \
79 CP10007.map \
80 CP720.map CP858.map
81
82CJK = GB2312.map GBK.map GB180302.map GB180304.map \
83 BIG5.map BIG5-HKSCS.map\
84 CNS-1.map CNS-2.map CNS-3.map CNS-4.map CNS-5.map CNS-6.map CNS-7.map \
85 CNS-F.map \
86 JISX0201.map JISX0208.map JISX0212.map JISX2131.map JISX2132.map \
87 JISC6226.map CP932-2BYTE.map JISX213A.map\
88 KSC5601.map KSC5636.map JOHAB.map
89
90MISC = KOI-8.map KOI8-R.map KOI8-U.map KOI8-T.map ALTERNATIVNYJ.map \
91 MIK.map PTCP154.map \
92 TIS-620.map VISCII.map VSCII.map VSCII-2.map\
93 KA-PS.map KA-ACADEMY.map \
94 HP-ROMAN8.map NEXTSTEP.map MACINTOSH.map EBCDICUK.map EBCDICUS.map \
95 stdenc.map symbol.map \
96 CP949-2BYTE.map \
97 BIG5-1.map BIG5-2.map
98
99# Emacs-mule charsets.
100MULE = MULE-ethiopic.map MULE-ipa.map MULE-is13194.map \
101 MULE-sisheng.map MULE-tibetan.map \
102 MULE-lviscii.map MULE-uviscii.map
103
104SED_SCRIPT = jisx2131-filter
105
106TRANS_TABLE = cp51932.el eucjp-ms.el
107TRANS_TABLE := $(addprefix ${lispintdir}/,${TRANS_TABLE})
108
109CHARSETS = ${ISO8859} ${IBM} ${CODEPAGE} ${CJK} ${MISC} ${MULE}
110CHARSETS := $(addprefix ${charsetdir}/,${CHARSETS})
111
112## Those charsets whose source is not in GLIBC_CHARMAPS.
113LOCAL = MIK.map PTCP154.map stdenc.map symbol.map CP720.map CP858.map \
114 JISX213A.map CP932-2BYTE.map JISC6226.map \
115 CNS-2.map CNS-3.map CNS-4.map CNS-5.map CNS-6.map CNS-7.map \
116 ${MULE}
117LOCAL := $(addprefix ${charsetdir}/,${LOCAL})
118
119
120.PHONY: all local
121
122all: ${CHARSETS} ${TRANS_TABLE}
123local: ${LOCAL} ${lispintdir}/cp51932.el
124
125## Rules for each charset.
126
127mapconv = ${srcdir}/mapconv
128run_mapconv = AWK=${AWK} ${srcdir}/mapconv
129big5 = ${srcdir}/big5.awk
130compact = ${srcdir}/compact.awk
131cp51932 = ${srcdir}/cp51932.awk
132cp932 = ${srcdir}/cp932.awk
133eucjp_ms = ${srcdir}/eucjp-ms.awk
134gb180302 = ${srcdir}/gb180302.awk
135gb180304 = ${srcdir}/gb180304.awk
136kuten = ${srcdir}/kuten.awk
137
138## Short aliases, eg VSCII.map = ${charsetdir}/VSCII.map
139define map_template
140 .PHONY: $(notdir ${1})
141 $(notdir ${1}): ${1}
142endef
143
144$(foreach mfile,${CHARSETS} ${TRANS_TABLE},$(eval $(call map_template,$(mfile))))
145
146${charsetdir}/VSCII.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz ${mapconv} ${compact}
147 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[0-9a-f].[ ]/' GLIBC-1 ${compact} > $@
148
149${charsetdir}/VSCII-2.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz ${mapconv} ${compact}
150 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[2-7a-f].[ ]/' GLIBC-1 ${compact} \
151 | sed 's/0x20-0x7F.*/0x00-0x7F 0x0000/' > $@
152
153${charsetdir}/ALTERNATIVNYJ.map: ${charsetdir}/IBM866.map
154 ${AM_V_GEN}(echo "# Modified from $(notdir $<) according to the chart at" && \
155 echo "# http://www.cyrillic.com/ref/cyrillic/koi-8alt.html," && \
156 echo "# with guesses for the Unicodes of the glyphs." && \
157 sed -e '1 d' \
158 -e '/0xF2/ s/ .*/ 0x2019/' \
159 -e '/0xF3/ s/ .*/ 0x2018/' \
160 -e '/0xF4/ s/ .*/ 0x0301/' \
161 -e '/0xF5/ s/ .*/ 0x0300/' \
162 -e '/0xF6/ s/ .*/ 0x203A/' \
163 -e '/0xF7/ s/ .*/ 0x2039/' \
164 -e '/0xF8/ s/ .*/ 0x2191/' \
165 -e '/0xF9/ s/ .*/ 0x2193/' \
166 -e '/0xFA/ s/ .*/ 0x00B1/' \
167 -e '/0xFB/ s/ .*/ 0x00F7/' < $< ) > $@
168
169${charsetdir}/MIK.map: ${mapfiledir}/bulgarian-mik.txt ${mapconv} ${compact}
170 ${AM_V_GEN}${run_mapconv} $< '1,$$' CZYBORRA ${compact} > $@
171
172${charsetdir}/PTCP154.map: ${mapfiledir}/PTCP154 ${mapconv} ${compact}
173 ${AM_V_GEN}${run_mapconv} $< '/^0x/' IANA ${compact} > $@
174
175${charsetdir}/stdenc.map: ${mapfiledir}/stdenc.txt ${mapconv} ${compact}
176 ${AM_V_GEN}${run_mapconv} $< '/^[0-9A-Fa-f]/' UNICODE ${compact} > $@
177
178${charsetdir}/symbol.map: ${mapfiledir}/symbol.txt ${mapconv} ${compact}
179 ${AM_V_GEN}${run_mapconv} $< '/^[0-9A-Fa-f]/' UNICODE ${compact} > $@
180
181${charsetdir}/CP720.map: ${mapfiledir}/CP720.map
182 ${AM_V_GEN}cp $< $@
183
184${charsetdir}/CP858.map: ${mapfiledir}/CP858.map
185 ${AM_V_GEN}cp $< $@
186
187${charsetdir}/CP949-2BYTE.map: ${GLIBC_CHARMAPS}/CP949.gz ${mapconv} ${compact}
188 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 ${compact} > $@
189
190${charsetdir}/GB2312.map: ${GLIBC_CHARMAPS}/GB2312.gz ${mapconv} ${compact}
191 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 ${compact} > $@
192
193${charsetdir}/GBK.map: ${GLIBC_CHARMAPS}/GBK.gz ${mapconv} ${compact}
194 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 ${compact} > $@
195
196${charsetdir}/GB180302.map: ${GLIBC_CHARMAPS}/GB18030.gz ${mapconv} ${gb180302}
197 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x..\/x..[ ]/' GLIBC-2 ${gb180302} > $@
198
199${charsetdir}/GB180304.map: ${charsetdir}/GB180302.map ${gb180304}
200 ${AM_V_GEN}$(AWK) -f ${gb180304} < $< > $@
201
202${charsetdir}/JISX0201.map: ${GLIBC_CHARMAPS}/JIS_X0201.gz ${mapconv} ${compact}
203 ${AM_V_GEN}(${mapconv} $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 ${compact} && \
204 echo "# Generated by hand" && \
205 echo "0xA1-0xDF 0xFF61" ) > $@
206
207${charsetdir}/JISX0208.map: ${GLIBC_CHARMAPS}/EUC-JP.gz ${mapconv}
208 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \
209 | sed 's/0x2015/0x2014/' > $@
210
211${charsetdir}/JISX0212.map: ${GLIBC_CHARMAPS}/EUC-JP.gz ${mapconv} ${compact}
212 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 ${compact} > $@
213
214jisx2131-filter: ${mapfiledir}/JISX213A.map
215 ${AM_V_at}sed -n -e '/^#/d' -e 's,.*0x\([0-9A-Z]*\)$$,/0x0*\1$$/d,p' < $< > $@
216
217${charsetdir}/JISX2131.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz ${mapconv} jisx2131-filter
218 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \
219 | sed -f jisx2131-filter \
220 | sed -e 's/0x2015/0x2014/' -e 's/0x2299/0x29BF/' > $@
221
222${charsetdir}/JISX2132.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz ${mapconv}
223 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 > $@
224
225${charsetdir}/JISX213A.map: ${mapfiledir}/JISX213A.map
226 ${AM_V_GEN}cp $< $@
227
228${charsetdir}/CP932-2BYTE.map: ${mapfiledir}/CP932.TXT ${mapconv} ${cp932}
229 ${AM_V_GEN}${run_mapconv} $< '/^0x[89A-F][0-9A-F][0-9A-F]/' UNICODE2 ${cp932} > $@
230
231${lispintdir}/cp51932.el: ${charsetdir}/CP932-2BYTE.map ${cp51932}
232 ${AM_V_GEN}$(AWK) -f ${cp51932} < $< > $@
233
234${lispintdir}/eucjp-ms.el: ${GLIBC_CHARMAPS}/EUC-JP-MS.gz ${eucjp_ms}
235 ${AM_V_GEN}gunzip -c $< | $(AWK) -f ${eucjp_ms} > $@
236
237# As Uni2JIS doesn't contain mappings of characters added to Unicode
238# recently, we add them manually here (including one correction for
239# U+005C vs U+FF3C). These changes are based on bogytech's blog at
240# http://bogytech.blogspot.jp/search/label/emacs.
241${charsetdir}/JISC6226.map: ${mapfiledir}/Uni2JIS ${mapconv} ${kuten}
242 ${AM_V_GEN}(${run_mapconv} $< '/^[^#].*0-/' YASUOKA ${kuten} \
243 | sed -e '/0x2140/s/005C/FF3C/' && \
244 echo '0x3442 0x3D4E' && echo '0x374E 0x25874' && \
245 echo '0x3764 0x28EF6' && echo '0x513D 0x2F80F' && \
246 echo '0x7045 0x9724' ) > $@
247
248${charsetdir}/KSC5601.map: ${GLIBC_CHARMAPS}/EUC-KR.gz ${mapconv} ${compact}
249 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 ${compact} > $@
250
251${charsetdir}/BIG5.map: ${GLIBC_CHARMAPS}/BIG5.gz ${mapconv} ${compact}
252 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2 > $@
253
254${charsetdir}/BIG5-1.map: ${charsetdir}/BIG5.map ${mapconv} ${big5}
255 ${AM_V_GEN}(echo "# Generated from $(notdir $<)" && \
256 sed -n -e '/0xa140/,/0xc8fe/p' < $< | $(AWK) -f ${big5} ) > $@
257
258${charsetdir}/BIG5-2.map: ${charsetdir}/BIG5.map ${mapconv} ${big5}
259 ${AM_V_GEN}(echo "# Generated from $(notdir $<)" && \
260 sed -n -e '/0xc940/,$$ p' < $< | $(AWK) -f ${big5} ) > $@
261
262${charsetdir}/BIG5-HKSCS.map: ${GLIBC_CHARMAPS}/BIG5-HKSCS.gz ${mapconv} ${compact}
263 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f].\//' GLIBC-2 ${compact} > $@
264
265${charsetdir}/JOHAB.map: ${GLIBC_CHARMAPS}/JOHAB.gz ${mapconv} ${compact}
266 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 ${compact} > $@
267
268${charsetdir}/CNS-1.map: ${GLIBC_CHARMAPS}/EUC-TW.gz ${mapconv} ${compact}
269 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 ${compact} > $@
270
271# ${charsetdir}/CNS-1.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
272# ${AM_V_GEN}${run_mapconv} $< '/^C1/' KANJI-DATABASE ${compact} > $@
273
274${charsetdir}/CNS-2.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
275 ${AM_V_GEN}${run_mapconv} $< '/^C2/' KANJI-DATABASE ${compact} > $@
276
277${charsetdir}/CNS-3.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
278 ${AM_V_GEN}${run_mapconv} $< '/^C3/' KANJI-DATABASE ${compact} > $@
279
280${charsetdir}/CNS-4.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
281 ${AM_V_GEN}${run_mapconv} $< '/^C4/' KANJI-DATABASE ${compact} > $@
282
283${charsetdir}/CNS-5.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
284 ${AM_V_GEN}${run_mapconv} $< '/^C5/' KANJI-DATABASE ${compact} > $@
285
286${charsetdir}/CNS-6.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
287 ${AM_V_GEN}${run_mapconv} $< '/^C6/' KANJI-DATABASE ${compact} > $@
288
289${charsetdir}/CNS-7.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
290 ${AM_V_GEN}${run_mapconv} $< '/^C7/' KANJI-DATABASE ${compact} > $@
291
292${charsetdir}/CNS-F.map: ${GLIBC_CHARMAPS}/EUC-TW.gz ${mapconv} ${compact}
293 ${AM_V_GEN}${run_mapconv} $< '/^<.*\/x8e\/xaf/ s,/x8e/xaf,,' GLIBC-2-7 ${compact} > $@
294
295# General target to produce map files for mule charsets.
296${charsetdir}/MULE-%.map: ${mapfiledir}/MULE-%.map
297 ${AM_V_GEN}cp $< $@
298
299# General target to produce map files for ISO-8859, GEORGIAN, and
300# EBCDIC charsets. We can not use the original file name because of
301# file name limit on DOS. "KA" is ISO 639 language code for Georgian.
302
303${charsetdir}/8859-%.map: ${GLIBC_CHARMAPS}/ISO-8859-%.gz ${mapconv} ${compact}
304 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@
305
306${charsetdir}/KA-%.map: ${GLIBC_CHARMAPS}/GEORGIAN-%.gz ${mapconv} ${compact}
307 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@
308
309${charsetdir}/EBCDIC%.map: ${GLIBC_CHARMAPS}/EBCDIC-%.gz ${mapconv} ${compact}
310 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@
311
312# General target to produce map files for single-byte charsets.
313
314${charsetdir}/%.map: ${GLIBC_CHARMAPS}/%.gz ${mapconv} ${compact}
315 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@
316
317
318.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean totalclean
319
320clean:
321 rm -f ${SED_SCRIPT}
322
323bootstrap-clean: clean
324
325distclean: clean
326 rm -f Makefile
327
328maintainer-clean: distclean
329
330## Do not remove these files, even in a bootstrap. They rarely change.
331extraclean:
332 rm -f ${LOCAL} ${TRANS_TABLE}
333
334totalclean: extraclean
335 rm -f ${CHARSETS}
diff --git a/admin/charsets/mapconv b/admin/charsets/mapconv
index 8433d222b8d..245dce114a0 100755
--- a/admin/charsets/mapconv
+++ b/admin/charsets/mapconv
@@ -1,5 +1,7 @@
1#!/bin/sh 1#!/bin/sh
2 2
3# Copyright (C) 2015 Free Software Foundation, Inc.
4
3# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 5# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
4# National Institute of Advanced Industrial Science and Technology (AIST) 6# National Institute of Advanced Industrial Science and Technology (AIST)
5# Registration Number H13PRO009 7# Registration Number H13PRO009
@@ -33,8 +35,15 @@
33# GLIBC-1 GLIBC-2 GLIBC-2-7 CZYBORRA IANA UNICODE UNICODE2 YASUOKA 35# GLIBC-1 GLIBC-2 GLIBC-2-7 CZYBORRA IANA UNICODE UNICODE2 YASUOKA
34# $4: awk script 36# $4: awk script
35 37
36FILE="admin/charsets/$1" 38## So that eg [A-F] as used by KANJI-DATABASE branch below works as expected.
37BASE=`basename $1 .gz` 39## Otherwise with LANG=en_US.utf8, CNS-6.map was generated with a
40## bogus entry. By experiment, LC_COLLATE=C was not enough.
41export LC_ALL=C
42
43BASE=`expr "$1" : '.*/\(.*\)' '|' "$1"` # basename
44FILE="admin/charsets/mapfiles/$BASE"
45BASE=`expr "$BASE" : '\(.*\)\.gz$' '|' "$BASE"` # remove any .gz suffix
46AWK=${AWK:-awk}
38 47
39case "$3" in 48case "$3" in
40 GLIBC*) 49 GLIBC*)
@@ -69,7 +78,7 @@ fi
69 78
70if [ -n "$4" ] ; then 79if [ -n "$4" ] ; then
71 if [ -f "$4" ] ; then 80 if [ -f "$4" ] ; then
72 AWKPROG="gawk -f $4" 81 AWKPROG="$AWK -f $4"
73 else 82 else
74 echo "Awk program does not exist: $4" 83 echo "Awk program does not exist: $4"
75 exit 1 84 exit 1
@@ -81,20 +90,20 @@ fi
81if [ "$3" = "GLIBC-1" ] ; then 90if [ "$3" = "GLIBC-1" ] ; then
82 # Source format is: 91 # Source format is:
83 # <UYYYY> /xXX 92 # <UYYYY> /xXX
84 zcat $1 | sed -n -e "$2 p" \ 93 gunzip -c $1 | sed -n -e "${2}p" \
85 | sed -e 's,<U\([^>]*\)>[ ]*/x\(..\).*,0x\2 0x\1,' \ 94 | sed -e 's,<U\([^>]*\)>[ ]*/x\(..\).*,0x\2 0x\1,' \
86 | sort | ${AWKPROG} 95 | sort | ${AWKPROG}
87elif [ "$3" = "GLIBC-2" ] ; then 96elif [ "$3" = "GLIBC-2" ] ; then
88 # Source format is: 97 # Source format is:
89 # <UYYYY> /xXX/xZZ 98 # <UYYYY> /xXX/xZZ
90 zcat $1 | sed -n -e "$2 p" \ 99 gunzip -c $1 | sed -n -e "${2}p" \
91 | sed -e 's,<U\([^>]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \ 100 | sed -e 's,<U\([^>]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \
92 | sort | ${AWKPROG} 101 | sort | ${AWKPROG}
93elif [ "$3" = "GLIBC-2-7" ] ; then 102elif [ "$3" = "GLIBC-2-7" ] ; then
94 # Source format is: 103 # Source format is:
95 # <UYYYY> /xXX/xZZ 104 # <UYYYY> /xXX/xZZ
96 # We must drop MSBs of XX and ZZ 105 # We must drop MSBs of XX and ZZ
97 zcat $1 | sed -n -e "$2 p" \ 106 gunzip -c $1 | sed -n -e "${2}p" \
98 | sed -e 's/xa/x2/g' -e 's/xb/x3/g' -e 's/xc/x4/g' \ 107 | sed -e 's/xa/x2/g' -e 's/xb/x3/g' -e 's/xc/x4/g' \
99 -e 's/xd/x5/g' -e 's/xe/x6/g' -e 's/xf/x7/g' \ 108 -e 's/xd/x5/g' -e 's/xe/x6/g' -e 's/xf/x7/g' \
100 -e 's,<U\([^>]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \ 109 -e 's,<U\([^>]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \
@@ -102,13 +111,13 @@ elif [ "$3" = "GLIBC-2-7" ] ; then
102elif [ "$3" = "CZYBORRA" ] ; then 111elif [ "$3" = "CZYBORRA" ] ; then
103 # Source format is: 112 # Source format is:
104 # =XX U+YYYY 113 # =XX U+YYYY
105 sed -n -e "$2 p" < $1 \ 114 sed -n -e "${2}p" < $1 \
106 | sed -e 's/=\(..\)[^U]*U+\([0-9A-F]*\).*/0x\1 0x\2/' \ 115 | sed -e 's/=\(..\)[^U]*U+\([0-9A-F]*\).*/0x\1 0x\2/' \
107 | sort | ${AWKPROG} 116 | sort | ${AWKPROG}
108elif [ "$3" = "IANA" ] ; then 117elif [ "$3" = "IANA" ] ; then
109 # Source format is: 118 # Source format is:
110 # 0xXX 0xYYYY 119 # 0xXX 0xYYYY
111 sed -n -e "$2 p" < $1 \ 120 sed -n -e "${2}p" < $1 \
112 | sed -e 's/\(0x[0-9A-Fa-f]*\)[^0]*\(0x[0-9A-Fa-f]*\).*/\1 \2/' \ 121 | sed -e 's/\(0x[0-9A-Fa-f]*\)[^0]*\(0x[0-9A-Fa-f]*\).*/\1 \2/' \
113 | sort | ${AWKPROG} 122 | sort | ${AWKPROG}
114elif [ "$3" = "UNICODE" ] ; then 123elif [ "$3" = "UNICODE" ] ; then
@@ -116,25 +125,25 @@ elif [ "$3" = "UNICODE" ] ; then
116 # YYYY XX 125 # YYYY XX
117 # We perform reverse sort to prefer the first one in the 126 # We perform reverse sort to prefer the first one in the
118 # duplicated mappings (e.g. 0x20->U+0020, 0x20->U+00A0). 127 # duplicated mappings (e.g. 0x20->U+0020, 0x20->U+00A0).
119 sed -n -e "$2 p" < $1 \ 128 sed -n -e "${2}p" < $1 \
120 | sed -e 's/\([0-9A-F]*\)[^0-9A-F]*\([0-9A-F]*\).*/0x\2 0x\1/' \ 129 | sed -e 's/\([0-9A-F]*\)[^0-9A-F]*\([0-9A-F]*\).*/0x\2 0x\1/' \
121 | sort -r 130 | sort -r
122elif [ "$3" = "UNICODE2" ] ; then 131elif [ "$3" = "UNICODE2" ] ; then
123 # Source format is: 132 # Source format is:
124 # 0xXXXX 0xYYYY # ... 133 # 0xXXXX 0xYYYY # ...
125 sed -n -e "$2 p" < $1 \ 134 sed -n -e "${2}p" < $1 \
126 | sed -e 's/\([0-9A-Fx]*\)[^0]*\([0-9A-Fx]*\).*/\1 \2/' \ 135 | sed -e 's/\([0-9A-Fx]*\)[^0]*\([0-9A-Fx]*\).*/\1 \2/' \
127 | ${AWKPROG} | sort -n -k 4,4 136 | ${AWKPROG} | sort -n -k 4,4
128elif [ "$3" = "YASUOKA" ] ; then 137elif [ "$3" = "YASUOKA" ] ; then
129 # Source format is: 138 # Source format is:
130 # YYYY 0-XXXX (XXXX is a Kuten code) 139 # YYYY 0-XXXX (XXXX is a Kuten code)
131 sed -n -e "$2 p" < $1 \ 140 sed -n -e "${2}p" < $1 \
132 | sed -e 's/\([0-9A-F]*\)[^0]*0-\([0-9]*\).*/0x\2 0x\1/' \ 141 | sed -e 's/\([0-9A-F]*\)[^0]*0-\([0-9]*\).*/0x\2 0x\1/' \
133 | sort | ${AWKPROG} 142 | sort | ${AWKPROG}
134elif [ "$3" = "KANJI-DATABASE" ] ; then 143elif [ "$3" = "KANJI-DATABASE" ] ; then
135 # Source format is: 144 # Source format is:
136 # C?-XXXX U+YYYYY ..... 145 # C?-XXXX U+YYYYY .....
137 sed -n -e "$2 p" < $1 \ 146 sed -n -e "${2}p" < $1 \
138 | sed -e 's/...\(....\) U+\([0-9A-F]*\).*/0x\1 0x\2/' \ 147 | sed -e 's/...\(....\) U+\([0-9A-F]*\).*/0x\1 0x\2/' \
139 | sort | ${AWKPROG} 148 | sort | ${AWKPROG}
140else 149else
diff --git a/admin/charsets/mapfiles/PTCP154 b/admin/charsets/mapfiles/PTCP154
index 1d76058db84..ab493e577dd 100644
--- a/admin/charsets/mapfiles/PTCP154
+++ b/admin/charsets/mapfiles/PTCP154
@@ -288,4 +288,4 @@ e-mail: auskov&idc.kz
288Intended usage: 288Intended usage:
289COMMON 289COMMON
290 290
291(record created 2002-09-27) \ No newline at end of file 291(record created 2002-09-27)
diff --git a/admin/notes/unicode b/admin/notes/unicode
index 028bcc187af..ebec417193f 100644
--- a/admin/notes/unicode
+++ b/admin/notes/unicode
@@ -245,6 +245,25 @@ nontrivial changes to the build process.
245 lisp/leim/quail/ethiopic.el 245 lisp/leim/quail/ethiopic.el
246 lisp/leim/quail/tibetan.el 246 lisp/leim/quail/tibetan.el
247 247
248 * binary files
249
250 These files contain binary data, and are not text files.
251 Some of the entries in this list are patterns, and stand for any
252 files with the listed extension.
253
254 *.gz
255 *.icns
256 *.ico
257 *.pbm
258 *.pdf
259 *.png
260 *.sig
261 etc/e/eterm-color
262 etc/package-keyring.gpg
263 msdos/emacs.pif
264 nextstep/GNUstep/Emacs.base/Resources/emacs.tiff
265 nt/icons/hand.cur
266
248 267
249This file is part of GNU Emacs. 268This file is part of GNU Emacs.
250 269