diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-06-15 18:12:05 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-06-15 18:12:05 +0000 |
commit | fed8f7f7aeb06dfae0dfbfb085c6857cc457c254 (patch) | |
tree | 292caa308359deaa5fed820469d0b37805126e68 /iconvdata | |
parent | e5bafd559a4c155fa9d1b1a669c67d99ea773565 (diff) | |
download | glibc-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/Makefile | 37 | ||||
-rw-r--r-- | iconvdata/gap.awk | 39 | ||||
-rw-r--r-- | iconvdata/gap.pl | 16 | ||||
-rw-r--r-- | iconvdata/gaptab.awk | 48 | ||||
-rw-r--r-- | iconvdata/gaptab.pl | 25 | ||||
-rw-r--r-- | iconvdata/gen-8bit-gap-1.sh | 15 | ||||
-rw-r--r-- | iconvdata/gen-8bit-gap.sh | 15 | ||||
-rw-r--r-- | iconvdata/gen-8bit.sh | 10 | ||||
-rw-r--r-- | iconvdata/ksc5601.h | 11 |
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; |