From 755b39d29bec64927aff82e1598bdfb72a017515 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 3 Aug 2001 05:33:30 +0000 Subject: [PATCH] (collate_read): Handle collating-element and reorder_after following copy statement correctly. --- locale/programs/ld-collate.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c index 63c379ae84..e9e92e2bf4 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. */