aboutsummaryrefslogtreecommitdiff
path: root/locale/programs/ld-collate.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-02-01 21:08:09 +0000
committerUlrich Drepper <drepper@redhat.com>2002-02-01 21:08:09 +0000
commit9c1084a38005ab319ce3f34e2faf087b59e9b0e8 (patch)
treefaa821863cc5c2afc2dd2e1a3d0f403fae65db64 /locale/programs/ld-collate.c
parent635f35fcf4974d1363dbb57524102e23f8157036 (diff)
downloadglibc-9c1084a38005ab319ce3f34e2faf087b59e9b0e8.zip
glibc-9c1084a38005ab319ce3f34e2faf087b59e9b0e8.tar.gz
glibc-9c1084a38005ab319ce3f34e2faf087b59e9b0e8.tar.bz2
Update.
2002-01-18 Isamu Hasegawa <isamu@yamato.ibm.com> * locale/program/ld-collate.c (collate_finish): Assign a wide char collation sequence value to multi character collating elements, and avoid over writing by non-character elements.
Diffstat (limited to 'locale/programs/ld-collate.c')
-rw-r--r--locale/programs/ld-collate.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index 4f587c1..0da1261 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@@ -1672,6 +1672,9 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap)
runp->wcseqorder = wcseqact++;
}
+ else if (runp->mbs != NULL && runp->weights != NULL)
+ /* This is for collation elements. */
+ runp->wcseqorder = wcseqact++;
/* Up to the next entry. */
runp = runp->next;
@@ -1706,8 +1709,9 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap)
struct element_t *lastp;
/* Insert the collation sequence value. */
- collseq_table_add (&collate->wcseqorder, runp->wcs[0],
- runp->wcseqorder);
+ if (runp->is_character)
+ collseq_table_add (&collate->wcseqorder, runp->wcs[0],
+ runp->wcseqorder);
/* Find the point where to insert in the list. */
e = wchead_table_get (&collate->wcheads, runp->wcs[0]);