scripts/kernel-doc: separate out function signature

Format the entire function signature and place it in a separate variable;
this both makes it easier to understand what these lines of code are doing
and will allow us to simplify the code further in the following patch.

No functional change.

Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/20240215134828.1277109-4-vegard.nossum@oracle.com
This commit is contained in:
Vegard Nossum 2024-02-15 14:48:26 +01:00 committed by Jonathan Corbet
parent e8ebb853eb
commit d3c55a710f
1 changed files with 28 additions and 21 deletions

View File

@ -822,6 +822,31 @@ sub output_function_rst(%) {
my $oldprefix = $lineprefix;
my $is_macro = 0;
my $signature = "";
if ($args{'functiontype'} ne "") {
$signature = $args{'functiontype'} . " " . $args{'function'} . " (";
} else {
$signature = $args{'function'} . " (";
}
my $count = 0;
foreach my $parameter (@{$args{'parameterlist'}}) {
if ($count ne 0) {
$signature .= ", ";
}
$count++;
$type = $args{'parametertypes'}{$parameter};
if ($type =~ m/$function_pointer/) {
# pointer-to-function
$signature .= $1 . $parameter . ") (" . $2 . ")";
} else {
$signature .= $type;
}
}
$signature .= ")";
if ($sphinx_major < 3) {
if ($args{'typedef'}) {
print ".. c:type:: ". $args{'function'} . "\n\n";
@ -852,31 +877,13 @@ sub output_function_rst(%) {
print "``" if ($is_macro);
}
}
if ($args{'functiontype'} ne "") {
print $args{'functiontype'} . " " . $args{'function'} . " (";
} else {
print $args{'function'} . " (";
}
my $count = 0;
foreach my $parameter (@{$args{'parameterlist'}}) {
if ($count ne 0) {
print ", ";
}
$count++;
$type = $args{'parametertypes'}{$parameter};
print $signature;
if ($type =~ m/$function_pointer/) {
# pointer-to-function
print $1 . $parameter . ") (" . $2 . ")";
} else {
print $type;
}
}
if ($is_macro) {
print ")``\n\n";
print "``\n\n";
} else {
print ")\n\n";
print "\n\n";
}
if (!$args{'typedef'}) {
print_lineno($declaration_start_line);