about summary refs log tree commit diff
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.tar.gz
glibc-fed8f7f7aeb06dfae0dfbfb085c6857cc457c254.tar.xz
glibc-fed8f7f7aeb06dfae0dfbfb085c6857cc457c254.zip
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 5de9bbfecf..a1634cfb66 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 0000000000..583d22bed9
--- /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 2a06adc36c..0000000000
--- 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 0000000000..f9d1526361
--- /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 77df1c3aea..0000000000
--- 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 febf2ead5f..5e949e7a2e 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 fd05a6b935..7c11832710 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 efa44ea969..de6605f7fc 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 0b10dcd6b3..e67d91199e 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;