* locale/programs/ld-collate.c (collate_read): Optimize a bit.
(skip_to): Fix problems with parameter of elifdef/elifndef.
This commit is contained in:
parent
26a51060b1
commit
d074d36dde
@ -1,3 +1,8 @@
|
||||
2007-10-12 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* locale/programs/ld-collate.c (collate_read): Optimize a bit.
|
||||
(skip_to): Fix problems with parameter of elifdef/elifndef.
|
||||
|
||||
2007-10-11 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* iconv/gconv_simple.c: Add some branch prediction.
|
||||
|
@ -2662,13 +2662,16 @@ skip_to (struct linereader *ldfile, struct locale_collate_t *collate,
|
||||
if (nowtok == tok_eof || nowtok == tok_end)
|
||||
return nowtok;
|
||||
}
|
||||
else if ((!to_endif && (nowtok == tok_else || nowtok == tok_elifdef
|
||||
|| nowtok == tok_elifndef))
|
||||
|| nowtok == tok_endif)
|
||||
else if (nowtok == tok_endif || (!to_endif && nowtok == tok_else))
|
||||
{
|
||||
lr_ignore_rest (ldfile, 1);
|
||||
return nowtok;
|
||||
}
|
||||
else if (!to_endif && (nowtok == tok_elifdef || nowtok == tok_elifndef))
|
||||
{
|
||||
/* Do not read the rest of the line. */
|
||||
return nowtok;
|
||||
}
|
||||
else if (nowtok == tok_else)
|
||||
{
|
||||
lr_error (ldfile, _("%s: more then one 'else'"), "LC_COLLATE");
|
||||
@ -2709,15 +2712,18 @@ collate_read (struct linereader *ldfile, struct localedef_t *result,
|
||||
/* The rest of the line containing `LC_COLLATE' must be free. */
|
||||
lr_ignore_rest (ldfile, 1);
|
||||
|
||||
do
|
||||
while (1)
|
||||
{
|
||||
now = lr_token (ldfile, charmap, result, NULL, verbose);
|
||||
nowtok = now->tok;
|
||||
}
|
||||
while (nowtok == tok_eol);
|
||||
do
|
||||
{
|
||||
now = lr_token (ldfile, charmap, result, NULL, verbose);
|
||||
nowtok = now->tok;
|
||||
}
|
||||
while (nowtok == tok_eol);
|
||||
|
||||
if (nowtok != tok_define)
|
||||
break;
|
||||
|
||||
while (nowtok == tok_define)
|
||||
{
|
||||
if (ignore_content)
|
||||
lr_ignore_rest (ldfile, 0);
|
||||
else
|
||||
@ -2738,13 +2744,6 @@ collate_read (struct linereader *ldfile, struct localedef_t *result,
|
||||
lr_ignore_rest (ldfile, 1);
|
||||
}
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
now = lr_token (ldfile, charmap, result, NULL, verbose);
|
||||
nowtok = now->tok;
|
||||
}
|
||||
while (nowtok == tok_eol);
|
||||
}
|
||||
|
||||
if (nowtok == tok_copy)
|
||||
|
Loading…
x
Reference in New Issue
Block a user