diff options
| author | Randy Dunlap <randy.dunlap@oracle.com> | 2007-05-08 03:29:51 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-08 14:15:10 -0400 |
| commit | 3eb014a103701bedfaa11bc321f470e918c71ff7 (patch) | |
| tree | 7b8c205b80d0f63874849ed4c27a0df49717c27c /scripts/kernel-doc | |
| parent | 3361c7bebbf207f57f3dd1282cd87e1e37c082ac (diff) | |
kernel-doc: html mode struct highlights
Johannes Berg reported that struct names are not highlighted
(bold, italic, etc.) in html kernel-doc output. (Also not in
text-mode output, but I don't see that changing.)
This patch adds the following:
- highlight struct names in html output mode
- highlight environment var. names in html output mode
- indent struct fields in the original struct layout
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'scripts/kernel-doc')
| -rwxr-xr-x | scripts/kernel-doc | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/scripts/kernel-doc b/scripts/kernel-doc index c47eb31d604c..a3e23b10ae97 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc | |||
| @@ -159,7 +159,8 @@ my $warnings = 0; | |||
| 159 | my $type_constant = '\%([-_\w]+)'; | 159 | my $type_constant = '\%([-_\w]+)'; |
| 160 | my $type_func = '(\w+)\(\)'; | 160 | my $type_func = '(\w+)\(\)'; |
| 161 | my $type_param = '\@(\w+)'; | 161 | my $type_param = '\@(\w+)'; |
| 162 | my $type_struct = '\&((struct\s*)?[_\w]+)'; | 162 | my $type_struct = '\&((struct\s*)*[_\w]+)'; |
| 163 | my $type_struct_xml = '\\\amp;((struct\s*)*[_\w]+)'; | ||
| 163 | my $type_env = '(\$\w+)'; | 164 | my $type_env = '(\$\w+)'; |
| 164 | 165 | ||
| 165 | # Output conversion substitutions. | 166 | # Output conversion substitutions. |
| @@ -168,7 +169,8 @@ my $type_env = '(\$\w+)'; | |||
| 168 | # these work fairly well | 169 | # these work fairly well |
| 169 | my %highlights_html = ( $type_constant, "<i>\$1</i>", | 170 | my %highlights_html = ( $type_constant, "<i>\$1</i>", |
| 170 | $type_func, "<b>\$1</b>", | 171 | $type_func, "<b>\$1</b>", |
| 171 | $type_struct, "<i>\$1</i>", | 172 | $type_struct_xml, "<i>\$1</i>", |
| 173 | $type_env, "<b><i>\$1</i></b>", | ||
| 172 | $type_param, "<tt><b>\$1</b></tt>" ); | 174 | $type_param, "<tt><b>\$1</b></tt>" ); |
| 173 | my $blankline_html = "<p>"; | 175 | my $blankline_html = "<p>"; |
| 174 | 176 | ||
| @@ -331,7 +333,7 @@ while ($ARGV[0] =~ m/^-(.*)/) { | |||
| 331 | # using the s// operator. | 333 | # using the s// operator. |
| 332 | my $dohighlight = ""; | 334 | my $dohighlight = ""; |
| 333 | foreach my $pattern (keys %highlights) { | 335 | foreach my $pattern (keys %highlights) { |
| 334 | # print "scanning pattern $pattern ($highlights{$pattern})\n"; | 336 | # print STDERR "scanning pattern:$pattern, highlight:($highlights{$pattern})\n"; |
| 335 | $dohighlight .= "\$contents =~ s:$pattern:$highlights{$pattern}:gs;\n"; | 337 | $dohighlight .= "\$contents =~ s:$pattern:$highlights{$pattern}:gs;\n"; |
| 336 | } | 338 | } |
| 337 | 339 | ||
| @@ -378,8 +380,14 @@ sub output_highlight { | |||
| 378 | # confess "output_highlight got called with no args?\n"; | 380 | # confess "output_highlight got called with no args?\n"; |
| 379 | # } | 381 | # } |
| 380 | 382 | ||
| 383 | # print STDERR "contents b4:$contents\n"; | ||
| 381 | eval $dohighlight; | 384 | eval $dohighlight; |
| 382 | die $@ if $@; | 385 | die $@ if $@; |
| 386 | if ($output_mode eq "html") { | ||
| 387 | $contents =~ s/\\\\//; | ||
| 388 | } | ||
| 389 | # print STDERR "contents af:$contents\n"; | ||
| 390 | |||
| 383 | foreach $line (split "\n", $contents) { | 391 | foreach $line (split "\n", $contents) { |
| 384 | if ($line eq ""){ | 392 | if ($line eq ""){ |
| 385 | print $lineprefix, $blankline; | 393 | print $lineprefix, $blankline; |
| @@ -466,11 +474,12 @@ sub output_struct_html(%) { | |||
| 466 | $type = $args{'parametertypes'}{$parameter}; | 474 | $type = $args{'parametertypes'}{$parameter}; |
| 467 | if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) { | 475 | if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) { |
| 468 | # pointer-to-function | 476 | # pointer-to-function |
| 469 | print " <i>$1</i><b>$parameter</b>) <i>($2)</i>;<br>\n"; | 477 | print " <i>$1</i><b>$parameter</b>) <i>($2)</i>;<br>\n"; |
| 470 | } elsif ($type =~ m/^(.*?)\s*(:.*)/) { | 478 | } elsif ($type =~ m/^(.*?)\s*(:.*)/) { |
| 471 | print " <i>$1</i> <b>$parameter</b>$2;<br>\n"; | 479 | # bitfield |
| 480 | print " <i>$1</i> <b>$parameter</b>$2;<br>\n"; | ||
| 472 | } else { | 481 | } else { |
| 473 | print " <i>$type</i> <b>$parameter</b>;<br>\n"; | 482 | print " <i>$type</i> <b>$parameter</b>;<br>\n"; |
| 474 | } | 483 | } |
| 475 | } | 484 | } |
| 476 | print "};<br>\n"; | 485 | print "};<br>\n"; |
