Separate out a \cfuncline macro from the cfuncdesc environment.

This matches many other of the *desc environments, and is useful when
multiple functions share a description.
This commit is contained in:
Fred Drake 2002-04-15 20:48:40 +00:00
parent 1251b0eb24
commit 34adb8a8ec
2 changed files with 25 additions and 9 deletions

View File

@ -907,16 +907,29 @@ sub get_refcount{
$TLSTART = '<span class="typelabel">';
$TLEND = '</span>';
sub do_env_cfuncdesc{
local($_) = @_;
my $return_type = next_argument();
my $function_name = next_argument();
my $arg_list = next_argument();
sub cfuncline_helper{
my ($type, $name, $args) = @_;
my $idx = make_str_index_entry(
"<tt class=\"cfunction\">$function_name()</tt>" . get_indexsubitem());
"<tt class=\"cfunction\">$name()</tt>" . get_indexsubitem());
$idx =~ s/ \(.*\)//;
$idx =~ s/\(\)//; # ???? - why both of these?
my $result_rc = get_refcount($function_name, '');
return "$type <b>$idx</b>(<var>$args</var>)";
}
sub do_cmd_cfuncline{
local($_) = @_;
my $type = next_argument();
my $name = next_argument();
my $args = next_argument();
my $siginfo = cfuncline_helper($type, $name, $args);
return "<dt>$siginfo\n<dd>" . $_;
}
sub do_env_cfuncdesc{
local($_) = @_;
my $type = next_argument();
my $name = next_argument();
my $args = next_argument();
my $siginfo = cfuncline_helper($type, $name, $args);
my $result_rc = get_refcount($name, '');
my $rcinfo = '';
if ($result_rc eq '+1') {
$rcinfo = 'New reference';
@ -933,7 +946,7 @@ sub do_env_cfuncdesc{
. "\n <span class=\"value\">$rcinfo.</span>"
. "\n</div>");
}
return "<dl><dt>$return_type <b>$idx</b>(<var>$arg_list</var>)\n<dd>"
return "<dl><dt>$siginfo\n<dd>"
. $rcinfo
. $_
. '</dl>';

View File

@ -585,9 +585,12 @@
% \begin{cfuncdesc}[refcount]{type}{name}{arglist}
% Note that the [refcount] slot should only be filled in by
% tools/anno-api.py; it pulls the value from the refcounts database.
\newcommand{\cfuncline}[3]{
\item[\code{#1 \bfcode{#2}(\py@varvars{#3})}\index{#2@{\py@idxcode{#2()}}}]
}
\newenvironment{cfuncdesc}[4][\py@badkey]{
\begin{fulllineitems}
\item[\code{#2 \bfcode{#3}(\py@varvars{#4})}\index{#3@{\py@idxcode{#3()}}}]
\cfuncline{#2}{#3}{#4}
\ifx#1\@undefined\else%
\emph{Return value: \textbf{#1}.}\\
\fi