diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-07-22 03:52:21 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-07-22 03:52:21 +0000 |
commit | d58c3ad0212247b18f5feccd2580296f30816da2 (patch) | |
tree | bc0939a94b81a9e7d830ea2579a5b044a26c0e08 /locale | |
parent | 0c0c8bdeed0b6d5546e287300d1e210445991ae4 (diff) | |
download | glibc-d58c3ad0212247b18f5feccd2580296f30816da2.zip glibc-d58c3ad0212247b18f5feccd2580296f30816da2.tar.gz glibc-d58c3ad0212247b18f5feccd2580296f30816da2.tar.bz2 |
Update.
* locale/programs/ld-collate.c (collate_read): Allow collating
symbols be named in reorder-after instructions.
Reported by Yoshito Kawada <KAWADA@jp.ibm.com>.
Diffstat (limited to 'locale')
-rw-r--r-- | locale/programs/ld-collate.c | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c index 861269b..fc5b447 100644 --- a/locale/programs/ld-collate.c +++ b/locale/programs/ld-collate.c @@ -3365,14 +3365,37 @@ error while adding equivalent collating symbol")); collate->cursor = insp; else { - /* This is bad. The symbol after which we have to - insert does not exist. */ - lr_error (ldfile, _("\ + struct symbol_t *symbp; + + if (find_entry (&collate->sym_table, arg->val.str.startmb, + arg->val.str.lenmb, (void **) &symbp) == 0) + { + if (symbp->order->last != NULL + || symbp->order->next != NULL) + collate->cursor = symbp->order; + else + { + /* This is a collating symbol but its position + is not yet defined. */ + lr_error (ldfile, _("\ +%s: order for collating symbol %.*s not yet defined"), + "LC_COLLATE", (int) arg->val.str.lenmb, + arg->val.str.startmb); + collate->cursor = NULL; + no_error = 0; + } + } + else + { + /* This is bad. The symbol after which we have to + insert does not exist. */ + lr_error (ldfile, _("\ %s: cannot reorder after %.*s: symbol not known"), - "LC_COLLATE", (int) arg->val.str.lenmb, - arg->val.str.startmb); - collate->cursor = NULL; - no_error = 0; + "LC_COLLATE", (int) arg->val.str.lenmb, + arg->val.str.startmb); + collate->cursor = NULL; + no_error = 0; + } } lr_ignore_rest (ldfile, no_error); |