doc-rst: parse-headers: fix multiline typedef handler

The typedef handler should do two things to be generic:
  1) parse typedef enums;
  2) accept both possible syntaxes:
	 typedef struct foo { .. } foo_t;
	 typedef struct { .. } foo_t;

Unfortunately, this is needed to parse some legacy DVB
files, like dvb/audio.h.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
Mauro Carvalho Chehab 2016-07-07 08:09:37 -03:00
parent 6c4c7dadb4
commit 4ff916a0c9

View File

@ -109,10 +109,11 @@ close IN;
# Handle multi-line typedefs
#
my @matches = $data =~ m/typedef\s+struct\s+\S+\s*\{[^\}]+\}\s*(\S+)\s*\;/g;
my @matches = ($data =~ m/typedef\s+struct\s+\S+?\s*\{[^\}]+\}\s*(\S+)\s*\;/g,
$data =~ m/typedef\s+enum\s+\S+?\s*\{[^\}]+\}\s*(\S+)\s*\;/g,);
foreach my $m (@matches) {
my $s = $1;
my $n = $1;
my $s = $m;
my $n = $m;
$n =~ tr/A-Z/a-z/;
$n =~ tr/_/-/;