about summary refs log tree commit diff
path: root/iconvdata
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-12-05 04:30:39 +0000
committerUlrich Drepper <drepper@redhat.com>2001-12-05 04:30:39 +0000
commitaaa19e67adeae0c6f7e3a70a544a0d4c76a10ba3 (patch)
treec6ae6a7b8c02eec1d66ece29d948e7129111a8b0 /iconvdata
parent715e158fc7b36d54deb74b406544dfa52be7b953 (diff)
downloadglibc-aaa19e67adeae0c6f7e3a70a544a0d4c76a10ba3.tar.gz
glibc-aaa19e67adeae0c6f7e3a70a544a0d4c76a10ba3.tar.xz
glibc-aaa19e67adeae0c6f7e3a70a544a0d4c76a10ba3.zip
Update.
2001-12-04  Ulrich Drepper  <drepper@redhat.com>

	* iconvdata/cp1258.c: Optimize conversion from UCS4.
Diffstat (limited to 'iconvdata')
-rw-r--r--iconvdata/cp1258.c80
1 files changed, 32 insertions, 48 deletions
diff --git a/iconvdata/cp1258.c b/iconvdata/cp1258.c
index 69613c68f0..2dd47c856a 100644
--- a/iconvdata/cp1258.c
+++ b/iconvdata/cp1258.c
@@ -661,16 +661,16 @@ static const struct {
   { 0x1eab, 0x00e2, 2 },
   { 0x1eac, 0x00c2, 4 },
   { 0x1ead, 0x00e2, 4 },
-  { 0x1eae, 0x0102, 1 },
-  { 0x1eaf, 0x0103, 1 },
-  { 0x1eb0, 0x0102, 0 },
-  { 0x1eb1, 0x0103, 0 },
-  { 0x1eb2, 0x0102, 3 },
-  { 0x1eb3, 0x0103, 3 },
-  { 0x1eb4, 0x0102, 2 },
-  { 0x1eb5, 0x0103, 2 },
-  { 0x1eb6, 0x0102, 4 },
-  { 0x1eb7, 0x0103, 4 },
+  { 0x1eae, 0x00c3, 1 },
+  { 0x1eaf, 0x00e3, 1 },
+  { 0x1eb0, 0x00c3, 0 },
+  { 0x1eb1, 0x00e3, 0 },
+  { 0x1eb2, 0x00c3, 3 },
+  { 0x1eb3, 0x00e3, 3 },
+  { 0x1eb4, 0x00c3, 2 },
+  { 0x1eb5, 0x00e3, 2 },
+  { 0x1eb6, 0x00c3, 4 },
+  { 0x1eb7, 0x00e3, 4 },
   { 0x1eb8, 0x0045, 4 },
   { 0x1eb9, 0x0065, 4 },
   { 0x1eba, 0x0045, 3 },
@@ -705,30 +705,30 @@ static const struct {
   { 0x1ed7, 0x00f4, 2 },
   { 0x1ed8, 0x00d4, 4 },
   { 0x1ed9, 0x00f4, 4 },
-  { 0x1eda, 0x01a0, 1 },
-  { 0x1edb, 0x01a1, 1 },
-  { 0x1edc, 0x01a0, 0 },
-  { 0x1edd, 0x01a1, 0 },
-  { 0x1ede, 0x01a0, 3 },
-  { 0x1edf, 0x01a1, 3 },
-  { 0x1ee0, 0x01a0, 2 },
-  { 0x1ee1, 0x01a1, 2 },
-  { 0x1ee2, 0x01a0, 4 },
-  { 0x1ee3, 0x01a1, 4 },
+  { 0x1eda, 0x00d5, 1 },
+  { 0x1edb, 0x00f5, 1 },
+  { 0x1edc, 0x00d5, 0 },
+  { 0x1edd, 0x00f5, 0 },
+  { 0x1ede, 0x00d5, 3 },
+  { 0x1edf, 0x00f5, 3 },
+  { 0x1ee0, 0x00d5, 2 },
+  { 0x1ee1, 0x00f5, 2 },
+  { 0x1ee2, 0x00d5, 4 },
+  { 0x1ee3, 0x00f5, 4 },
   { 0x1ee4, 0x0055, 4 },
   { 0x1ee5, 0x0075, 4 },
   { 0x1ee6, 0x0055, 3 },
   { 0x1ee7, 0x0075, 3 },
-  { 0x1ee8, 0x01af, 1 },
-  { 0x1ee9, 0x01b0, 1 },
-  { 0x1eea, 0x01af, 0 },
-  { 0x1eeb, 0x01b0, 0 },
-  { 0x1eec, 0x01af, 3 },
-  { 0x1eed, 0x01b0, 3 },
-  { 0x1eee, 0x01af, 2 },
-  { 0x1eef, 0x01b0, 2 },
-  { 0x1ef0, 0x01af, 4 },
-  { 0x1ef1, 0x01b0, 4 },
+  { 0x1ee8, 0x00dd, 1 },
+  { 0x1ee9, 0x00fd, 1 },
+  { 0x1eea, 0x00dd, 0 },
+  { 0x1eeb, 0x00fd, 0 },
+  { 0x1eec, 0x00dd, 3 },
+  { 0x1eed, 0x00fd, 3 },
+  { 0x1eee, 0x00dd, 2 },
+  { 0x1eef, 0x00fd, 2 },
+  { 0x1ef0, 0x00dd, 4 },
+  { 0x1ef1, 0x00fd, 4 },
   { 0x1ef2, 0x0059, 0 },
   { 0x1ef3, 0x0079, 0 },
   { 0x1ef4, 0x0059, 4 },
@@ -824,23 +824,6 @@ static const struct {
 		      }							      \
 		  }							      \
 									      \
-		/* Found a canonical decomposition.  */			      \
-		ch = decomp_table[i].base;				      \
-		/* ch is one of 0x0020, 0x0041..0x005a, 0x0061..0x007a,	      \
-		   0x00a5, 0x00a8, 0x00c2, 0x00c5..0x00c7, 0x00ca, 0x00cf,    \
-		   0x00d3, 0x00d4, 0x00d6, 0x00d8, 0x00da, 0x00dc, 0x00e2,    \
-		   0x00e5..0x00e7, 0x00ea, 0x00ef, 0x00f3, 0x00f4, 0x00f6,    \
-		   0x00f8, 0x00fc, 0x0102, 0x0103, 0x01a0, 0x01a1, 0x01af,    \
-		   0x01b0.  */						      \
-		if (ch >= 0x0100)					      \
-		  {							      \
-		    if (ch < 0x0112)					      \
-		      ch = from_ucs4[ch - 0x00c4 + FROM_IDX_00];	      \
-		    else						      \
-		      ch = from_ucs4[ch - 0x0152 + FROM_IDX_01];	      \
-		  }							      \
-		assert (ch != 0);					      \
-									      \
 		/* See whether we have room for two bytes.  */		      \
 		if (__builtin_expect (outptr + 1 >= outend, 0))		      \
 		  {							      \
@@ -848,7 +831,8 @@ static const struct {
 		    break;						      \
 		  }							      \
 									      \
-		*outptr++ = (unsigned char) ch;				      \
+		/* Found a canonical decomposition.  */			      \
+		*outptr++ = decomp_table[i].base;			      \
 		*outptr++ = comb_table[decomp_table[i].comb1];		      \
 		inptr += 4;						      \
 		continue;						      \