From: Ulrich Drepper Date: Fri, 1 Feb 2002 20:24:50 +0000 (+0000) Subject: (collate_finish): Assign a wide char collation sequence value to multi X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0ee5ee3c3b3003a021f3bccbd558891d26a4870b;p=thirdparty%2Fglibc.git (collate_finish): Assign a wide char collation sequence value to multi character collating elements, and avoid over writing by non-character elements. --- diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c index 6d238a658e0..915f6185717 100644 --- a/locale/programs/ld-collate.c +++ b/locale/programs/ld-collate.c @@ -1666,6 +1666,10 @@ collate_finish (struct localedef_t *locale, struct charmap_t *charmap) runp->wcseqorder = wcseqact++; } + else if (runp->mbs != NULL && runp->weights != NULL) + { + runp->wcseqorder = wcseqact++; + } /* Up to the next entry. */ runp = runp->next; @@ -1700,8 +1704,9 @@ collate_finish (struct localedef_t *locale, 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]);