winebuild: Allow optional keywords to be in any order in a .def file.

oldstable
Alexandre Julliard 2009-12-28 23:23:54 +01:00
parent c4c6fcaff7
commit 4939acf0ac
1 changed files with 22 additions and 21 deletions

View File

@ -945,33 +945,34 @@ static int parse_def_export( char *name, DLLSPEC *spec )
/* check for other optional keywords */
if (token && !strcmp( token, "NONAME" ))
while (token)
{
if (odp->ordinal == -1)
if (!strcmp( token, "NONAME" ))
{
error( "NONAME requires an ordinal\n" );
if (odp->ordinal == -1)
{
error( "NONAME requires an ordinal\n" );
goto error;
}
odp->export_name = odp->name;
odp->name = NULL;
odp->flags |= FLAG_NONAME;
}
else if (!strcmp( token, "PRIVATE" ))
{
odp->flags |= FLAG_PRIVATE;
}
else if (!strcmp( token, "DATA" ))
{
odp->type = TYPE_EXTERN;
}
else
{
error( "Garbage text '%s' found at end of export declaration\n", token );
goto error;
}
odp->export_name = odp->name;
odp->name = NULL;
odp->flags |= FLAG_NONAME;
token = GetToken(1);
}
if (token && !strcmp( token, "PRIVATE" ))
{
odp->flags |= FLAG_PRIVATE;
token = GetToken(1);
}
if (token && !strcmp( token, "DATA" ))
{
odp->type = TYPE_EXTERN;
token = GetToken(1);
}
if (token)
{
error( "Garbage text '%s' found at end of export declaration\n", token );
goto error;
}
return 1;
error: