aboutsummaryrefslogtreecommitdiff
path: root/iconvdata
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-06-15 18:12:05 +0000
committerUlrich Drepper <drepper@redhat.com>1998-06-15 18:12:05 +0000
commitfed8f7f7aeb06dfae0dfbfb085c6857cc457c254 (patch)
tree292caa308359deaa5fed820469d0b37805126e68 /iconvdata
parente5bafd559a4c155fa9d1b1a669c67d99ea773565 (diff)
downloadglibc-fed8f7f7aeb06dfae0dfbfb085c6857cc457c254.zip
glibc-fed8f7f7aeb06dfae0dfbfb085c6857cc457c254.tar.gz
glibc-fed8f7f7aeb06dfae0dfbfb085c6857cc457c254.tar.bz2
Update.
1998-06-15 18:07 Ulrich Drepper <drepper@cygnus.com> * iconvdata/ksc5601.h: Clean up a bit. 1998-06-15 14:35 Ulrich Drepper <drepper@cygnus.com> * sunrpc/svc_tcp.c (readtcp): Also listen to all the other connections and process incoming data. * sunrpc/xdr_rec.c (set_input_fragment): Only recognize zero length fragments as invalid. Patches by Thorsten Kukuk <kukuk@weber.uni-paderborn.de>. 1998-06-13 Andreas Jaeger <aj@arthur.rhein-neckar.de> Removal of duplicates like "the the". * manual/time.texi (TZ Variable): Likewise. * manual/users.texi (Manipulating the Database): Likewise. * manual/sysinfo.texi (Filesystem handling): Likewise. * manual/signal.texi (Signaling Yourself): Likewise. * manual/message.texi (Message Translation): Likewise. (Common Usage): Likewise. * manual/llio.texi: Likewise. * manual/arith.texi (Old-style number conversion): Likewise. * manual/argp.texi (Argp): Likewise. (Argp Parsers): Likewise. (Argp Help Filtering): Likewise. * hesiod/README.hesiod: Correct typo. * manual/llio.texi: Correct typos. * manual/sysinfo.texi: Likewise. 1998-06-13 Andreas Jaeger <aj@arthur.rhein-neckar.de> * rt/aio.h: Rename __op to __operation for g++. 1998-06-13 20:17 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> * iconvdata/gen-8bit-gap.sh: Use awk not perl. Clean up sed script. * iconvdata/gen-8bit-gap-1.sh: Likewise. * iconvdata/gen-8bit.sh: Clean up sed script. * iconvdata/Makefile: Remove all PERL conditionals; build all the modules all the time. Export AWK. (gen-8bit-gap): Delete setting of PERL. (gen-8bit-gap-1): Likewise. (perl-generated-headers): Renamed awk-generated-headers. * iconvdata/gap.pl: Removed. * iconvdata/gaptab.pl: Removed. * iconvdata/gap.awk: New file. * iconvdata/gaptab.awk: New file. 1998-06-15 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/Dist: Add errno-loc.c. * sysdeps/unix/sysv/linux/alpha/glob.c: Add prototypes for the __new_* functions. 1998-06-14 14:21 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> * stdio-common/bug12.c: New test for fread()/fseek(). * stdio-common/Makefile (tests): Add bug12.
Diffstat (limited to 'iconvdata')
-rw-r--r--iconvdata/Makefile37
-rw-r--r--iconvdata/gap.awk39
-rw-r--r--iconvdata/gap.pl16
-rw-r--r--iconvdata/gaptab.awk48
-rw-r--r--iconvdata/gaptab.pl25
-rw-r--r--iconvdata/gen-8bit-gap-1.sh15
-rw-r--r--iconvdata/gen-8bit-gap.sh15
-rw-r--r--iconvdata/gen-8bit.sh10
-rw-r--r--iconvdata/ksc5601.h11
9 files changed, 122 insertions, 94 deletions
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index 5de9bbf..a1634cf 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -31,17 +31,15 @@ modules := ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 \
EBCDIC-FI-SE-A EBCDIC-FR EBCDIC-IS-FRISS EBCDIC-IT EBCDIC-PT \
EBCDIC-UK EBCDIC-US IBM037 IBM038 IBM274 IBM275 IBM423 \
IBM500 IBM870 IBM871 IBM891 IBM903 IBM904 IBM905 IBM1047 \
- CP874 CP737 CP775 ISO-2022-KR
-ifneq ($(PERL),no)
-modules += KOI8-R LATIN-GREEK LATIN-GREEK-1 IBM256 IBM273 IBM277 IBM278 \
+ CP874 CP737 CP775 ISO-2022-KR \
+ KOI8-R LATIN-GREEK LATIN-GREEK-1 IBM256 IBM273 IBM277 IBM278 \
IBM280 IBM281 IBM284 IBM285 IBM290 IBM297 IBM420 IBM424 \
IBM437 IBM850 IBM851 IBM852 IBM855 IBM857 IBM860 IBM861 \
IBM862 IBM863 IBM864 IBM865 IBM868 IBM869 IBM875 IBM880 \
IBM918 IBM1004 IBM1026 CP1250 CP1251 CP1252 CP1253 CP1254 \
CP1255 CP1256 CP1257 ISO-2022-JP
-endif
-modules.so := $(addsuffix .so, $(modules))
+modules.so := $(addsuffix .so, $(modules))
include ../Makeconfig
@@ -173,7 +171,7 @@ LDFLAGS-libKSC.so = -Wl,-soname,$(@F)
LDFLAGS-libGB.so = -Wl,-soname,$(@F)
LDFLAGS-libCNS.so = -Wl,-soname,$(@F)
-distribute := 8bit-generic.c 8bit-gap.c gap.pl gaptab.pl gconv-modules \
+distribute := 8bit-generic.c 8bit-gap.c gap.awk gaptab.awk gconv-modules \
iso8859-1.c iso8859-2.c iso8859-3.c iso8859-4.c iso8859-5.c \
iso8859-6.c iso8859-7.c iso8859-8.c iso8859-9.c iso8859-10.c \
t61.c iso6937.c sjis.c jis0201.h jis0208.h jis0212.h \
@@ -245,12 +243,14 @@ sed-generated-headers := iso8859-2.h iso8859-3.h iso8859-4.h iso8859-6.h \
define generate-8bit-gap-table
$(make-target-directory)
-PERL="$(PERL)" $(SHELL) ./gen-8bit-gap.sh $< > $(@:stmp=T)
+$(SHELL) ./gen-8bit-gap.sh $< > $(@:stmp=T)
$(move-if-change) $(@:stmp=T) $(@:stmp=h)
touch $@
endef
-perl-generated-headers := koi8-r.h latin-greek.h latin-greek-1.h \
+export AWK
+
+awk-generated-headers := koi8-r.h latin-greek.h latin-greek-1.h \
ibm256.h ibm273.h ibm277.h ibm278.h ibm280.h \
ibm281.h ibm284.h ibm285.h ibm290.h ibm297.h \
ibm420.h ibm424.h ibm437.h ibm850.h ibm851.h \
@@ -263,17 +263,15 @@ perl-generated-headers := koi8-r.h latin-greek.h latin-greek-1.h \
iso8859-10.h iso8859-7jp.h
generated = $(sed-generated-headers) $(sed-generated-headers:%.h=%.stmp) \
- $(perl-generated-headers) $(perl-generated-headers:%.h=%.stmp) \
+ $(awk-generated-headers) $(awk-generated-headers:%.h=%.stmp) \
iconv-test.out
ifdef objpfx
generated += $(objpfx)gconv-modules
endif
# The headers must be generated before the compilation.
-before-compile = $(addprefix $(objpfx),$(sed-generated-headers))
-ifneq ($(PERL),no)
-before-compile += $(addprefix $(objpfx),$(perl-generated-headers))
-endif
+before-compile = $(addprefix $(objpfx),\
+ $(sed-generated-headers) $(awk-generated-headers))
# Rules to generate the headers.
$(sed-generated-headers:%=$(objpfx)%): $(objpfx)%.h: $(objpfx)%.stmp
@@ -355,8 +353,7 @@ $(objpfx)ibm905.stmp: ../localedata/charmaps/IBM905 gen-8bit.sh
$(objpfx)ibm1047.stmp: ../localedata/charmaps/IBM1047 gen-8bit.sh
$(generate-8bit-table)
-ifneq ($(PERL),no)
-$(perl-generated-headers:%=$(objpfx)%): $(objpfx)%.h: $(objpfx)%.stmp
+$(awk-generated-headers:%=$(objpfx)%): $(objpfx)%.h: $(objpfx)%.stmp
@:
$(objpfx)iso8859-5.stmp: ../localedata/charmaps/ISO-8859-5 gen-8bit-gap.sh
@@ -365,7 +362,7 @@ $(objpfx)iso8859-7.stmp: ../localedata/charmaps/ISO-8859-7 gen-8bit-gap.sh
$(generate-8bit-gap-table)
$(objpfx)iso8859-7jp.stmp: ../localedata/charmaps/ISO-8859-7 gen-8bit-gap-1.sh
$(make-target-directory)
- PERL="$(PERL)" $(SHELL) ./gen-8bit-gap-1.sh $< >$(@:stmp=T)
+ $(SHELL) ./gen-8bit-gap-1.sh $< >$(@:stmp=T)
$(move-if-change) $(@:stmp=T) $(@:stmp=h)
touch $@
@@ -460,13 +457,9 @@ $(objpfx)cp1256.stmp: ../localedata/charmaps/CP1256 gen-8bit-gap.sh
$(generate-8bit-gap-table)
$(objpfx)cp1257.stmp: ../localedata/charmaps/CP1257 gen-8bit-gap.sh
$(generate-8bit-gap-table)
-endif
-
-headers: $(addprefix $(objpfx),$(sed-generated-headers))
-ifneq ($(PERL),no)
-headers: $(addprefix $(objpfx),$(perl-generated-headers))
-endif
+headers: $(addprefix $(objpfx),\
+ $(sed-generated-headers) $(awk-generated-headers))
$(addprefix $(inst_gconvdir)/, $(modules.so)): \
$(inst_gconvdir)/%: $(objpfx)% $(+force)
diff --git a/iconvdata/gap.awk b/iconvdata/gap.awk
new file mode 100644
index 0000000..583d22b
--- /dev/null
+++ b/iconvdata/gap.awk
@@ -0,0 +1,39 @@
+BEGIN { hv["0"] = 0; hv["1"] = 1; hv["2"] = 2; hv["3"] = 3;
+ hv["4"] = 4; hv["5"] = 5; hv["6"] = 6; hv["7"] = 7;
+ hv["8"] = 8; hv["9"] = 9; hv["A"] = 10; hv["B"] = 11;
+ hv["C"] = 12; hv["D"] = 13; hv["E"] = 14; hv["F"] = 15;
+ hv["a"] = 10; hv["b"] = 11; hv["c"] = 12; hv["d"] = 13;
+ hv["e"] = 14; hv["f"] = 15;
+
+ first = 0; last = 0; idx = 0;
+}
+
+function tonum(str)
+{
+ num=0;
+ cnt=1;
+ while (cnt <= length(str)) {
+ num *= 16;
+ num += hv[substr(str,cnt,1)];
+ ++cnt;
+ }
+ return num;
+}
+
+{
+ u = tonum($1);
+ if (u - last > 6)
+ {
+ if (last)
+ {
+ printf (" { start: 0x%04x, end: 0x%04x, idx: %5d },\n",
+ first, last, idx);
+ idx -= u - last - 1;
+ }
+ first = u;
+ }
+ last = u;
+}
+
+END { printf (" { start: 0x%04x, end: 0x%04x, idx: %5d },\n",
+ first, last, idx); }
diff --git a/iconvdata/gap.pl b/iconvdata/gap.pl
deleted file mode 100644
index 2a06adc..0000000
--- a/iconvdata/gap.pl
+++ /dev/null
@@ -1,16 +0,0 @@
-$first=$last=$idx=0;
-while (<>) {
- local($ucs,$rest) = split;
- local($u)=hex($ucs);
- if ($u - $last > 6) {
- if ($last != 0) {
- printf (" { start: 0x%04x, end: 0x%04x, idx: %5d },\n",
- $first, $last, $idx);
- $idx -= $u - $last - 1;
- }
- $first=$u;
- }
- $last=$u;
-}
-printf (" { start: 0x%04x, end: 0x%04x, idx: %5d },\n",
- $first, $last, $idx);
diff --git a/iconvdata/gaptab.awk b/iconvdata/gaptab.awk
new file mode 100644
index 0000000..f9d1526
--- /dev/null
+++ b/iconvdata/gaptab.awk
@@ -0,0 +1,48 @@
+BEGIN { hv["0"] = 0; hv["1"] = 1; hv["2"] = 2; hv["3"] = 3;
+ hv["4"] = 4; hv["5"] = 5; hv["6"] = 6; hv["7"] = 7;
+ hv["8"] = 8; hv["9"] = 9; hv["A"] = 10; hv["B"] = 11;
+ hv["C"] = 12; hv["D"] = 13; hv["E"] = 14; hv["F"] = 15;
+ hv["a"] = 10; hv["b"] = 11; hv["c"] = 12; hv["d"] = 13;
+ hv["e"] = 14; hv["f"] = 15;
+
+ first = 0; last = 0; idx = 0; f = 0;
+}
+
+function tonum(str)
+{
+ num=0;
+ cnt=1;
+ while (cnt <= length(str)) {
+ num *= 16;
+ num += hv[substr(str,cnt,1)];
+ ++cnt;
+ }
+ return num;
+}
+
+function fmt(val)
+{
+ if (f++ % 8 == 0)
+ { printf ("\n '\\x%02x',", val); }
+ else
+ { printf (" '\\x%02x',", val); }
+}
+
+{
+ u = tonum($1); c = tonum($2);
+
+ if (u - last > 6)
+ {
+ if (last) { idx += last - first + 1; }
+ first = u;
+ }
+ else
+ {
+ for (m = last+1; m < u; m++) { fmt(0); }
+ }
+
+ fmt(c);
+ last = u;
+}
+
+END { print "" }
diff --git a/iconvdata/gaptab.pl b/iconvdata/gaptab.pl
deleted file mode 100644
index 77df1c3..0000000
--- a/iconvdata/gaptab.pl
+++ /dev/null
@@ -1,25 +0,0 @@
-$first=$last=$idx=0;
-sub fmt {
- printf ("\n ") if (($n % 8) == 0);
- ++$n;
- my($val) = pop(@_);
- printf (" '\\x%02x',", $val);
-}
-while (<>) {
- local($ucs,$char,$rest) = split;
- local($u)=hex($ucs);
- local($c)=hex($char);
- if ($u - $last > 6) {
- if ($last != 0) {
- $idx += $last - $first + 1;
- }
- $first=$u;
- } else {
- for ($m = $last + 1; $m < $u; ++$m) {
- fmt (0);
- }
- }
- fmt ($c);
- $last=$u;
-}
-printf ("\n");
diff --git a/iconvdata/gen-8bit-gap-1.sh b/iconvdata/gen-8bit-gap-1.sh
index febf2ea..5e949e7 100644
--- a/iconvdata/gen-8bit-gap-1.sh
+++ b/iconvdata/gen-8bit-gap-1.sh
@@ -1,18 +1,15 @@
#! /bin/sh
echo "static const uint32_t iso88597_to_ucs4[96] = {"
-sed -e '/^[^[:space:]]*[[:space:]]*.x00/d' \
+sed -ne '/^[^[:space:]]*[[:space:]]*.x00/d' \
-e 's/^[^[:space:]]*[[:space:]]*.x\([A-F].\)[[:space:]]*<U\(....\)>.*/ [0x\1 - 0xA0] = 0x\2,/p' \
- -e d "$@" | \
-sort -u
+ "$@" | sort -u
echo "};"
echo "static const struct gap from_idx[] = {"
-sed -e 's/^[^[:space:]]*[[:space:]]*.x\([A-F].\)[[:space:]]*<U\(....\)>.*/0x\2 0x\1/p' \
- -e d "$@" | \
-sort -u | $PERL gap.pl
+sed -ne 's/^[^[:space:]]*[[:space:]]*.x\([A-F].\)[[:space:]]*<U\(....\)>.*/\2/p' \
+ "$@" | sort -u | $AWK -f gap.awk
echo " { start: 0xffff, end: 0xffff, idx: 0 }"
echo "};"
echo "static const char iso88597_from_ucs4[] = {"
-sed -e 's/^[^[:space:]]*[[:space:]]*.x\([A-F].\)[[:space:]]*<U\(....\)>.*/0x\2 0x\1/p' \
- -e d "$@" | \
-sort -u | $PERL gaptab.pl
+sed -ne 's/^[^[:space:]]*[[:space:]]*.x\([A-F].\)[[:space:]]*<U\(....\)>.*/0x\2 0x\1/p' \
+ "$@" | sort -u | $AWK -f gaptab.awk
echo "};"
diff --git a/iconvdata/gen-8bit-gap.sh b/iconvdata/gen-8bit-gap.sh
index fd05a6b..7c11832 100644
--- a/iconvdata/gen-8bit-gap.sh
+++ b/iconvdata/gen-8bit-gap.sh
@@ -1,18 +1,15 @@
#! /bin/sh
echo "static const uint32_t to_ucs4[256] = {"
-sed -e '/^[^[:space:]]*[[:space:]]*.x00/d' \
+sed -ne '/^[^[:space:]]*[[:space:]]*.x00/d' \
-e 's/^[^[:space:]]*[[:space:]]*.x\(..\)[[:space:]]*<U\(....\)>.*/ [0x\1] = 0x\2,/p' \
- -e d "$@" | \
-sort -u
+ "$@" | sort -u
echo "};"
echo "static const struct gap from_idx[] = {"
-sed -e 's/^[^[:space:]]*[[:space:]]*.x\(..\)[[:space:]]*<U\(....\)>.*/0x\2 0x\1/p' \
- -e d "$@" | \
-sort -u | $PERL gap.pl
+sed -ne 's/^[^[:space:]]*[[:space:]]*.x\(..\)[[:space:]]*<U\(....\)>.*/\2/p' \
+ "$@" | sort -u | $AWK -f gap.awk
echo " { start: 0xffff, end: 0xffff, idx: 0 }"
echo "};"
echo "static const char from_ucs4[] = {"
-sed -e 's/^[^[:space:]]*[[:space:]]*.x\(..\)[[:space:]]*<U\(....\)>.*/0x\2 0x\1/p' \
- -e d "$@" | \
-sort -u | $PERL gaptab.pl
+sed -ne 's/^[^[:space:]]*[[:space:]]*.x\(..\)[[:space:]]*<U\(....\)>.*/\2 \1/p' \
+ "$@" | sort -u | $AWK -f gaptab.awk
echo "};"
diff --git a/iconvdata/gen-8bit.sh b/iconvdata/gen-8bit.sh
index efa44ea..de6605f 100644
--- a/iconvdata/gen-8bit.sh
+++ b/iconvdata/gen-8bit.sh
@@ -1,13 +1,11 @@
#! /bin/sh
echo "static const uint32_t to_ucs4[256] = {"
-sed -e '/^[^[:space:]]*[[:space:]]*.x00/d' \
+sed -ne '/^[^[:space:]]*[[:space:]]*.x00/d' \
-e 's/^[^[:space:]]*[[:space:]]*.x\(..\)[[:space:]]*<U\(....\)>.*/ [0x\1] = 0x\2,/p' \
- -e d "$@" | \
-sort -u
+ "$@" | sort -u
echo "};"
echo "static const char from_ucs4[] = {"
-sed -e '/^[^[:space:]]*[[:space:]]*.x00/d' \
+sed -ne '/^[^[:space:]]*[[:space:]]*.x00/d' \
-e 's/^[^[:space:]]*[[:space:]]*.x\(..\)[[:space:]]*<U\(....\)>.*/ [0x\2] = 0x\1,/p' \
- -e d "$@" | \
-sort -u
+ "$@" | sort -u
echo "};"
diff --git a/iconvdata/ksc5601.h b/iconvdata/ksc5601.h
index 0b10dcd..e67d911 100644
--- a/iconvdata/ksc5601.h
+++ b/iconvdata/ksc5601.h
@@ -85,13 +85,12 @@ static inline size_t
ucs4_to_ksc5601_hangul (uint32_t wch, unsigned char *s, size_t avail)
{
int l = 0;
- int m;
int u = KSC5601_HANGUL - 1;
uint32_t try;
while (l <= u)
{
- m = (l + u) / 2;
+ int m = (l + u) / 2;
try = (uint32_t) __ksc5601_hangul_to_ucs[m];
if (try > wch)
u = m - 1;
@@ -109,7 +108,7 @@ ucs4_to_ksc5601_hangul (uint32_t wch, unsigned char *s, size_t avail)
}
}
- return UNKNOWN_10646_CHAR;
+ return UNKNOWN_10646_CHAR;
}
@@ -117,13 +116,12 @@ static inline size_t
ucs4_to_ksc5601_hanja (uint32_t wch, unsigned char *s, size_t avail)
{
int l = 0;
- int m;
int u = KSC5601_HANJA - 1;
uint32_t try;
while (l <= u)
{
- m = (l + u) / 2;
+ int m = (l + u) / 2;
try = (uint32_t) __ksc5601_hanja_from_ucs[m].ucs;
if (try > wch)
u=m-1;
@@ -148,13 +146,12 @@ static inline size_t
ucs4_to_ksc5601_sym (uint32_t wch, unsigned char *s, size_t avail)
{
int l = 0;
- int m;
int u = KSC5601_SYMBOL - 1;
uint32_t try;
while (l <= u)
{
- m = (l + u) / 2;
+ int m = (l + u) / 2;
try = __ksc5601_sym_from_ucs[m].ucs;
if (try > wch)
u = m - 1;