Commit d38c8cfb authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

scripts: kernel-doc: add support for typedef enum



The PHY kernel-doc markup has gained support for documenting
a typedef enum.

However, right now the parser was not prepared for it.

So, add support for parsing it.

Fixes: 4069a572 ("net: phy: Document core PHY structures")
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 3e4fb434
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -1265,14 +1265,22 @@ sub show_warnings($$) {
sub dump_enum($$) {
    my $x = shift;
    my $file = shift;
    my $members;


    $x =~ s@/\*.*?\*/@@gos;	# strip comments.
    # strip #define macros inside enums
    $x =~ s@#\s*((define|ifdef)\s+|endif)[^;]*;@@gos;

    if ($x =~ /enum\s+(\w*)\s*\{(.*)\}/) {
    if ($x =~ /typedef\s+enum\s*\{(.*)\}\s*(\w*)\s*;/) {
	$declaration_name = $2;
	$members = $1;
    } elsif ($x =~ /enum\s+(\w*)\s*\{(.*)\}/) {
	$declaration_name = $1;
	my $members = $2;
	$members = $2;
    }

    if ($declaration_name) {
	my %_members;

	$members =~ s/\s+$//;
@@ -1307,8 +1315,7 @@ sub dump_enum($$) {
			    'sections' => \%sections,
			    'purpose' => $declaration_purpose
			   });
    }
    else {
    } else {
	print STDERR "${file}:$.: error: Cannot parse enum!\n";
	++$errors;
    }