kernel-doc: code reorganization
Move 'main' code vs. subroutines around so that they are not so intermixed, for better readability/understanding (relative to Perl). It was messy to follow the primary flow of code execution with the code being mixed. Now the code begins with data initialization, followed by all subroutines, then ends with the main code execution. This is almost totally source code movement, with a few changes as needed for forward declarations. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
d5ba92b795
commit
8484baaa50
@ -155,6 +155,8 @@ use strict;
|
||||
# '@parameter' - name of a parameter
|
||||
# '%CONST' - name of a constant.
|
||||
|
||||
## init lots of data
|
||||
|
||||
my $errors = 0;
|
||||
my $warnings = 0;
|
||||
my $anon_struct_union = 0;
|
||||
@ -218,21 +220,14 @@ my %highlights_list = ( $type_constant, "\$1",
|
||||
$type_param, "\$1" );
|
||||
my $blankline_list = "";
|
||||
|
||||
sub usage {
|
||||
print "Usage: $0 [ -v ] [ -docbook | -html | -text | -man | -list ]\n";
|
||||
print " [ -no-doc-sections ]\n";
|
||||
print " [ -function funcname [ -function funcname ...] ]\n";
|
||||
print " [ -nofunction funcname [ -nofunction funcname ...] ]\n";
|
||||
print " c source file(s) > outputfile\n";
|
||||
print " -v : verbose output, more warnings & other info listed\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
# read arguments
|
||||
if ($#ARGV == -1) {
|
||||
usage();
|
||||
}
|
||||
|
||||
my $kernelversion;
|
||||
my $dohighlight = "";
|
||||
|
||||
my $verbose = 0;
|
||||
my $output_mode = "man";
|
||||
my $no_doc_sections = 0;
|
||||
@ -245,7 +240,7 @@ my $man_date = ('January', 'February', 'March', 'April', 'May', 'June',
|
||||
'November', 'December')[(localtime)[4]] .
|
||||
" " . ((localtime)[5]+1900);
|
||||
|
||||
# Essentially these are globals
|
||||
# Essentially these are globals.
|
||||
# They probably want to be tidied up, made more localised or something.
|
||||
# CAVEAT EMPTOR! Some of the others I localised may not want to be, which
|
||||
# could cause "use of undefined value" or other bugs.
|
||||
@ -353,6 +348,18 @@ while ($ARGV[0] =~ m/^-(.*)/) {
|
||||
}
|
||||
}
|
||||
|
||||
# continue execution near EOF;
|
||||
|
||||
sub usage {
|
||||
print "Usage: $0 [ -v ] [ -docbook | -html | -text | -man | -list ]\n";
|
||||
print " [ -no-doc-sections ]\n";
|
||||
print " [ -function funcname [ -function funcname ...] ]\n";
|
||||
print " [ -nofunction funcname [ -nofunction funcname ...] ]\n";
|
||||
print " c source file(s) > outputfile\n";
|
||||
print " -v : verbose output, more warnings & other info listed\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
# get kernel version from env
|
||||
sub get_kernel_version() {
|
||||
my $version = 'unknown kernel version';
|
||||
@ -362,15 +369,6 @@ sub get_kernel_version() {
|
||||
}
|
||||
return $version;
|
||||
}
|
||||
my $kernelversion = get_kernel_version();
|
||||
|
||||
# generate a sequence of code that will splice in highlighting information
|
||||
# using the s// operator.
|
||||
my $dohighlight = "";
|
||||
foreach my $pattern (keys %highlights) {
|
||||
# print STDERR "scanning pattern:$pattern, highlight:($highlights{$pattern})\n";
|
||||
$dohighlight .= "\$contents =~ s:$pattern:$highlights{$pattern}:gs;\n";
|
||||
}
|
||||
|
||||
##
|
||||
# dumps section contents to arrays/hashes intended for that purpose.
|
||||
@ -1851,34 +1849,6 @@ sub dump_function($$) {
|
||||
});
|
||||
}
|
||||
|
||||
sub process_file($);
|
||||
|
||||
# Read the file that maps relative names to absolute names for
|
||||
# separate source and object directories and for shadow trees.
|
||||
if (open(SOURCE_MAP, "<.tmp_filelist.txt")) {
|
||||
my ($relname, $absname);
|
||||
while(<SOURCE_MAP>) {
|
||||
chop();
|
||||
($relname, $absname) = (split())[0..1];
|
||||
$relname =~ s:^/+::;
|
||||
$source_map{$relname} = $absname;
|
||||
}
|
||||
close(SOURCE_MAP);
|
||||
}
|
||||
|
||||
foreach (@ARGV) {
|
||||
chomp;
|
||||
process_file($_);
|
||||
}
|
||||
if ($verbose && $errors) {
|
||||
print STDERR "$errors errors\n";
|
||||
}
|
||||
if ($verbose && $warnings) {
|
||||
print STDERR "$warnings warnings\n";
|
||||
}
|
||||
|
||||
exit($errors);
|
||||
|
||||
sub reset_state {
|
||||
$function = "";
|
||||
%constants = ();
|
||||
@ -2285,3 +2255,39 @@ sub process_file($) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$kernelversion = get_kernel_version();
|
||||
|
||||
# generate a sequence of code that will splice in highlighting information
|
||||
# using the s// operator.
|
||||
foreach my $pattern (keys %highlights) {
|
||||
# print STDERR "scanning pattern:$pattern, highlight:($highlights{$pattern})\n";
|
||||
$dohighlight .= "\$contents =~ s:$pattern:$highlights{$pattern}:gs;\n";
|
||||
}
|
||||
|
||||
# Read the file that maps relative names to absolute names for
|
||||
# separate source and object directories and for shadow trees.
|
||||
if (open(SOURCE_MAP, "<.tmp_filelist.txt")) {
|
||||
my ($relname, $absname);
|
||||
while(<SOURCE_MAP>) {
|
||||
chop();
|
||||
($relname, $absname) = (split())[0..1];
|
||||
$relname =~ s:^/+::;
|
||||
$source_map{$relname} = $absname;
|
||||
}
|
||||
close(SOURCE_MAP);
|
||||
}
|
||||
|
||||
foreach (@ARGV) {
|
||||
chomp;
|
||||
process_file($_);
|
||||
}
|
||||
if ($verbose && $errors) {
|
||||
print STDERR "$errors errors\n";
|
||||
}
|
||||
if ($verbose && $warnings) {
|
||||
print STDERR "$warnings warnings\n";
|
||||
}
|
||||
|
||||
exit($errors);
|
||||
|
Loading…
Reference in New Issue
Block a user