make_specfiles: Don't propagate -noname flag to non-ordinal functions.

This commit is contained in:
Alexandre Julliard 2014-02-06 11:19:16 +01:00
parent 207ae9f5c2
commit 8013173924
1 changed files with 5 additions and 4 deletions

View File

@ -223,15 +223,15 @@ sub update_file($)
# parse a spec file line # parse a spec file line
sub parse_line($$$) sub parse_line($$$)
{ {
my ($name, $line, $_) = @_; my ($name, $line, $str) = @_;
if (/^\s*(\@|\d+)\s+(stdcall|cdecl|varargs|thiscall|stub|extern)\s+((?:-\S+\s+)*)([A-Za-z0-9_\@\$?]+)(?:\s*(\([^)]*\)))?(?:\s+([A-Za-z0-9_\@\$?.]+))?(\s*\#.*)?/) if ($str =~ /^\s*(\@|\d+)\s+(stdcall|cdecl|varargs|thiscall|stub|extern)\s+((?:-\S+\s+)*)([A-Za-z0-9_\@\$?]+)(?:\s*(\([^)]*\)))?(?:\s+([A-Za-z0-9_\@\$?.]+))?(\s*\#.*)?/)
{ {
return ( "ordinal" => $1, "callconv" => $2, "flags" => $3, "name" => $4, "args" => $5 || "", return ( "ordinal" => $1, "callconv" => $2, "flags" => $3, "name" => $4, "args" => $5 || "",
"target" => $6 || $4, "comment" => $7, "spec" => $name ); "target" => $6 || $4, "comment" => $7, "spec" => $name );
} }
return () if /^\s*$/; return () if $str =~ /^\s*$/;
return () if /^\s*\#/; return () if $str =~ /^\s*\#/;
printf STDERR "$name.spec:$line: error: Unrecognized line $_\n"; printf STDERR "$name.spec:$line: error: Unrecognized line $_\n";
} }
@ -300,6 +300,7 @@ sub update_spec_file($)
{ {
$flags = $parent{flags}; $flags = $parent{flags};
$flags =~ s/-ordinal\s*// if $descr{ordinal} eq "@"; $flags =~ s/-ordinal\s*// if $descr{ordinal} eq "@";
$flags =~ s/-noname\s*// if $descr{ordinal} eq "@";
if ($descr{flags} =~ /-private/) # preserve -private flag if ($descr{flags} =~ /-private/) # preserve -private flag
{ {
$flags = "-private " . $flags unless $flags =~ /-private/; $flags = "-private " . $flags unless $flags =~ /-private/;