summaryrefslogtreecommitdiffstats
path: root/Doc/texinputs/python.sty
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2002-07-02 20:32:50 (GMT)
committerFred Drake <fdrake@acm.org>2002-07-02 20:32:50 (GMT)
commitad74b7d4b3e8bf8a1c2f5d2f7a0b6d8b4ba4e03b (patch)
tree69304c57ad52a08b4f74b5130c771e467929d589 /Doc/texinputs/python.sty
parenta98011c388bea7ac0d8f0ed4b3b712aea0e5739f (diff)
downloadcpython-ad74b7d4b3e8bf8a1c2f5d2f7a0b6d8b4ba4e03b.zip
cpython-ad74b7d4b3e8bf8a1c2f5d2f7a0b6d8b4ba4e03b.tar.gz
cpython-ad74b7d4b3e8bf8a1c2f5d2f7a0b6d8b4ba4e03b.tar.bz2
Abstract the creation of signature lines for callable things; the new
\py@sigline macro will wrap the argument list so it will not extend into the right margin. Substantially based on a contribution from Dave Cole. This addresses one of the comments in SF bug #574742.
Diffstat (limited to 'Doc/texinputs/python.sty')
-rw-r--r--Doc/texinputs/python.sty26
1 files changed, 19 insertions, 7 deletions
diff --git a/Doc/texinputs/python.sty b/Doc/texinputs/python.sty
index 5756213..5eb86c7 100644
--- a/Doc/texinputs/python.sty
+++ b/Doc/texinputs/python.sty
@@ -581,12 +581,23 @@
% something else.
\newcommand{\py@unspecified}{...}
+
+\newlength{\py@argswidth}
+\newcommand{\py@sigparams}[1]{%
+ \parbox[t]{\py@argswidth}{\py@varvars{#1}\code{)}}}
+\newcommand{\py@sigline}[2]{%
+ \settowidth{\py@argswidth}{#1\code{(}}%
+ \addtolength{\py@argswidth}{-2\py@argswidth}%
+ \addtolength{\py@argswidth}{\textwidth}%
+ \item[#1\code{(}\py@sigparams{#2}]}
+
% C functions ------------------------------------------------------------
% \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()}}}]
+ \py@sigline{\code{#1 \bfcode{#2}}}{#3}%
+ \index{#2@{\py@idxcode{#2()}}}
}
\newenvironment{cfuncdesc}[4][\py@badkey]{
\begin{fulllineitems}
@@ -645,7 +656,8 @@
}{\end{fulllineitems}}
% similar to {funcdesc}, but doesn't add to the index
-\newcommand{\funclineni}[2]{\item[\code{\bfcode{#1}(\py@varvars{#2})}]}
+\newcommand{\funclineni}[2]{%
+ \py@sigline{\bfcode{#1}}{#2}}
\newenvironment{funcdescni}[2]{
\begin{fulllineitems}
\funclineni{#1}{#2}
@@ -657,8 +669,8 @@
% Using \renewcommand doesn't work for this, for unknown reasons:
\global\def\py@thisclass{#1}
\begin{fulllineitems}
- \item[\strong{class }\code{\bfcode{#1}(\py@varvars{#2})}%
- \index{#1@{\py@idxcode{#1}} (class in \py@thismodule)}]
+ \py@sigline{\strong{class }\bfcode{#1}}{#2}%
+ \index{#1@{\py@idxcode{#1}} (class in \py@thismodule)}
}{\end{fulllineitems}}
% \begin{classdesc*}{name}
@@ -676,8 +688,8 @@
% Using \renewcommand doesn't work for this, for unknown reasons:
\global\def\py@thisclass{#1}
\begin{fulllineitems}
- \item[\strong{exception }\code{\bfcode{#1}(\py@varvars{#2})}%
- \index{#1@{\py@idxcode{#1}} (exception in \py@thismodule)}]
+ \py@sigline{\strong{exception }\bfcode{#1}}{#2}%
+ \index{#1@{\py@idxcode{#1}} (exception in \py@thismodule)}
}{\end{fulllineitems}}
% There is no corresponding {excclassdesc*} environment. To describe
@@ -709,7 +721,7 @@
% similar to {methoddesc}, but doesn't add to the index
% (never actually uses the optional argument)
\newcommand{\methodlineni}[3][\py@classbadkey]{%
- \item[\code{\bfcode{#2}(\py@varvars{#3})}]}
+ \py@sigline{\bfcode{#2}}{#3}}
\newenvironment{methoddescni}[3][\py@classbadkey]{
\begin{fulllineitems}
\methodlineni{#2}{#3}