aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-09-01 19:36:44 +0000
committerUlrich Drepper <drepper@redhat.com>2000-09-01 19:36:44 +0000
commit4c7d276eb123523c66c1d8cbf7dbb10fac674cd2 (patch)
tree05a73708dde7dc5e9bf16bbd35c82233c7f2afdc
parentaebb1faa198634a318bc14cf1e577f5806fafc38 (diff)
downloadglibc-4c7d276eb123523c66c1d8cbf7dbb10fac674cd2.tar.xz
glibc-4c7d276eb123523c66c1d8cbf7dbb10fac674cd2.zip
Update.
2000-08-31 Bruno Haible <haible@clisp.cons.org> * wctype/wcfuncs.c (iswblank): New function. * wctype/wcfuncs_l.c (__iswblank_l): New function. * wctype/wcextra.c: Remove file. * wctype/wcextra_l.c: Remove file. * wctype/Makefile (distribute): Remove wcextra and wcextra_l. 2000-08-31 Bruno Haible <haible@clisp.cons.org> * locale/programs/ld-collate.c (collate_output): Remove redundant assert call. * string/strcoll.c: Likewise. * string/strxfrm.c: Include assert.h. Add assert calls like in string/strcoll.c. 2000-08-31 Bruno Haible <haible@clisp.cons.org> * locale/categories.def (_NL_COLLATE_HASH_SIZE, _NL_COLLATE_HASH_LAYERS, _NL_COLLATE_NAMES, _NL_CTYPE_NAMES, _NL_CTYPE_HASH_SIZE, _NL_CTYPE_HASH_LAYERS): Remove definitions. * locale/langinfo.h (_NL_COLLATE_HASH_SIZE, _NL_COLLATE_HASH_LAYERS, _NL_COLLATE_NAMES): Rename to _NL_COLLATE_GAP1/2/3 respectively. (_NL_CTYPE_NAMES): Rename to _NL_CTYPE_GAP3. (_NL_CTYPE_GAP3): Rename to _NL_CTYPE_GAP4. (_NL_CTYPE_HASH_SIZE, _NL_CTYPE_HASH_LAYERS): Rename to _NL_CTYPE_GAP5/6 respectively. * locale/C-ctype.c (_nl_C_LC_CTYPE): Update. * ctype/ctype-info.c (__ctype_names, __ctype_width): Remove variables. * locale/lc-ctype.c (_nl_postload_ctype): Assume new locale format. Don't initialize __ctype_names and __ctype_width. * wctype/cname-lookup.h: Remove file. * wctype/Makefile (distribute): Remove cname-lookup.h. * wctype/wchar-lookup.h: Include stdint.h. * wctype/wctype.c (__wctype): Assume new locale format. * wctype/wctype_l.c (__wctype_l): Likewise. * wctype/iswctype.c: Don't include cname-lookup.h. (__iswctype): Assume new locale format. * wctype/iswctype_l.c: Don't include cname-lookup.h. (__iswctype_l): Assume new locale format. * wctype/wctrans.c: Don't include ctype.h. (wctrans): Assume new locale format. * wctype/wctrans_l.c (__wctrans_l): Likewise. * wctype/towctrans.c: Don't include cname-lookup.h. (__towctrans): Assume new locale format. * wctype/towctrans_l.c: Don't include cname-lookup.h. (__towctrans_l): Assume new locale format. * wctype/wcfuncs.c: Don't include ctype.h and cname-lookup.h. Include localeinfo.h instead. (__NO_WCTYPE): Remove unused macro. (__ctype32_b, __ctype32_toupper, __ctype32_tolower): Remove declarations. (iswalnum, iswalpha, iswcntrl, iswdigit, iswlower, iswgraph, iswprint, iswpunct, iswspace, iswupper, iswxdigit): Assume new locale format. (towlower, towupper): Likewise. * wctype/wcfuncs_l.c: Don't include cname-lookup.h. Include localeinfo.h instead. (__NO_WCTYPE): Remove unused macro. (__iswalnum_l, __iswalpha_l, __iswcntrl_l, __iswdigit_l, __iswlower_l, __iswgraph_l, __iswprint_l, __iswpunct_l, __iswspace_l, __iswupper_l, __iswxdigit_l): Assume new locale format. (__towlower_l, __towupper_l): Likewise. * wcsmbs/wcwidth.h: Don't include cname-lookup.h. (__ctype32_b): Remove declaration. (internal_wcwidth): Assume new locale format. * locale/programs/ld-ctype.c (struct locale_ctype_t): Remove fields plane_size, plane_cnt, names, width. Rename map to map_b, rename map32 to map32_b, rename width_3level to width. (ctype_output): Always create new locale format. Don't emit _NL_CTYPE_NAMES, _NL_CTYPE_HASH_SIZE, _NL_CTYPE_HASH_LAYERS any more. (allocate_arrays): Always create new locale format. * locale/C-collate.c (_nl_C_LC_COLLATE): Update. * locale/weightwc.h (findidx): Assume new locale format. * string/strcoll.c (wcscoll): Remove local variables size, layers, names. * string/strxfrm.c (wcsxfrm): Likewise. * posix/fnmatch_loop.c (internal_fnwmatch): Likewise. Change type of local variable collseq to 'const char *'. (SUFFIX): Don't use, don't undefine. * posix/fnmatch.c: Remove SUFFIX definition. * locale/programs/ld-collate.c (struct locale_collate_t): Remove fields plane_size, plane_cnt, wcheads, wcseqorder. Rename wcheads_3level to wcheads, rename wcseqorder_3level to wcseqorder. (collate_finish): Always create new locale format. Remove local variables min_total, act_size. (collate_output): Always create new locale format. Remove local variables table_size, names, tablewc. Rename tablewc_3level to tablewc. 2000-08-31 Bruno Haible <haible@clisp.cons.org> * locale/programs/ld-collate.c (obstack_int32_grow, obstack_int32_grow_fast): New inline functions. (output_weightwc, collate_output): Use them where possible.
-rw-r--r--ChangeLog97
-rw-r--r--ctype/ctype-info.c2
-rw-r--r--locale/C-collate.c10
-rw-r--r--locale/C-ctype.c12
-rw-r--r--locale/categories.def6
-rw-r--r--locale/langinfo.h12
-rw-r--r--locale/lc-ctype.c31
-rw-r--r--locale/programs/ld-collate.c430
-rw-r--r--locale/programs/ld-ctype.c659
-rw-r--r--locale/weightwc.h22
-rw-r--r--posix/fnmatch.c2
-rw-r--r--posix/fnmatch_loop.c153
-rw-r--r--string/strcoll.c20
-rw-r--r--string/strxfrm.c22
-rw-r--r--wcsmbs/wcwidth.h37
-rw-r--r--wctype/Makefile7
-rw-r--r--wctype/cname-lookup.h62
-rw-r--r--wctype/iswctype.c31
-rw-r--r--wctype/iswctype_l.c32
-rw-r--r--wctype/towctrans.c19
-rw-r--r--wctype/towctrans_l.c19
-rw-r--r--wctype/wcextra.c54
-rw-r--r--wctype/wcextra_l.c55
-rw-r--r--wctype/wcfuncs.c65
-rw-r--r--wctype/wcfuncs_l.c79
-rw-r--r--wctype/wchar-lookup.h4
-rw-r--r--wctype/wctrans.c25
-rw-r--r--wctype/wctrans_l.c20
-rw-r--r--wctype/wctype.c20
-rw-r--r--wctype/wctype_l.c20
30 files changed, 468 insertions, 1559 deletions
diff --git a/ChangeLog b/ChangeLog
index 3154ab2169..ff22322a70 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,100 @@
+2000-08-31 Bruno Haible <haible@clisp.cons.org>
+
+ * wctype/wcfuncs.c (iswblank): New function.
+ * wctype/wcfuncs_l.c (__iswblank_l): New function.
+ * wctype/wcextra.c: Remove file.
+ * wctype/wcextra_l.c: Remove file.
+ * wctype/Makefile (distribute): Remove wcextra and wcextra_l.
+
+2000-08-31 Bruno Haible <haible@clisp.cons.org>
+
+ * locale/programs/ld-collate.c (collate_output): Remove redundant
+ assert call.
+ * string/strcoll.c: Likewise.
+ * string/strxfrm.c: Include assert.h. Add assert calls like in
+ string/strcoll.c.
+
+2000-08-31 Bruno Haible <haible@clisp.cons.org>
+
+ * locale/categories.def (_NL_COLLATE_HASH_SIZE,
+ _NL_COLLATE_HASH_LAYERS, _NL_COLLATE_NAMES, _NL_CTYPE_NAMES,
+ _NL_CTYPE_HASH_SIZE, _NL_CTYPE_HASH_LAYERS): Remove definitions.
+ * locale/langinfo.h (_NL_COLLATE_HASH_SIZE, _NL_COLLATE_HASH_LAYERS,
+ _NL_COLLATE_NAMES): Rename to _NL_COLLATE_GAP1/2/3 respectively.
+ (_NL_CTYPE_NAMES): Rename to _NL_CTYPE_GAP3.
+ (_NL_CTYPE_GAP3): Rename to _NL_CTYPE_GAP4.
+ (_NL_CTYPE_HASH_SIZE, _NL_CTYPE_HASH_LAYERS): Rename to
+ _NL_CTYPE_GAP5/6 respectively.
+
+ * locale/C-ctype.c (_nl_C_LC_CTYPE): Update.
+ * ctype/ctype-info.c (__ctype_names, __ctype_width): Remove variables.
+ * locale/lc-ctype.c (_nl_postload_ctype): Assume new locale format.
+ Don't initialize __ctype_names and __ctype_width.
+ * wctype/cname-lookup.h: Remove file.
+ * wctype/Makefile (distribute): Remove cname-lookup.h.
+ * wctype/wchar-lookup.h: Include stdint.h.
+ * wctype/wctype.c (__wctype): Assume new locale format.
+ * wctype/wctype_l.c (__wctype_l): Likewise.
+ * wctype/iswctype.c: Don't include cname-lookup.h.
+ (__iswctype): Assume new locale format.
+ * wctype/iswctype_l.c: Don't include cname-lookup.h.
+ (__iswctype_l): Assume new locale format.
+ * wctype/wctrans.c: Don't include ctype.h.
+ (wctrans): Assume new locale format.
+ * wctype/wctrans_l.c (__wctrans_l): Likewise.
+ * wctype/towctrans.c: Don't include cname-lookup.h.
+ (__towctrans): Assume new locale format.
+ * wctype/towctrans_l.c: Don't include cname-lookup.h.
+ (__towctrans_l): Assume new locale format.
+ * wctype/wcfuncs.c: Don't include ctype.h and cname-lookup.h. Include
+ localeinfo.h instead.
+ (__NO_WCTYPE): Remove unused macro.
+ (__ctype32_b, __ctype32_toupper, __ctype32_tolower): Remove
+ declarations.
+ (iswalnum, iswalpha, iswcntrl, iswdigit, iswlower, iswgraph, iswprint,
+ iswpunct, iswspace, iswupper, iswxdigit): Assume new locale format.
+ (towlower, towupper): Likewise.
+ * wctype/wcfuncs_l.c: Don't include cname-lookup.h. Include
+ localeinfo.h instead.
+ (__NO_WCTYPE): Remove unused macro.
+ (__iswalnum_l, __iswalpha_l, __iswcntrl_l, __iswdigit_l, __iswlower_l,
+ __iswgraph_l, __iswprint_l, __iswpunct_l, __iswspace_l, __iswupper_l,
+ __iswxdigit_l): Assume new locale format.
+ (__towlower_l, __towupper_l): Likewise.
+ * wcsmbs/wcwidth.h: Don't include cname-lookup.h.
+ (__ctype32_b): Remove declaration.
+ (internal_wcwidth): Assume new locale format.
+ * locale/programs/ld-ctype.c (struct locale_ctype_t): Remove fields
+ plane_size, plane_cnt, names, width. Rename map to map_b, rename map32
+ to map32_b, rename width_3level to width.
+ (ctype_output): Always create new locale format. Don't emit
+ _NL_CTYPE_NAMES, _NL_CTYPE_HASH_SIZE, _NL_CTYPE_HASH_LAYERS any more.
+ (allocate_arrays): Always create new locale format.
+
+ * locale/C-collate.c (_nl_C_LC_COLLATE): Update.
+ * locale/weightwc.h (findidx): Assume new locale format.
+ * string/strcoll.c (wcscoll): Remove local variables size, layers,
+ names.
+ * string/strxfrm.c (wcsxfrm): Likewise.
+ * posix/fnmatch_loop.c (internal_fnwmatch): Likewise. Change type of
+ local variable collseq to 'const char *'.
+ (SUFFIX): Don't use, don't undefine.
+ * posix/fnmatch.c: Remove SUFFIX definition.
+ * locale/programs/ld-collate.c (struct locale_collate_t): Remove
+ fields plane_size, plane_cnt, wcheads, wcseqorder. Rename
+ wcheads_3level to wcheads, rename wcseqorder_3level to wcseqorder.
+ (collate_finish): Always create new locale format. Remove local
+ variables min_total, act_size.
+ (collate_output): Always create new locale format. Remove local
+ variables table_size, names, tablewc. Rename tablewc_3level to
+ tablewc.
+
+2000-08-31 Bruno Haible <haible@clisp.cons.org>
+
+ * locale/programs/ld-collate.c (obstack_int32_grow,
+ obstack_int32_grow_fast): New inline functions.
+ (output_weightwc, collate_output): Use them where possible.
+
2000-09-01 Ulrich Drepper <drepper@redhat.com>
* libio/libio.h (_IO_flockfile, _IO_funlockfile): Fix typo in last
diff --git a/ctype/ctype-info.c b/ctype/ctype-info.c
index 57f1256572..5a210f66fd 100644
--- a/ctype/ctype-info.c
+++ b/ctype/ctype-info.c
@@ -48,8 +48,6 @@ const __int32_t *__ctype_tolower = b (__int32_t, tolower, 128);
const __int32_t *__ctype_toupper = b (__int32_t, toupper, 128);
const __uint32_t *__ctype32_tolower = b (__uint32_t, tolower, 128);
const __uint32_t *__ctype32_toupper = b (__uint32_t, toupper, 128);
-const __uint32_t *__ctype_names;
-const unsigned char *__ctype_width;
const char *__ctype32_wctype[12] =
{
b(char, class_upper, 32),
diff --git a/locale/C-collate.c b/locale/C-collate.c
index a0ba0ff691..964ea50113 100644
--- a/locale/C-collate.c
+++ b/locale/C-collate.c
@@ -119,11 +119,11 @@ const struct locale_data _nl_C_LC_COLLATE =
{ string: NULL },
/* _NL_COLLATE_INDIRECTMB */
{ string: NULL },
- /* _NL_COLLATE_HASH_SIZE */
- { word: 0 },
- /* _NL_COLLATE_HASH_LAYERS */
- { word: 0 },
- /* _NL_COLLATE_NAMES */
+ /* _NL_COLLATE_GAP1 */
+ { string: NULL },
+ /* _NL_COLLATE_GAP2 */
+ { string: NULL },
+ /* _NL_COLLATE_GAP3 */
{ string: NULL },
/* _NL_COLLATE_TABLEWC */
{ string: NULL },
diff --git a/locale/C-ctype.c b/locale/C-ctype.c
index 4f8e204a5d..f9eee1ca94 100644
--- a/locale/C-ctype.c
+++ b/locale/C-ctype.c
@@ -550,14 +550,14 @@ const struct locale_data _nl_C_LC_CTYPE =
{ string: NULL },
/* _NL_CTYPE_CLASS32 */
{ string: _nl_C_LC_CTYPE_class32 },
- /* _NL_CTYPE_NAMES */
- { string: NULL },
/* _NL_CTYPE_GAP3 */
{ string: NULL },
- /* _NL_CTYPE_HASH_SIZE */
- { word: 0 },
- /* _NL_CTYPE_HASH_LAYERS */
- { word: 0 },
+ /* _NL_CTYPE_GAP4 */
+ { string: NULL },
+ /* _NL_CTYPE_GAP5 */
+ { string: NULL },
+ /* _NL_CTYPE_GAP6 */
+ { string: NULL },
/* _NL_CTYPE_CLASS_NAMES */
{ string: "upper\0" "lower\0" "alpha\0" "digit\0" "xdigit\0" "space\0"
"print\0" "graph\0" "blank\0" "cntrl\0" "punct\0" "alnum\0"
diff --git a/locale/categories.def b/locale/categories.def
index 95873d0036..2ec45e477a 100644
--- a/locale/categories.def
+++ b/locale/categories.def
@@ -48,9 +48,6 @@ DEFINE_CATEGORY
DEFINE_ELEMENT (_NL_COLLATE_WEIGHTMB, "collate-weightmb", std, string)
DEFINE_ELEMENT (_NL_COLLATE_EXTRAMB, "collate-extramb", std, string)
DEFINE_ELEMENT (_NL_COLLATE_INDIRECTMB, "collate-indirectmb", std, string)
- DEFINE_ELEMENT (_NL_COLLATE_HASH_SIZE, "collate-hash-size", std, word)
- DEFINE_ELEMENT (_NL_COLLATE_HASH_LAYERS, "collate-hash-layers", std, word)
- DEFINE_ELEMENT (_NL_COLLATE_NAMES, "collate-names", std, string)
DEFINE_ELEMENT (_NL_COLLATE_TABLEWC, "collate-tablewc", std, string)
DEFINE_ELEMENT (_NL_COLLATE_WEIGHTWC, "collate-weightwc", std, string)
DEFINE_ELEMENT (_NL_COLLATE_EXTRAWC, "collate-extrawc", std, string)
@@ -74,9 +71,6 @@ DEFINE_CATEGORY
DEFINE_ELEMENT (_NL_CTYPE_TOUPPER, "ctype-toupper", std, string)
DEFINE_ELEMENT (_NL_CTYPE_TOLOWER, "ctype-tolower", std, string)
DEFINE_ELEMENT (_NL_CTYPE_CLASS32, "ctype-class32", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_NAMES, "ctype-names", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_HASH_SIZE, "ctype-hash-size", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_HASH_LAYERS, "ctype-hash-layers", std, word)
DEFINE_ELEMENT (_NL_CTYPE_CLASS_NAMES, "ctype-class-names", std, stringlist)
DEFINE_ELEMENT (_NL_CTYPE_MAP_NAMES, "ctype-map-names", std, stringlist)
DEFINE_ELEMENT (_NL_CTYPE_WIDTH, "ctype-width", std, bytearray)
diff --git a/locale/langinfo.h b/locale/langinfo.h
index 6a94a8759b..494b14e413 100644
--- a/locale/langinfo.h
+++ b/locale/langinfo.h
@@ -238,9 +238,9 @@ enum
_NL_COLLATE_WEIGHTMB,
_NL_COLLATE_EXTRAMB,
_NL_COLLATE_INDIRECTMB,
- _NL_COLLATE_HASH_SIZE,
- _NL_COLLATE_HASH_LAYERS,
- _NL_COLLATE_NAMES,
+ _NL_COLLATE_GAP1,
+ _NL_COLLATE_GAP2,
+ _NL_COLLATE_GAP3,
_NL_COLLATE_TABLEWC,
_NL_COLLATE_WEIGHTWC,
_NL_COLLATE_EXTRAWC,
@@ -261,10 +261,10 @@ enum
_NL_CTYPE_TOLOWER,
_NL_CTYPE_GAP2,
_NL_CTYPE_CLASS32,
- _NL_CTYPE_NAMES,
_NL_CTYPE_GAP3,
- _NL_CTYPE_HASH_SIZE,
- _NL_CTYPE_HASH_LAYERS,
+ _NL_CTYPE_GAP4,
+ _NL_CTYPE_GAP5,
+ _NL_CTYPE_GAP6,
_NL_CTYPE_CLASS_NAMES,
_NL_CTYPE_MAP_NAMES,
_NL_CTYPE_WIDTH,
diff --git a/locale/lc-ctype.c b/locale/lc-ctype.c
index 4b40b8a22d..bf7b525129 100644
--- a/locale/lc-ctype.c
+++ b/locale/lc-ctype.c
@@ -41,41 +41,28 @@ _nl_postload_ctype (void)
((const type *) _NL_CURRENT (LC_CTYPE, paste(_NL_CTYPE_,x)) + offset)
extern const uint32_t *__ctype32_b;
- extern const uint32_t *__ctype_names;
- extern const unsigned char *__ctype_width;
extern const uint32_t *__ctype32_toupper;
extern const uint32_t *__ctype32_tolower;
extern const char *__ctype32_wctype[12];
extern const char *__ctype32_wctrans[2];
extern const char *__ctype32_width;
+ size_t offset, cnt;
+
__ctype_b = current (uint16_t, CLASS, 128);
__ctype_toupper = current (uint32_t, TOUPPER, 128);
__ctype_tolower = current (uint32_t, TOLOWER, 128);
__ctype32_b = current (uint32_t, CLASS32, 0);
__ctype32_toupper = current (uint32_t, TOUPPER32, 0);
__ctype32_tolower = current (uint32_t, TOLOWER32, 0);
- if (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_HASH_SIZE) != 0)
- {
- /* Old locale format. */
- __ctype_names = current (uint32_t, NAMES, 0);
- __ctype_width = current (unsigned char, WIDTH, 0);
- }
- else
- {
- /* New locale format. */
- size_t offset, cnt;
- offset = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_CLASS_OFFSET);
- for (cnt = 0; cnt < 12; cnt++)
- __ctype32_wctype[cnt] =
- _nl_current_LC_CTYPE->values[offset + cnt].string;
+ offset = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_CLASS_OFFSET);
+ for (cnt = 0; cnt < 12; cnt++)
+ __ctype32_wctype[cnt] = _nl_current_LC_CTYPE->values[offset + cnt].string;
- offset = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_OFFSET);
- for (cnt = 0; cnt < 2; cnt++)
- __ctype32_wctrans[cnt] =
- _nl_current_LC_CTYPE->values[offset + cnt].string;
+ offset = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_OFFSET);
+ for (cnt = 0; cnt < 2; cnt++)
+ __ctype32_wctrans[cnt] = _nl_current_LC_CTYPE->values[offset + cnt].string;
- __ctype32_width = current (char, WIDTH, 0);
- }
+ __ctype32_width = current (char, WIDTH, 0);
}
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index 6513d89adf..1bfce616f3 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -41,6 +41,24 @@
#define obstack_chunk_alloc malloc
#define obstack_chunk_free free
+static inline void
+obstack_int32_grow (struct obstack *obstack, int32_t data)
+{
+ if (sizeof (int32_t) == sizeof (int))
+ obstack_int_grow (obstack, data);
+ else
+ obstack_grow (obstack, &data, sizeof (int32_t));
+}
+
+static inline void
+obstack_int32_grow_fast (struct obstack *obstack, int32_t data)
+{
+ if (sizeof (int32_t) == sizeof (int))
+ obstack_int_grow_fast (obstack, data);
+ else
+ obstack_grow (obstack, &data, sizeof (int32_t));
+}
+
/* Forward declaration. */
struct element_t;
@@ -212,19 +230,13 @@ struct locale_collate_t
the multibyte sequences. */
struct element_t *mbheads[256];
- /* Table size of wide character hash table. */
- uint32_t plane_size;
- uint32_t plane_cnt;
-
/* Arrays with heads of the list for each of the leading bytes in
the multibyte sequences. */
- struct element_t **wcheads;
- struct wchead_table wcheads_3level;
+ struct wchead_table wcheads;
/* The arrays with the collation sequence order. */
unsigned char mbseqorder[256];
- uint32_t *wcseqorder;
- struct collseq_table wcseqorder_3level;
+ struct collseq_table wcseqorder;
};
@@ -1468,8 +1480,6 @@ collate_finish (struct localedef_t *locale, struct charmap_t *charmap)
struct section_list *sect;
int ruleidx;
int nr_wide_elems = 0;
- size_t min_total;
- size_t act_size;
if (collate == NULL)
{
@@ -1645,125 +1655,13 @@ collate_finish (struct localedef_t *locale, struct charmap_t *charmap)
}
/* Now to the wide character case. */
- if (oldstyle_tables)
- {
- /* Here we have to find first a good mapping function to get the
- wide range of wide character values (0x00000000 to 0x7fffffff)
- to a managable table. This might take some time so we issue
- a warning.
-
- We use a very trivial hashing function to store the sparse
- table. CH % TABSIZE is used as an index. To solve multiple hits
- we have N planes. This guarantees a fixed search time for a
- character [N / 2]. In the following code we determine the minimum
- value for TABSIZE * N, where TABSIZE >= 256.
-
- Some people complained that this algorithm takes too long. Well,
- go on, improve it. But changing the step size is *not* an
- option. Some people changed this to use only sizes of prime
- numbers. Think again, do some math. We are looking for the
- optimal solution, not something which works in general. Unless
- somebody can provide a dynamic programming solution I think this
- implementation is as good as it can get. */
- if (nr_wide_elems > 512 && !be_quiet)
- fputs (_("\
-Computing table size for collation table might take a while..."),
- stderr);
-
- min_total = UINT_MAX;
- act_size = 256;
-
- /* While we want to have a small total size we are willing to use a
- little bit larger table if this reduces the number of layers.</