* catgets/gencat.c (read_input_file): Collision between
	auto-assigned numbers and user-defined nubmers is not fatal.
	Handle it.
	Patch by Michael M. Lampkin <michael.lampkin@ieee.org>.

	* catgets/gencat.c (main): Return 1 if messages have been printed.
This commit is contained in:
Ulrich Drepper 2003-02-22 23:15:39 +00:00
parent d5ca9483e8
commit 819c56e76d
2 changed files with 42 additions and 6 deletions

View File

@ -13,6 +13,13 @@
2003-02-22 Ulrich Drepper <drepper@redhat.com> 2003-02-22 Ulrich Drepper <drepper@redhat.com>
* catgets/gencat.c (read_input_file): Collision between
auto-assigned numbers and user-defined nubmers is not fatal.
Handle it.
Patch by Michael M. Lampkin <michael.lampkin@ieee.org>.
* catgets/gencat.c (main): Return 1 if messages have been printed.
* iconv/iconv_prog.c (main): Unify messages. * iconv/iconv_prog.c (main): Unify messages.
* stdlib/strtod.c (INTERNAL): Remove bogus clearing of second word * stdlib/strtod.c (INTERNAL): Remove bogus clearing of second word

View File

@ -197,7 +197,7 @@ main (int argc, char *argv[])
if (result != NULL) if (result != NULL)
write_out (result, output_name, header_name); write_out (result, output_name, header_name);
return EXIT_SUCCESS; return error_message_count != 0;
} }
@ -613,12 +613,41 @@ this is the first definition"));
{ {
/* Oh, oh. There is already a message with this /* Oh, oh. There is already a message with this
number in the message set. */ number in the message set. */
if (runp->symbol == NULL)
{
/* The existing message had its number specified
by the user. Fatal collision type uh, oh. */
error_at_line (0, 0, fname, start_line, error_at_line (0, 0, fname, start_line,
gettext ("duplicated message number")); gettext ("duplicated message number"));
error_at_line (0, 0, runp->fname, runp->line, error_at_line (0, 0, runp->fname, runp->line,
gettext ("this is the first definition")); gettext ("this is the first definition"));
message_number = 0; message_number = 0;
} }
else
{
/* Collision was with number auto-assigned to a
symbolic. Change existing symbolic number
and move to end the list (if not already there). */
runp->number = ++current->current_set->last_message;
if (runp->next != NULL)
{
struct message_list *endp;
if (lastp == NULL)
current->current_set->messages=runp->next;
else
lastp->next=runp->next;
endp = runp->next;
while (endp->next != NULL)
endp = endp->next;
endp->next = runp;
runp->next = NULL;
}
}
}
ident = NULL; /* We don't have a symbol. */ ident = NULL; /* We don't have a symbol. */
if (message_number != 0 if (message_number != 0