$line =~ s/STACK_OF\([^)]+\)/int/g;
$line =~ s/SPARSE_ARRAY_OF\([^)]+\)/int/g;
$line =~ s/__declspec\([^)]+\)//;
+ if ( $line =~ /typedef.*\(\*\S+\)\s+\(/ ) {
+ # a callback function with whitespace before the argument list:
+ # typedef ... (*NAME) (...
+ err($id, "function typedef has space before arg list: $line");
+ }
if ( $line =~ /env (\S*)=/ ) {
# environment variable env NAME=...
$sym = $1;
- } elsif ( $line =~ /typedef.*\(\*(\S+)\)\(.*/ ) {
+ } elsif ( $line =~ /typedef.*\(\*(\S+)\)\s*\(/ ) {
# a callback function pointer: typedef ... (*NAME)(...
$sym = $1;
- } elsif ( $line =~ /typedef.* (\S+)\(.*/ ) {
+ } elsif ( $line =~ /typedef.* (\S+)\(/ ) {
# a callback function signature: typedef ... NAME(...
$sym = $1;
} elsif ( $line =~ /typedef.* (\S+);/ ) {
}
close FH;
+ for (@missing) {
+ err("$missingfile:", "$_ is documented in $name_map{$_}")
+ if exists $name_map{$_} && defined $name_map{$_};
+ }
+
return @missing;
}