kernel-doc: better format typedef function output
A typedef function looks more likely a function and not a normal typedef. Change the code to use the output_function_*, in order to properly parse the function prototype parameters. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
3a80a76632
commit
837664528e
|
@ -1869,6 +1869,31 @@ sub dump_typedef($$) {
|
||||||
my $file = shift;
|
my $file = shift;
|
||||||
|
|
||||||
$x =~ s@/\*.*?\*/@@gos; # strip comments.
|
$x =~ s@/\*.*?\*/@@gos; # strip comments.
|
||||||
|
|
||||||
|
# Parse function prototypes
|
||||||
|
if ($x =~ /typedef\s+(\w+)\s*\(\*\s*(\w\S+)\s*\)\s*\((.*)\);/) {
|
||||||
|
# Function typedefs
|
||||||
|
$return_type = $1;
|
||||||
|
$declaration_name = $2;
|
||||||
|
my $args = $3;
|
||||||
|
|
||||||
|
create_parameterlist($args, ',', $file);
|
||||||
|
|
||||||
|
output_declaration($declaration_name,
|
||||||
|
'function',
|
||||||
|
{'function' => $declaration_name,
|
||||||
|
'module' => $modulename,
|
||||||
|
'functiontype' => $return_type,
|
||||||
|
'parameterlist' => \@parameterlist,
|
||||||
|
'parameterdescs' => \%parameterdescs,
|
||||||
|
'parametertypes' => \%parametertypes,
|
||||||
|
'sectionlist' => \@sectionlist,
|
||||||
|
'sections' => \%sections,
|
||||||
|
'purpose' => $declaration_purpose
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
while (($x =~ /\(*.\)\s*;$/) || ($x =~ /\[*.\]\s*;$/)) {
|
while (($x =~ /\(*.\)\s*;$/) || ($x =~ /\[*.\]\s*;$/)) {
|
||||||
$x =~ s/\(*.\)\s*;$/;/;
|
$x =~ s/\(*.\)\s*;$/;/;
|
||||||
$x =~ s/\[*.\]\s*;$/;/;
|
$x =~ s/\[*.\]\s*;$/;/;
|
||||||
|
@ -1886,18 +1911,6 @@ sub dump_typedef($$) {
|
||||||
'purpose' => $declaration_purpose
|
'purpose' => $declaration_purpose
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
elsif ($x =~ /typedef\s+\w+\s*\(\*\s*(\w\S+)\s*\)\s*\(/) { # functions
|
|
||||||
$declaration_name = $1;
|
|
||||||
|
|
||||||
output_declaration($declaration_name,
|
|
||||||
'typedef',
|
|
||||||
{'typedef' => $declaration_name,
|
|
||||||
'module' => $modulename,
|
|
||||||
'sectionlist' => \@sectionlist,
|
|
||||||
'sections' => \%sections,
|
|
||||||
'purpose' => $declaration_purpose
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
print STDERR "${file}:$.: error: Cannot parse typedef!\n";
|
print STDERR "${file}:$.: error: Cannot parse typedef!\n";
|
||||||
++$errors;
|
++$errors;
|
||||||
|
|
Loading…
Reference in New Issue