diff options
Diffstat (limited to 'scripts/kernel-doc')
| -rwxr-xr-x | scripts/kernel-doc | 51 |
1 files changed, 34 insertions, 17 deletions
diff --git a/scripts/kernel-doc b/scripts/kernel-doc index f50a70f550b3..4d928b859845 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: |
| @@ -1570,7 +1580,8 @@ sub dump_function($$) { | |||
| 1570 | $prototype =~ m/^(\w+\s+\w+\s+\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ || | 1580 | $prototype =~ m/^(\w+\s+\w+\s+\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ || |
| 1571 | $prototype =~ m/^(\w+\s+\w+\s+\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ || | 1581 | $prototype =~ m/^(\w+\s+\w+\s+\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ || |
| 1572 | $prototype =~ m/^(\w+\s+\w+\s+\w+\s+\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ || | 1582 | $prototype =~ m/^(\w+\s+\w+\s+\w+\s+\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ || |
| 1573 | $prototype =~ m/^(\w+\s+\w+\s+\w+\s+\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/) { | 1583 | $prototype =~ m/^(\w+\s+\w+\s+\w+\s+\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ || |
| 1584 | $prototype =~ m/^(\w+\s+\w+\s*\*\s*\w+\s*\*\s*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/) { | ||
| 1574 | $return_type = $1; | 1585 | $return_type = $1; |
| 1575 | $declaration_name = $2; | 1586 | $declaration_name = $2; |
| 1576 | my $args = $3; | 1587 | my $args = $3; |
| @@ -1710,6 +1721,7 @@ sub process_file($) { | |||
| 1710 | my $file; | 1721 | my $file; |
| 1711 | my $identifier; | 1722 | my $identifier; |
| 1712 | my $func; | 1723 | my $func; |
| 1724 | my $descr; | ||
| 1713 | my $initial_section_counter = $section_counter; | 1725 | my $initial_section_counter = $section_counter; |
| 1714 | 1726 | ||
| 1715 | if (defined($ENV{'SRCTREE'})) { | 1727 | if (defined($ENV{'SRCTREE'})) { |
| @@ -1753,7 +1765,12 @@ sub process_file($) { | |||
| 1753 | 1765 | ||
| 1754 | $state = 2; | 1766 | $state = 2; |
| 1755 | if (/-(.*)/) { | 1767 | if (/-(.*)/) { |
| 1756 | $declaration_purpose = xml_escape($1); | 1768 | # strip leading/trailing/multiple spaces #RDD:T: |
| 1769 | $descr= $1; | ||
| 1770 | $descr =~ s/^\s*//; | ||
| 1771 | $descr =~ s/\s*$//; | ||
| 1772 | $descr =~ s/\s+/ /; | ||
| 1773 | $declaration_purpose = xml_escape($descr); | ||
| 1757 | } else { | 1774 | } else { |
| 1758 | $declaration_purpose = ""; | 1775 | $declaration_purpose = ""; |
| 1759 | } | 1776 | } |
