aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authorGlenn Morris2015-05-21 23:44:00 -0700
committerGlenn Morris2015-05-21 23:44:00 -0700
commite7bc85db46679cc408f51d74e6a66734f1e32142 (patch)
tree250008ff1c624cb5cc39ceb2fcf7892cdb93c258 /admin
parent9e41e0bc6a6fdb7a01841db62d8de42d67be534a (diff)
downloademacs-e7bc85db46679cc408f51d74e6a66734f1e32142.tar.gz
emacs-e7bc85db46679cc408f51d74e6a66734f1e32142.zip
Generate admin/charsets Makefile via configure, and make more portable.
* configure.ac (SUBDIR_MAKEFILES): Add admin/charsets/Makefile. (admin/charsets/Makefile): Generate it. * admin/charsets/Makefile.in: Rename from Makefile. (AWK, srcdir, top_srcdir, AM_DEFAULT_VERBOSITY): New variables, set by configure. (charsetdir, lispintdir, mapfiledir, AM_V_GEN, am__v_GEN_) (am__v_GEN_0, am__v_GEN_1, AM_V_at, am__v_at_, am__v_at_0) (am__v_at_1, LOCAL, mapconv, run_mapconv, big5, compact, cp51932) (cp932, eucjp_ms, gb180302, gb180304, kuten): New variables. (TRANS_TABLE, CHARSETS): Add directory prefix to value. (all): Declare PHONY. (local): New PHONY target. (map_template): New template. Use to define short PHONY aliases. (*.map): Add directory prefixes to targets and prerequisites. Respect make verbosity. (JISC6226.map): Replace non-portable sed append without newline. (install): Remove rule. (clean): Only delete temporary sedscript. (bootstrap-clean, distclean, maintainer-clean, extraclean) (totalclean): New PHONY rules. * admin/charsets/mapconv (BASE): Replace basename with expr. (FILE): Add "mapfiles" subdirectory. (AWK): New variable. Use throughout in place of "awk". (main): Use "gunzip -c" in place of "zcat". Don't leave whitespace before "p", for older sed. * admin/charsets/mapfiles/PTCP154: Add final newline, to make older sed versions happy. ; * .gitignore: Ignore admin/charsets/Makefile.
Diffstat (limited to 'admin')
-rw-r--r--admin/charsets/Makefile324
-rw-r--r--admin/charsets/Makefile.in336
-rwxr-xr-xadmin/charsets/mapconv28
-rw-r--r--admin/charsets/mapfiles/PTCP1542
4 files changed, 353 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..13de84d6c07
--- /dev/null
+++ b/admin/charsets/Makefile.in
@@ -0,0 +1,336 @@
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 ALTERNATIVNYJ.map GB180304.map \
117 ${MULE}
118LOCAL := $(addprefix ${charsetdir}/,${LOCAL})
119
120
121.PHONY: all local
122
123all: ${CHARSETS} ${TRANS_TABLE}
124local: ${LOCAL} ${TRANS_TABLE}
125
126## Rules for each charset.
127
128mapconv = ${srcdir}/mapconv
129run_mapconv = AWK=${AWK} ${srcdir}/mapconv
130big5 = ${srcdir}/big5.awk
131compact = ${srcdir}/compact.awk
132cp51932 = ${srcdir}/cp51932.awk
133cp932 = ${srcdir}/cp932.awk
134eucjp_ms = ${srcdir}/eucjp-ms.awk
135gb180302 = ${srcdir}/gb180302.awk
136gb180304 = ${srcdir}/gb180304.awk
137kuten = ${srcdir}/kuten.awk
138
139## Short aliases, eg VSCII.map = ${charsetdir}/VSCII.map
140define map_template
141 .PHONY: $(notdir ${1})
142 $(notdir ${1}): ${1}
143endef
144
145$(foreach mfile,${CHARSETS},$(eval $(call map_template,$(mfile))))
146
147${charsetdir}/VSCII.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz ${mapconv} ${compact}
148 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[0-9a-f].[ ]/' GLIBC-1 ${compact} > $@
149
150${charsetdir}/VSCII-2.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz ${mapconv} ${compact}
151 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[2-7a-f].[ ]/' GLIBC-1 ${compact} \
152 | sed 's/0x20-0x7F.*/0x00-0x7F 0x0000/' > $@
153
154${charsetdir}/ALTERNATIVNYJ.map: ${charsetdir}/IBM866.map
155 ${AM_V_GEN}(echo "# Modified from $(notdir $<) according to the chart at" && \
156 echo "# http://www.cyrillic.com/ref/cyrillic/koi-8alt.html," && \
157 echo "# with guesses for the Unicodes of the glyphs." && \
158 sed -e '1 d' \
159 -e '/0xF2/ s/ .*/ 0x2019/' \
160 -e '/0xF3/ s/ .*/ 0x2018/' \
161 -e '/0xF4/ s/ .*/ 0x0301/' \
162 -e '/0xF5/ s/ .*/ 0x0300/' \
163 -e '/0xF6/ s/ .*/ 0x203A/' \
164 -e '/0xF7/ s/ .*/ 0x2039/' \
165 -e '/0xF8/ s/ .*/ 0x2191/' \
166 -e '/0xF9/ s/ .*/ 0x2193/' \
167 -e '/0xFA/ s/ .*/ 0x00B1/' \
168 -e '/0xFB/ s/ .*/ 0x00F7/' < $< ) > $@
169
170${charsetdir}/MIK.map: ${mapfiledir}/bulgarian-mik.txt ${mapconv} ${compact}
171 ${AM_V_GEN}${run_mapconv} $< '1,$$' CZYBORRA ${compact} > $@
172
173${charsetdir}/PTCP154.map: ${mapfiledir}/PTCP154 ${mapconv} ${compact}
174 ${AM_V_GEN}${run_mapconv} $< '/^0x/' IANA ${compact} > $@
175
176${charsetdir}/stdenc.map: ${mapfiledir}/stdenc.txt ${mapconv} ${compact}
177 ${AM_V_GEN}${run_mapconv} $< '/^[0-9A-Fa-f]/' UNICODE ${compact} > $@
178
179${charsetdir}/symbol.map: ${mapfiledir}/symbol.txt ${mapconv} ${compact}
180 ${AM_V_GEN}${run_mapconv} $< '/^[0-9A-Fa-f]/' UNICODE ${compact} > $@
181
182${charsetdir}/CP720.map: ${mapfiledir}/CP720.map
183 ${AM_V_GEN}cp $< $@
184
185${charsetdir}/CP858.map: ${mapfiledir}/CP858.map
186 ${AM_V_GEN}cp $< $@
187
188${charsetdir}/CP949-2BYTE.map: ${GLIBC_CHARMAPS}/CP949.gz ${mapconv} ${compact}
189 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 ${compact} > $@
190
191${charsetdir}/GB2312.map: ${GLIBC_CHARMAPS}/GB2312.gz ${mapconv} ${compact}
192 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 ${compact} > $@
193
194${charsetdir}/GBK.map: ${GLIBC_CHARMAPS}/GBK.gz ${mapconv} ${compact}
195 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 ${compact} > $@
196
197${charsetdir}/GB180302.map: ${GLIBC_CHARMAPS}/GB18030.gz ${mapconv} ${gb180302}
198 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x..\/x..[ ]/' GLIBC-2 ${gb180302} > $@
199
200${charsetdir}/GB180304.map: ${charsetdir}/GB180302.map ${gb180304}
201 ${AM_V_GEN}$(AWK) -f ${gb180304} < $< > $@
202
203${charsetdir}/JISX0201.map: ${GLIBC_CHARMAPS}/JIS_X0201.gz ${mapconv} ${compact}
204 ${AM_V_GEN}(${mapconv} $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 ${compact} && \
205 echo "# Generated by hand" && \
206 echo "0xA1-0xDF 0xFF61" ) > $@
207
208${charsetdir}/JISX0208.map: ${GLIBC_CHARMAPS}/EUC-JP.gz ${mapconv}
209 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \
210 | sed 's/0x2015/0x2014/' > $@
211
212${charsetdir}/JISX0212.map: ${GLIBC_CHARMAPS}/EUC-JP.gz ${mapconv} ${compact}
213 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 ${compact} > $@
214
215jisx2131-filter: ${mapfiledir}/JISX213A.map
216 ${AM_V_at}sed -n -e '/^#/d' -e 's,.*0x\([0-9A-Z]*\)$$,/0x0*\1$$/d,p' < $< > $@
217
218${charsetdir}/JISX2131.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz ${mapconv} jisx2131-filter
219 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \
220 | sed -f jisx2131-filter \
221 | sed -e 's/0x2015/0x2014/' -e 's/0x2299/0x29BF/' > $@
222
223${charsetdir}/JISX2132.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz ${mapconv}
224 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 > $@
225
226${charsetdir}/JISX213A.map: ${mapfiledir}/JISX213A.map
227 ${AM_V_GEN}cp $< $@
228
229${charsetdir}/CP932-2BYTE.map: ${mapfiledir}/CP932.TXT ${mapconv} ${cp932}
230 ${AM_V_GEN}${run_mapconv} $< '/^0x[89A-F][0-9A-F][0-9A-F]/' UNICODE2 ${cp932} > $@
231
232${lispintdir}/cp51932.el: ${charsetdir}/CP932-2BYTE.map ${cp51932}
233 ${AM_V_GEN}$(AWK) -f ${cp51932} < $< > $@
234
235${lispintdir}/eucjp-ms.el: ${GLIBC_CHARMAPS}/EUC-JP-MS.gz ${eucjp_ms}
236 ${AM_V_GEN}gunzip -c $< | $(AWK) -f ${eucjp_ms} > $@
237
238# As Uni2JIS doesn't contain mappings of characters added to Unicode
239# recently, we add them manually here (including one correction for
240# U+005C vs U+FF3C). These changes are based on bogytech's blog at
241# http://bogytech.blogspot.jp/search/label/emacs.
242${charsetdir}/JISC6226.map: ${mapfiledir}/Uni2JIS ${mapconv} ${kuten}
243 ${AM_V_GEN}(${run_mapconv} $< '/^[^#].*0-/' YASUOKA ${kuten} \
244 | sed -e '/0x2140/s/005C/FF3C/' && \
245 echo '0x3442 0x3D4E' && echo '0x374E 0x25874' && \
246 echo '0x3764 0x28EF6' && echo '0x513D 0x2F80F' && \
247 echo '0x7045 0x9724' ) > $@
248
249${charsetdir}/KSC5601.map: ${GLIBC_CHARMAPS}/EUC-KR.gz ${mapconv} ${compact}
250 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 ${compact} > $@
251
252${charsetdir}/BIG5.map: ${GLIBC_CHARMAPS}/BIG5.gz ${mapconv} ${compact}
253 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2 > $@
254
255${charsetdir}/BIG5-1.map: ${charsetdir}/BIG5.map ${mapconv} ${big5}
256 ${AM_V_GEN}(echo "# Generated from $(notdir $<)" && \
257 sed -n -e '/0xa140/,/0xc8fe/p' < $< | $(AWK) -f ${big5} ) > $@
258
259${charsetdir}/BIG5-2.map: ${charsetdir}/BIG5.map ${mapconv} ${big5}
260 ${AM_V_GEN}(echo "# Generated from $(notdir $<)" && \
261 sed -n -e '/0xc940/,$$ p' < $< | $(AWK) -f ${big5} ) > $@
262
263${charsetdir}/BIG5-HKSCS.map: ${GLIBC_CHARMAPS}/BIG5-HKSCS.gz ${mapconv} ${compact}
264 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f].\//' GLIBC-2 ${compact} > $@
265
266${charsetdir}/JOHAB.map: ${GLIBC_CHARMAPS}/JOHAB.gz ${mapconv} ${compact}
267 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 ${compact} > $@
268
269${charsetdir}/CNS-1.map: ${GLIBC_CHARMAPS}/EUC-TW.gz ${mapconv} ${compact}
270 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 ${compact} > $@
271
272# ${charsetdir}/CNS-1.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
273# ${AM_V_GEN}${run_mapconv} $< '/^C1/' KANJI-DATABASE ${compact} > $@
274
275${charsetdir}/CNS-2.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
276 ${AM_V_GEN}${run_mapconv} $< '/^C2/' KANJI-DATABASE ${compact} > $@
277
278${charsetdir}/CNS-3.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
279 ${AM_V_GEN}${run_mapconv} $< '/^C3/' KANJI-DATABASE ${compact} > $@
280
281${charsetdir}/CNS-4.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
282 ${AM_V_GEN}${run_mapconv} $< '/^C4/' KANJI-DATABASE ${compact} > $@
283
284${charsetdir}/CNS-5.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
285 ${AM_V_GEN}${run_mapconv} $< '/^C5/' KANJI-DATABASE ${compact} > $@
286
287${charsetdir}/CNS-6.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
288 ${AM_V_GEN}${run_mapconv} $< '/^C6/' KANJI-DATABASE ${compact} > $@
289
290${charsetdir}/CNS-7.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
291 ${AM_V_GEN}${run_mapconv} $< '/^C7/' KANJI-DATABASE ${compact} > $@
292
293${charsetdir}/CNS-F.map: ${GLIBC_CHARMAPS}/EUC-TW.gz ${mapconv} ${compact}
294 ${AM_V_GEN}${run_mapconv} $< '/^<.*\/x8e\/xaf/ s,/x8e/xaf,,' GLIBC-2-7 ${compact} > $@
295
296# General target to produce map files for mule charsets.
297${charsetdir}/MULE-%.map: ${mapfiledir}/MULE-%.map
298 ${AM_V_GEN}cp $< $@
299
300# General target to produce map files for ISO-8859, GEORGIAN, and
301# EBCDIC charsets. We can not use the original file name because of
302# file name limit on DOS. "KA" is ISO 639 language code for Georgian.
303
304${charsetdir}/8859-%.map: ${GLIBC_CHARMAPS}/ISO-8859-%.gz ${mapconv} ${compact}
305 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@
306
307${charsetdir}/KA-%.map: ${GLIBC_CHARMAPS}/GEORGIAN-%.gz ${mapconv} ${compact}
308 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@
309
310${charsetdir}/EBCDIC%.map: ${GLIBC_CHARMAPS}/EBCDIC-%.gz ${mapconv} ${compact}
311 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@
312
313# General target to produce map files for single-byte charsets.
314
315${charsetdir}/%.map: ${GLIBC_CHARMAPS}/%.gz ${mapconv} ${compact}
316 ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@
317
318
319.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean totalclean
320
321clean:
322 rm -f ${SED_SCRIPT}
323
324bootstrap-clean: clean
325
326distclean: clean
327 rm -f Makefile
328
329maintainer-clean: distclean
330
331## Do not remove these files, even in a bootstrap. They rarely change.
332extraclean:
333 rm -f ${LOCAL} ${TRANS_TABLE}
334
335totalclean: extraclean
336 rm -f ${CHARSETS}
diff --git a/admin/charsets/mapconv b/admin/charsets/mapconv
index 8433d222b8d..6fd13c61c4a 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,10 @@
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" 38BASE=`expr "$1" : '.*/\(.*\)' '|' "$1"` # basename
37BASE=`basename $1 .gz` 39FILE="admin/charsets/mapfiles/$BASE"
40BASE=`expr "$BASE" : '\(.*\)\.gz$' '|' "$BASE"` # remove any .gz suffix
41AWK=${AWK:-awk}
38 42
39case "$3" in 43case "$3" in
40 GLIBC*) 44 GLIBC*)
@@ -69,7 +73,7 @@ fi
69 73
70if [ -n "$4" ] ; then 74if [ -n "$4" ] ; then
71 if [ -f "$4" ] ; then 75 if [ -f "$4" ] ; then
72 AWKPROG="gawk -f $4" 76 AWKPROG="$AWK -f $4"
73 else 77 else
74 echo "Awk program does not exist: $4" 78 echo "Awk program does not exist: $4"
75 exit 1 79 exit 1
@@ -81,20 +85,20 @@ fi
81if [ "$3" = "GLIBC-1" ] ; then 85if [ "$3" = "GLIBC-1" ] ; then
82 # Source format is: 86 # Source format is:
83 # <UYYYY> /xXX 87 # <UYYYY> /xXX
84 zcat $1 | sed -n -e "$2 p" \ 88 gunzip -c $1 | sed -n -e "${2}p" \
85 | sed -e 's,<U\([^>]*\)>[ ]*/x\(..\).*,0x\2 0x\1,' \ 89 | sed -e 's,<U\([^>]*\)>[ ]*/x\(..\).*,0x\2 0x\1,' \
86 | sort | ${AWKPROG} 90 | sort | ${AWKPROG}
87elif [ "$3" = "GLIBC-2" ] ; then 91elif [ "$3" = "GLIBC-2" ] ; then
88 # Source format is: 92 # Source format is:
89 # <UYYYY> /xXX/xZZ 93 # <UYYYY> /xXX/xZZ
90 zcat $1 | sed -n -e "$2 p" \ 94 gunzip -c $1 | sed -n -e "${2}p" \
91 | sed -e 's,<U\([^>]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \ 95 | sed -e 's,<U\([^>]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \
92 | sort | ${AWKPROG} 96 | sort | ${AWKPROG}
93elif [ "$3" = "GLIBC-2-7" ] ; then 97elif [ "$3" = "GLIBC-2-7" ] ; then
94 # Source format is: 98 # Source format is:
95 # <UYYYY> /xXX/xZZ 99 # <UYYYY> /xXX/xZZ
96 # We must drop MSBs of XX and ZZ 100 # We must drop MSBs of XX and ZZ
97 zcat $1 | sed -n -e "$2 p" \ 101 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' \ 102 | 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' \ 103 -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,' \ 104 -e 's,<U\([^>]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \
@@ -102,13 +106,13 @@ elif [ "$3" = "GLIBC-2-7" ] ; then
102elif [ "$3" = "CZYBORRA" ] ; then 106elif [ "$3" = "CZYBORRA" ] ; then
103 # Source format is: 107 # Source format is:
104 # =XX U+YYYY 108 # =XX U+YYYY
105 sed -n -e "$2 p" < $1 \ 109 sed -n -e "${2}p" < $1 \
106 | sed -e 's/=\(..\)[^U]*U+\([0-9A-F]*\).*/0x\1 0x\2/' \ 110 | sed -e 's/=\(..\)[^U]*U+\([0-9A-F]*\).*/0x\1 0x\2/' \
107 | sort | ${AWKPROG} 111 | sort | ${AWKPROG}
108elif [ "$3" = "IANA" ] ; then 112elif [ "$3" = "IANA" ] ; then
109 # Source format is: 113 # Source format is:
110 # 0xXX 0xYYYY 114 # 0xXX 0xYYYY
111 sed -n -e "$2 p" < $1 \ 115 sed -n -e "${2}p" < $1 \
112 | sed -e 's/\(0x[0-9A-Fa-f]*\)[^0]*\(0x[0-9A-Fa-f]*\).*/\1 \2/' \ 116 | sed -e 's/\(0x[0-9A-Fa-f]*\)[^0]*\(0x[0-9A-Fa-f]*\).*/\1 \2/' \
113 | sort | ${AWKPROG} 117 | sort | ${AWKPROG}
114elif [ "$3" = "UNICODE" ] ; then 118elif [ "$3" = "UNICODE" ] ; then
@@ -116,25 +120,25 @@ elif [ "$3" = "UNICODE" ] ; then
116 # YYYY XX 120 # YYYY XX
117 # We perform reverse sort to prefer the first one in the 121 # We perform reverse sort to prefer the first one in the
118 # duplicated mappings (e.g. 0x20->U+0020, 0x20->U+00A0). 122 # duplicated mappings (e.g. 0x20->U+0020, 0x20->U+00A0).
119 sed -n -e "$2 p" < $1 \ 123 sed -n -e "${2}p" < $1 \
120 | sed -e 's/\([0-9A-F]*\)[^0-9A-F]*\([0-9A-F]*\).*/0x\2 0x\1/' \ 124 | sed -e 's/\([0-9A-F]*\)[^0-9A-F]*\([0-9A-F]*\).*/0x\2 0x\1/' \
121 | sort -r 125 | sort -r
122elif [ "$3" = "UNICODE2" ] ; then 126elif [ "$3" = "UNICODE2" ] ; then
123 # Source format is: 127 # Source format is:
124 # 0xXXXX 0xYYYY # ... 128 # 0xXXXX 0xYYYY # ...
125 sed -n -e "$2 p" < $1 \ 129 sed -n -e "${2}p" < $1 \
126 | sed -e 's/\([0-9A-Fx]*\)[^0]*\([0-9A-Fx]*\).*/\1 \2/' \ 130 | sed -e 's/\([0-9A-Fx]*\)[^0]*\([0-9A-Fx]*\).*/\1 \2/' \
127 | ${AWKPROG} | sort -n -k 4,4 131 | ${AWKPROG} | sort -n -k 4,4
128elif [ "$3" = "YASUOKA" ] ; then 132elif [ "$3" = "YASUOKA" ] ; then
129 # Source format is: 133 # Source format is:
130 # YYYY 0-XXXX (XXXX is a Kuten code) 134 # YYYY 0-XXXX (XXXX is a Kuten code)
131 sed -n -e "$2 p" < $1 \ 135 sed -n -e "${2}p" < $1 \
132 | sed -e 's/\([0-9A-F]*\)[^0]*0-\([0-9]*\).*/0x\2 0x\1/' \ 136 | sed -e 's/\([0-9A-F]*\)[^0]*0-\([0-9]*\).*/0x\2 0x\1/' \
133 | sort | ${AWKPROG} 137 | sort | ${AWKPROG}
134elif [ "$3" = "KANJI-DATABASE" ] ; then 138elif [ "$3" = "KANJI-DATABASE" ] ; then
135 # Source format is: 139 # Source format is:
136 # C?-XXXX U+YYYYY ..... 140 # C?-XXXX U+YYYYY .....
137 sed -n -e "$2 p" < $1 \ 141 sed -n -e "${2}p" < $1 \
138 | sed -e 's/...\(....\) U+\([0-9A-F]*\).*/0x\1 0x\2/' \ 142 | sed -e 's/...\(....\) U+\([0-9A-F]*\).*/0x\1 0x\2/' \
139 | sort | ${AWKPROG} 143 | sort | ${AWKPROG}
140else 144else
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)