From: Ulrich Drepper Date: Fri, 3 Aug 2001 05:33:30 +0000 (+0000) Subject: (collate_read): Handle collating-element and reorder_after following copy statement... X-Git-Tag: cvs/glibc-2_2_4~98 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=755b39d29bec64927aff82e1598bdfb72a017515;p=thirdparty%2Fglibc.git (collate_read): Handle collating-element and reorder_after following copy statement correctly. --- diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c index 63c379ae844..e9e92e2bf45 100644 --- a/locale/programs/ld-collate.c +++ b/locale/programs/ld-collate.c @@ -2742,7 +2742,7 @@ collate_read (struct linereader *ldfile, struct localedef_t *result, break; } - if (state != 0) + if (state != 0 && state != 2) goto err_label; arg = lr_token (ldfile, charmap, repertoire, verbose); @@ -3533,7 +3533,9 @@ error while adding equivalent collating symbol")); goto move_entry; if (find_entry (&collate->elem_table, symstr, symlen, - (void **) &seqp) == 0) + (void **) &seqp) == 0 + && (seqp->last != NULL || seqp->next != NULL + || (collate->start != NULL && seqp == collate->start))) { move_entry: /* Remove the entry from the old position. */