diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/kernel-doc | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/scripts/kernel-doc b/scripts/kernel-doc index f50a70f550b3..c9b4d3631101 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc | |||
@@ -83,7 +83,7 @@ use strict; | |||
83 | # * my_function | 83 | # * my_function |
84 | # **/ | 84 | # **/ |
85 | # | 85 | # |
86 | # If the Description: header tag is ommitted, then there must be a blank line | 86 | # If the Description: header tag is omitted, then there must be a blank line |
87 | # after the last parameter specification. | 87 | # after the last parameter specification. |
88 | # e.g. | 88 | # e.g. |
89 | # /** | 89 | # /** |
@@ -265,7 +265,7 @@ my $doc_start = '^/\*\*\s*$'; # Allow whitespace at end of comment start. | |||
265 | my $doc_end = '\*/'; | 265 | my $doc_end = '\*/'; |
266 | my $doc_com = '\s*\*\s*'; | 266 | my $doc_com = '\s*\*\s*'; |
267 | my $doc_decl = $doc_com.'(\w+)'; | 267 | my $doc_decl = $doc_com.'(\w+)'; |
268 | my $doc_sect = $doc_com.'(['.$doc_special.']?[\w ]+):(.*)'; | 268 | my $doc_sect = $doc_com.'(['.$doc_special.']?[\w\s]+):(.*)'; |
269 | my $doc_content = $doc_com.'(.*)'; | 269 | my $doc_content = $doc_com.'(.*)'; |
270 | my $doc_block = $doc_com.'DOC:\s*(.*)?'; | 270 | my $doc_block = $doc_com.'DOC:\s*(.*)?'; |
271 | 271 | ||
@@ -365,7 +365,7 @@ sub dump_section { | |||
365 | # parameterlist => @list of parameters | 365 | # parameterlist => @list of parameters |
366 | # parameterdescs => %parameter descriptions | 366 | # parameterdescs => %parameter descriptions |
367 | # sectionlist => @list of sections | 367 | # sectionlist => @list of sections |
368 | # sections => %descriont descriptions | 368 | # sections => %section descriptions |
369 | # | 369 | # |
370 | 370 | ||
371 | sub output_highlight { | 371 | sub output_highlight { |
@@ -583,14 +583,14 @@ sub output_function_xml(%) { | |||
583 | $id = "API-".$args{'function'}; | 583 | $id = "API-".$args{'function'}; |
584 | $id =~ s/[^A-Za-z0-9]/-/g; | 584 | $id =~ s/[^A-Za-z0-9]/-/g; |
585 | 585 | ||
586 | print "<refentry>\n"; | 586 | print "<refentry id=\"$id\">\n"; |
587 | print "<refentryinfo>\n"; | 587 | print "<refentryinfo>\n"; |
588 | print " <title>LINUX</title>\n"; | 588 | print " <title>LINUX</title>\n"; |
589 | print " <productname>Kernel Hackers Manual</productname>\n"; | 589 | print " <productname>Kernel Hackers Manual</productname>\n"; |
590 | print " <date>$man_date</date>\n"; | 590 | print " <date>$man_date</date>\n"; |
591 | print "</refentryinfo>\n"; | 591 | print "</refentryinfo>\n"; |
592 | print "<refmeta>\n"; | 592 | print "<refmeta>\n"; |
593 | print " <refentrytitle><phrase id=\"$id\">".$args{'function'}."</phrase></refentrytitle>\n"; | 593 | print " <refentrytitle><phrase>".$args{'function'}."</phrase></refentrytitle>\n"; |
594 | print " <manvolnum>9</manvolnum>\n"; | 594 | print " <manvolnum>9</manvolnum>\n"; |
595 | print "</refmeta>\n"; | 595 | print "</refmeta>\n"; |
596 | print "<refnamediv>\n"; | 596 | print "<refnamediv>\n"; |
@@ -659,14 +659,14 @@ sub output_struct_xml(%) { | |||
659 | $id = "API-struct-".$args{'struct'}; | 659 | $id = "API-struct-".$args{'struct'}; |
660 | $id =~ s/[^A-Za-z0-9]/-/g; | 660 | $id =~ s/[^A-Za-z0-9]/-/g; |
661 | 661 | ||
662 | print "<refentry>\n"; | 662 | print "<refentry id=\"$id\">\n"; |
663 | print "<refentryinfo>\n"; | 663 | print "<refentryinfo>\n"; |
664 | print " <title>LINUX</title>\n"; | 664 | print " <title>LINUX</title>\n"; |
665 | print " <productname>Kernel Hackers Manual</productname>\n"; | 665 | print " <productname>Kernel Hackers Manual</productname>\n"; |
666 | print " <date>$man_date</date>\n"; | 666 | print " <date>$man_date</date>\n"; |
667 | print "</refentryinfo>\n"; | 667 | print "</refentryinfo>\n"; |
668 | print "<refmeta>\n"; | 668 | print "<refmeta>\n"; |
669 | print " <refentrytitle><phrase id=\"$id\">".$args{'type'}." ".$args{'struct'}."</phrase></refentrytitle>\n"; | 669 | print " <refentrytitle><phrase>".$args{'type'}." ".$args{'struct'}."</phrase></refentrytitle>\n"; |
670 | print " <manvolnum>9</manvolnum>\n"; | 670 | print " <manvolnum>9</manvolnum>\n"; |
671 | print "</refmeta>\n"; | 671 | print "</refmeta>\n"; |
672 | print "<refnamediv>\n"; | 672 | print "<refnamediv>\n"; |
@@ -743,14 +743,14 @@ sub output_enum_xml(%) { | |||
743 | $id = "API-enum-".$args{'enum'}; | 743 | $id = "API-enum-".$args{'enum'}; |
744 | $id =~ s/[^A-Za-z0-9]/-/g; | 744 | $id =~ s/[^A-Za-z0-9]/-/g; |
745 | 745 | ||
746 | print "<refentry>\n"; | 746 | print "<refentry id=\"$id\">\n"; |
747 | print "<refentryinfo>\n"; | 747 | print "<refentryinfo>\n"; |
748 | print " <title>LINUX</title>\n"; | 748 | print " <title>LINUX</title>\n"; |
749 | print " <productname>Kernel Hackers Manual</productname>\n"; | 749 | print " <productname>Kernel Hackers Manual</productname>\n"; |
750 | print " <date>$man_date</date>\n"; | 750 | print " <date>$man_date</date>\n"; |
751 | print "</refentryinfo>\n"; | 751 | print "</refentryinfo>\n"; |
752 | print "<refmeta>\n"; | 752 | print "<refmeta>\n"; |
753 | print " <refentrytitle><phrase id=\"$id\">enum ".$args{'enum'}."</phrase></refentrytitle>\n"; | 753 | print " <refentrytitle><phrase>enum ".$args{'enum'}."</phrase></refentrytitle>\n"; |
754 | print " <manvolnum>9</manvolnum>\n"; | 754 | print " <manvolnum>9</manvolnum>\n"; |
755 | print "</refmeta>\n"; | 755 | print "</refmeta>\n"; |
756 | print "<refnamediv>\n"; | 756 | print "<refnamediv>\n"; |
@@ -809,14 +809,14 @@ sub output_typedef_xml(%) { | |||
809 | $id = "API-typedef-".$args{'typedef'}; | 809 | $id = "API-typedef-".$args{'typedef'}; |
810 | $id =~ s/[^A-Za-z0-9]/-/g; | 810 | $id =~ s/[^A-Za-z0-9]/-/g; |
811 | 811 | ||
812 | print "<refentry>\n"; | 812 | print "<refentry id=\"$id\">\n"; |
813 | print "<refentryinfo>\n"; | 813 | print "<refentryinfo>\n"; |
814 | print " <title>LINUX</title>\n"; | 814 | print " <title>LINUX</title>\n"; |
815 | print " <productname>Kernel Hackers Manual</productname>\n"; | 815 | print " <productname>Kernel Hackers Manual</productname>\n"; |
816 | print " <date>$man_date</date>\n"; | 816 | print " <date>$man_date</date>\n"; |
817 | print "</refentryinfo>\n"; | 817 | print "</refentryinfo>\n"; |
818 | print "<refmeta>\n"; | 818 | print "<refmeta>\n"; |
819 | print " <refentrytitle><phrase id=\"$id\">typedef ".$args{'typedef'}."</phrase></refentrytitle>\n"; | 819 | print " <refentrytitle><phrase>typedef ".$args{'typedef'}."</phrase></refentrytitle>\n"; |
820 | print " <manvolnum>9</manvolnum>\n"; | 820 | print " <manvolnum>9</manvolnum>\n"; |
821 | print "</refmeta>\n"; | 821 | print "</refmeta>\n"; |
822 | print "<refnamediv>\n"; | 822 | print "<refnamediv>\n"; |
@@ -953,7 +953,11 @@ sub output_function_man(%) { | |||
953 | print $args{'function'}." \\- ".$args{'purpose'}."\n"; | 953 | print $args{'function'}." \\- ".$args{'purpose'}."\n"; |
954 | 954 | ||
955 | print ".SH SYNOPSIS\n"; | 955 | print ".SH SYNOPSIS\n"; |
956 | print ".B \"".$args{'functiontype'}."\" ".$args{'function'}."\n"; | 956 | if ($args{'functiontype'} ne "") { |
957 | print ".B \"".$args{'functiontype'}."\" ".$args{'function'}."\n"; | ||
958 | } else { | ||
959 | print ".B \"".$args{'function'}."\n"; | ||
960 | } | ||
957 | $count = 0; | 961 | $count = 0; |
958 | my $parenth = "("; | 962 | my $parenth = "("; |
959 | my $post = ","; | 963 | my $post = ","; |
@@ -1118,13 +1122,19 @@ sub output_intro_man(%) { | |||
1118 | sub output_function_text(%) { | 1122 | sub output_function_text(%) { |
1119 | my %args = %{$_[0]}; | 1123 | my %args = %{$_[0]}; |
1120 | my ($parameter, $section); | 1124 | my ($parameter, $section); |
1125 | my $start; | ||
1121 | 1126 | ||
1122 | print "Name:\n\n"; | 1127 | print "Name:\n\n"; |
1123 | print $args{'function'}." - ".$args{'purpose'}."\n"; | 1128 | print $args{'function'}." - ".$args{'purpose'}."\n"; |
1124 | 1129 | ||
1125 | print "\nSynopsis:\n\n"; | 1130 | print "\nSynopsis:\n\n"; |
1126 | my $start=$args{'functiontype'}." ".$args{'function'}." ("; | 1131 | if ($args{'functiontype'} ne "") { |
1132 | $start = $args{'functiontype'}." ".$args{'function'}." ("; | ||
1133 | } else { | ||
1134 | $start = $args{'function'}." ("; | ||
1135 | } | ||
1127 | print $start; | 1136 | print $start; |
1137 | |||
1128 | my $count = 0; | 1138 | my $count = 0; |
1129 | foreach my $parameter (@{$args{'parameterlist'}}) { | 1139 | foreach my $parameter (@{$args{'parameterlist'}}) { |
1130 | $type = $args{'parametertypes'}{$parameter}; | 1140 | $type = $args{'parametertypes'}{$parameter}; |
@@ -1433,7 +1443,7 @@ sub create_parameterlist($$$) { | |||
1433 | } elsif ($arg =~ m/\(.*\*/) { | 1443 | } elsif ($arg =~ m/\(.*\*/) { |
1434 | # pointer-to-function | 1444 | # pointer-to-function |
1435 | $arg =~ tr/#/,/; | 1445 | $arg =~ tr/#/,/; |
1436 | $arg =~ m/[^\(]+\(\*([^\)]+)\)/; | 1446 | $arg =~ m/[^\(]+\(\*\s*([^\)]+)\)/; |
1437 | $param = $1; | 1447 | $param = $1; |
1438 | $type = $arg; | 1448 | $type = $arg; |
1439 | $type =~ s/([^\(]+\(\*)$param/$1/; | 1449 | $type =~ s/([^\(]+\(\*)$param/$1/; |
@@ -1536,7 +1546,7 @@ sub dump_function($$) { | |||
1536 | $prototype =~ s/^__always_inline +//; | 1546 | $prototype =~ s/^__always_inline +//; |
1537 | $prototype =~ s/^noinline +//; | 1547 | $prototype =~ s/^noinline +//; |
1538 | $prototype =~ s/__devinit +//; | 1548 | $prototype =~ s/__devinit +//; |
1539 | $prototype =~ s/^#define +//; #ak added | 1549 | $prototype =~ s/^#define\s+//; #ak added |
1540 | $prototype =~ s/__attribute__ \(\([a-z,]*\)\)//; | 1550 | $prototype =~ s/__attribute__ \(\([a-z,]*\)\)//; |
1541 | 1551 | ||
1542 | # Yes, this truly is vile. We are looking for: | 1552 | # Yes, this truly is vile. We are looking for: |
@@ -1710,6 +1720,7 @@ sub process_file($) { | |||
1710 | my $file; | 1720 | my $file; |
1711 | my $identifier; | 1721 | my $identifier; |
1712 | my $func; | 1722 | my $func; |
1723 | my $descr; | ||
1713 | my $initial_section_counter = $section_counter; | 1724 | my $initial_section_counter = $section_counter; |
1714 | 1725 | ||
1715 | if (defined($ENV{'SRCTREE'})) { | 1726 | if (defined($ENV{'SRCTREE'})) { |
@@ -1753,7 +1764,12 @@ sub process_file($) { | |||
1753 | 1764 | ||
1754 | $state = 2; | 1765 | $state = 2; |
1755 | if (/-(.*)/) { | 1766 | if (/-(.*)/) { |
1756 | $declaration_purpose = xml_escape($1); | 1767 | # strip leading/trailing/multiple spaces #RDD:T: |
1768 | $descr= $1; | ||
1769 | $descr =~ s/^\s*//; | ||
1770 | $descr =~ s/\s*$//; | ||
1771 | $descr =~ s/\s+/ /; | ||
1772 | $declaration_purpose = xml_escape($descr); | ||
1757 | } else { | 1773 | } else { |
1758 | $declaration_purpose = ""; | 1774 | $declaration_purpose = ""; |
1759 | } | 1775 | } |