aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xiconvdata/tst-tables.sh1
-rw-r--r--locale/programs/ld-ctype.c21
-rw-r--r--localedata/ChangeLog6
-rw-r--r--localedata/tests-mbwc/dat_wcscmp.c36
-rw-r--r--localedata/tests-mbwc/tst_wcscmp.c1
-rw-r--r--wcsmbs/Versions2
6 files changed, 36 insertions, 31 deletions
diff --git a/iconvdata/tst-tables.sh b/iconvdata/tst-tables.sh
index bc57e1b..d5a7462 100755
--- a/iconvdata/tst-tables.sh
+++ b/iconvdata/tst-tables.sh
@@ -202,6 +202,7 @@ cat <<EOF |
#ISO-2022-KR
#ISO-2022-CN
#ISO-2022-CN-EXT
+ #UTF-7
#
EOF
while read charset charmap; do
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index 644bfbf..1d10cec 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -3364,8 +3364,11 @@ struct wctype_table
static inline void
wctype_table_init (struct wctype_table *t)
{
+ t->level1 = NULL;
t->level1_alloc = t->level1_size = 0;
+ t->level2 = NULL;
t->level2_alloc = t->level2_size = 0;
+ t->level3 = NULL;
t->level3_alloc = t->level3_size = 0;
}
@@ -3413,10 +3416,8 @@ wctype_table_add (struct wctype_table *t, uint32_t wc)
size_t alloc = 2 * t->level1_alloc;
if (alloc <= index1)
alloc = index1 + 1;
- t->level1 = (t->level1_alloc > 0
- ? (uint32_t *) xrealloc ((char *) t->level1,
- alloc * sizeof (uint32_t))
- : (uint32_t *) xmalloc (alloc * sizeof (uint32_t)));
+ t->level1 = (uint32_t *) xrealloc ((char *) t->level1,
+ alloc * sizeof (uint32_t));
t->level1_alloc = alloc;
}
while (index1 >= t->level1_size)
@@ -3428,10 +3429,8 @@ wctype_table_add (struct wctype_table *t, uint32_t wc)
if (t->level2_size == t->level2_alloc)
{
size_t alloc = 2 * t->level2_alloc + 1;
- t->level2 = (t->level2_alloc > 0
- ? (uint32_t *) xrealloc ((char *) t->level2,
- (alloc << t->q) * sizeof (uint32_t))
- : (uint32_t *) xmalloc ((alloc << t->q) * sizeof (uint32_t)));
+ t->level2 = (uint32_t *) xrealloc ((char *) t->level2,
+ (alloc << t->q) * sizeof (uint32_t));
t->level2_alloc = alloc;
}
i1 = t->level2_size << t->q;
@@ -3448,10 +3447,8 @@ wctype_table_add (struct wctype_table *t, uint32_t wc)
if (t->level3_size == t->level3_alloc)
{
size_t alloc = 2 * t->level3_alloc + 1;
- t->level3 = (t->level3_alloc > 0
- ? (uint32_t *) xrealloc ((char *) t->level3,
- (alloc << t->p) * sizeof (uint32_t))
- : (uint32_t *) xmalloc ((alloc << t->p) * sizeof (uint32_t)));
+ t->level3 = (uint32_t *) xrealloc ((char *) t->level3,
+ (alloc << t->p) * sizeof (uint32_t));
t->level3_alloc = alloc;
}
i1 = t->level3_size << t->p;
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 705414c..b8899b3 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,9 @@
+2000-09-30 Bruno Haible <haible@clisp.cons.org>
+
+ * tests-mbwc/tst_wcscmp.c (tst_wcscmp): Take the sign of ret.
+ * tests-mbwc/dat_wcscmp.c (tst_wcscmp_loc): Don't expect precise
+ return values. Only the sign matters.
+
2000-09-28 Ulrich Drepper <drepper@redhat.com>
* locales/ar_SA: Last non <Uxxxx> entries removed.
diff --git a/localedata/tests-mbwc/dat_wcscmp.c b/localedata/tests-mbwc/dat_wcscmp.c
index fba0283..d479ab4 100644
--- a/localedata/tests-mbwc/dat_wcscmp.c
+++ b/localedata/tests-mbwc/dat_wcscmp.c
@@ -26,27 +26,27 @@ TST_WCSCMP tst_wcscmp_loc [] = {
},
{ /*input.*/ { { 0x00D1,0x00D1,0x00D3,0x0000 },
{ 0x0000,0x00D2,0x00D3,0x0000 }, }, /* #3 */
- /*expect*/ { 0,1,0x00D1, },
+ /*expect*/ { 0,1,1, },
},
{ /*input.*/ { { 0x0000,0x00D2,0x00D3,0x0000 },
{ 0x00D1,0x00D1,0x00D3,0x0000 }, }, /* #4 */
- /*expect*/ { 0,1,-0x00D1, },
+ /*expect*/ { 0,1,-1, },
},
{ /*input.*/ { { 0x00D1,0x00D5,0x00D3,0x0000 },
{ 0x00D1,0x00D2,0x00D3,0x0000 }, }, /* #5 */
- /*expect*/ { 0,1,3, },
+ /*expect*/ { 0,1,1, },
},
{ /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
{ 0x00D1,0x00D2,0x00D9,0x0000 }, }, /* #6 */
- /*expect*/ { 0,1,-6, },
+ /*expect*/ { 0,1,-1, },
},
{ /*input.*/ { { 0x00D1,0x00D2,0x0000 },
{ 0x00D1,0x00D2,0x00D9,0x0000 }, }, /* #7 */
- /*expect*/ { 0,1,-0x00D9, },
+ /*expect*/ { 0,1,-1, },
},
{ /*input.*/ { { 0x00D1,0x00D2,0x00D9,0x0000 },
{ 0x00D1,0x00D2,0x0000 }, }, /* #8 */
- /*expect*/ { 0,1,0x00D9, },
+ /*expect*/ { 0,1,1, },
},
{ is_last: 1 }
}
@@ -64,27 +64,27 @@ TST_WCSCMP tst_wcscmp_loc [] = {
},
{ /*input.*/ { { 0x0041,0x0041,0x0043,0x0000 },
{ 0x0000,0x0042,0x0043,0x0000 }, }, /* #3 */
- /*expect*/ { 0,1,0x0041, },
+ /*expect*/ { 0,1,1, },
},
{ /*input.*/ { { 0x0000,0x0042,0x0043,0x0000 },
{ 0x0041,0x0041,0x0043,0x0000 }, }, /* #4 */
- /*expect*/ { 0,1,-0x0041, },
+ /*expect*/ { 0,1,-1, },
},
{ /*input.*/ { { 0x0041,0x0045,0x0043,0x0000 },
{ 0x0041,0x0042,0x0043,0x0000 }, }, /* #5 */
- /*expect*/ { 0,1,3, },
+ /*expect*/ { 0,1,1, },
},
{ /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
{ 0x0041,0x0042,0x0049,0x0000 }, }, /* #6 */
- /*expect*/ { 0,1,-6, },
+ /*expect*/ { 0,1,-1, },
},
{ /*input.*/ { { 0x0041,0x0042,0x0000 },
{ 0x0041,0x0042,0x0049,0x0000 }, }, /* #7 */
- /*expect*/ { 0,1,-0x0049, },
+ /*expect*/ { 0,1,-1, },
},
{ /*input.*/ { { 0x0041,0x0042,0x0049,0x0000 },
{ 0x0041,0x0042,0x0000 }, }, /* #8 */
- /*expect*/ { 0,1,0x0049, },
+ /*expect*/ { 0,1,1, },
},
{ is_last: 1 }
}
@@ -102,27 +102,27 @@ TST_WCSCMP tst_wcscmp_loc [] = {
},
{ /*input.*/ { { 0x3041,0x3041,0x3043,0x0000 },
{ 0x0000,0x3042,0x3043,0x0000 }, }, /* #3 */
- /*expect*/ { 0,1,0x3041, },
+ /*expect*/ { 0,1,1, },
},
{ /*input.*/ { { 0x0000,0x3042,0x3043,0x0000 },
{ 0x3041,0x3041,0x3043,0x0000 }, }, /* #4 */
- /*expect*/ { 0,1,-0x3041, },
+ /*expect*/ { 0,1,-1, },
},
{ /*input.*/ { { 0x3041,0x3045,0x3043,0x0000 },
{ 0x3041,0x3042,0x3043,0x0000 }, }, /* #5 */
- /*expect*/ { 0,1,3, },
+ /*expect*/ { 0,1,1, },
},
{ /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
{ 0x3041,0x3042,0x3049,0x0000 }, }, /* #6 */
- /*expect*/ { 0,1,-6, },
+ /*expect*/ { 0,1,-1, },
},
{ /*input.*/ { { 0x3041,0x3042,0x0000 },
{ 0x3041,0x3042,0x3049,0x0000 }, }, /* #7 */
- /*expect*/ { 0,1,-0x3049, },
+ /*expect*/ { 0,1,-1, },
},
{ /*input.*/ { { 0x3041,0x3042,0x3049,0x0000 },
{ 0x3041,0x3042,0x0000 }, }, /* #8 */
- /*expect*/ { 0,1,0x3049, },
+ /*expect*/ { 0,1,1, },
},
{ is_last: 1 }
}
diff --git a/localedata/tests-mbwc/tst_wcscmp.c b/localedata/tests-mbwc/tst_wcscmp.c
index ecd825c..594682c 100644
--- a/localedata/tests-mbwc/tst_wcscmp.c
+++ b/localedata/tests-mbwc/tst_wcscmp.c
@@ -23,6 +23,7 @@ tst_wcscmp (FILE * fp, int debug_flg)
ws1 = TST_INPUT (wcscmp).ws1;
ws2 = TST_INPUT (wcscmp).ws2;
ret = wcscmp (ws1, ws2);
+ ret = (ret > 0 ? 1 : ret < 0 ? -1 : 0);
if (debug_flg)
{
diff --git a/wcsmbs/Versions b/wcsmbs/Versions
index d0ba267..6f2e72e 100644
--- a/wcsmbs/Versions
+++ b/wcsmbs/Versions
@@ -1,7 +1,7 @@
libc {
GLIBC_2.0 {
# functions used in inline functions or macros
- __wcsto*_internal; __mbrlen;
+ __wcsto*_internal; __mbrlen; __mbrtowc;
# b*
btowc;