From 9c1084a38005ab319ce3f34e2faf087b59e9b0e8 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 1 Feb 2002 21:08:09 +0000 Subject: Update. 2002-01-18 Isamu Hasegawa * 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. --- locale/programs/ld-collate.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'locale/programs') diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c index 4f587c113c..0da1261bd8 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 , 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]); -- cgit 1.4.1