diff options
author | Fred Drake <fdrake@acm.org> | 2002-07-02 20:32:50 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2002-07-02 20:32:50 (GMT) |
commit | ad74b7d4b3e8bf8a1c2f5d2f7a0b6d8b4ba4e03b (patch) | |
tree | 69304c57ad52a08b4f74b5130c771e467929d589 /Doc/texinputs/python.sty | |
parent | a98011c388bea7ac0d8f0ed4b3b712aea0e5739f (diff) | |
download | cpython-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.sty | 26 |
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} |