Skip to content

Commit

Permalink
* locale/programs/ld-collate.c (collate_read): Optimize a bit.
Browse files Browse the repository at this point in the history
	(skip_to): Fix problems with parameter of elifdef/elifndef.
  • Loading branch information
Ulrich Drepper committed Oct 12, 2007
1 parent 26a5106 commit d074d36
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 17 deletions.
5 changes: 5 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
33 changes: 16 additions & 17 deletions locale/programs/ld-collate.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down Expand Up @@ -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
Expand All @@ -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)
Expand Down

0 comments on commit d074d36

Please sign in to comment.