Kaydet (Commit) ba82878a authored tarafından Fred Drake's avatar Fred Drake

Merged changes from the 1.5.2p2 release.

üst a22b576d
\author{Guido van Rossum}
\authoraddress{
Corporation for National Research Initiatives (CNRI) \\
1895 Preston White Drive, Reston, Va 20191, USA \\
Corporation for National Research Initiatives \\
1895 Preston White Drive, Reston, VA 20191, USA \\
E-mail: \email{guido@python.org}
}
......
......@@ -18,7 +18,7 @@
\let\op=\py@ltx@optparam%
\let\p=\py@ltx@param%
#2}}]
%\item[\code{\e end\{{\bfseries #1}\}}]
\item[\code{\e end\{{\bfseries #1}\}}]
\index{#1 environment@\idxcode{#1} environment}
\index{environments!#1@\idxcode{#1}}
}{\end{fulllineitems}}
......
......@@ -277,13 +277,25 @@
\typeout{*** MACRO exmodindex IS OBSOLETE -- USE declaremodule INSTEAD!}}
% Additional string for an index entry
\newcommand{\index@subitem}{}
\newcommand{\setindexsubitem}[1]{\renewcommand{\index@subitem}{#1}}
\newcommand{\ttindex}[1]{\index{#1@{\py@idxcode{#1}} \index@subitem}}
\newif\ifpy@usingsubitem\py@usingsubitemfalse
\newcommand{\py@indexsubitem}{}
\newcommand{\setindexsubitem}[1]{\renewcommand{\py@indexsubitem}{ #1}%
\py@usingsubitemtrue}
\newcommand{\ttindex}[1]{%
\ifpy@usingsubitem
\index{#1@{\py@idxcode{#1}}\py@indexsubitem}%
\else%
\index{#1@{\py@idxcode{#1}}}%
\fi%
}
\newcommand{\withsubitem}[2]{%
\begingroup%
\def\index@subitem{#1}#2%
\ifpy@usingsubitem%
\def\index@subitem{#1}#2%
\else%
\def\index@subitem{#1}#2%
\py@usingsubitemfalse%
\fi
\endgroup%
}
......@@ -421,6 +433,7 @@
\newcommand{\py@reset}{
\py@usingsubitemfalse
\py@ProcessModSynopsis
\renewcommand{\py@thisclass}{}
\renewcommand{\py@thismodule}{}
......@@ -510,14 +523,30 @@
%
% \begin{funcdesc}{myfunc}{\optional{parm1\optional{, parm2}}}
%
\let\py@badkey=\@undefined
\newcommand{\optional}[1]{%
{\textnormal{\Large[}}{#1}\hspace{0.5mm}{\textnormal{\Large]}}}
% This can be used when a function or method accepts an varying number
% of arguments, such as by using the *args syntax in the parameter list.
\newcommand{\py@moreargs}{...}
% This can be used when you don't want to document the parameters to a
% function or method, but simply state that it's an alias for
% something else.
\newcommand{\py@unspecified}{...}
% C functions ------------------------------------------------------------
% \begin{cfuncdesc}{type}{name}{arglist}
\newenvironment{cfuncdesc}[3]{
% \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.
\newenvironment{cfuncdesc}[4][\py@badkey]{
\begin{fulllineitems}
\item[\code{#1 \bfcode{#2}(\py@varvars{#3})}\index{#2@{\py@idxcode{#2()}}}]
\item[\code{#2 \bfcode{#3}(\py@varvars{#4})}\index{#3@{\py@idxcode{#3()}}}]
\ifx#1\@undefined\else%
\emph{Return value: \textbf{#1 reference}.}\\
\fi
}{\end{fulllineitems}}
% C variables ------------------------------------------------------------
......@@ -528,10 +557,23 @@
}{\end{fulllineitems}}
% C data types -----------------------------------------------------------
% \begin{ctypedesc}{typedef name}
\newenvironment{ctypedesc}[1]{
% \begin{ctypedesc}[index name]{typedef name}
\newenvironment{ctypedesc}[2][\py@badkey]{
\begin{fulllineitems}
\item[\bfcode{#1}\ttindex{#1}]
\item[\bfcode{#2}%
\ifx#1\@undefined%
\withsubitem{(C type)}{\ttindex{#2}}%
\else%
\withsubitem{(C type)}{\ttindex{#1}}%
\fi]
}{\end{fulllineitems}}
% Funky macros -----------------------------------------------------------
% \begin{csimplemacro}{name}
% -- "simple" because it has no args; NOT for constant definitions!
\newenvironment{csimplemacrodesc}[1]{
\begin{fulllineitems}
\item[\bfcode{#1}\withsubitem{(macro)}{\ttindex{#1}}]
}{\end{fulllineitems}}
% simple functions (not methods) -----------------------------------------
......@@ -708,7 +750,11 @@
\newcommand{\email}[1]{{\small\textsf{#1}}}
\newcommand{\newsgroup}[1]{{\small\textsf{#1}}}
\newcommand{\py@varvars}[1]{{\def\,{\/{\char`\,}}\var{#1}}}
%\newcommand{\py@varvars}[1]{{\def\,{\/{\char`\,}}\var{#1}}}
\newcommand{\py@varvars}[1]{%
{\let\unspecified=\py@unspecified%
\let\moreargs=\py@moreargs%
\def\,{\/{\char`\,}}\var{#1}}}
% let's see if this breaks anything now; we may be able to simplify...
\renewcommand{\py@varvars}[1]{\var{#1}}
......
......@@ -11,6 +11,8 @@ import sys
class Node:
__rmjunk = re.compile("<#\d+#>")
continuation = 0
def __init__(self, link, str, seqno):
self.links = [link]
self.seqno = seqno
......@@ -77,7 +79,7 @@ def split_entry(str, which):
return stuff
_rmtt = re.compile(r"(.*)<tt(?: class=[a-z0-9]+)?>(.*)</tt>(.*)$",
_rmtt = re.compile(r"""(.*)<tt(?: class=['"][a-z0-9]+["'])?>(.*)</tt>(.*)$""",
re.IGNORECASE)
_rmparens = re.compile(r"\(\)")
......@@ -175,6 +177,22 @@ def split_columns(nodes, columns=1):
start = i * colheight
end = start + colheight
cols.append(nodes[start:end])
#
# If items continue across columns, make sure they are marked
# as continuations so the user knows to look at the previous column.
#
for i in range(len(cols) - 1):
try:
prev = cols[i][-1]
next = cols[i + 1][0]
except IndexError:
return cols
else:
n = min(len(prev.key), len(next.key))
for j in range(n):
if prev.key[j] != next.key[j]:
break
next.continuation = j + 1
return cols
......@@ -204,8 +222,12 @@ def format_column(nodes):
for i in range(count, len(current) - 1):
term = node.text[i]
level = level + 1
append("\n<dt>%s\n<dd>\n%s<dl compact>"
% (term, level * DL_LEVEL_INDENT))
if node.continuation > i:
extra = " (continued)"
else:
extra = ""
append("\n<dt>%s%s\n<dd>\n%s<dl compact>"
% (term, extra, level * DL_LEVEL_INDENT))
append("\n%s<dt>%s%s</a>"
% (level * DL_LEVEL_INDENT, node.links[0], node.text[-1]))
for link in node.links[1:]:
......
......@@ -43,13 +43,26 @@ class PageCounter:
PREFIX = """\
This is the PostScript version of the standard Python documentation.
If you plan to print this, be aware that some of the documents are
long. The following manuals are included:
long. It is formatted for printing on two-sided paper; if you do plan
to print this, *please* print two-sided if you have a printer capable
of it! To locate published copies of the larger manuals, or other
Python reference material, consult the PSA Online Bookstore at:
http://www.python.org/psa/bookstore/
The following manuals are included:
"""
SUFFIX = """\
If you have any questions, comments, or suggestions regarding these
documents, please send them via email to python-docs@python.org.
If you would like to support the development and maintenance of
documentation for Python, please consider joining the Python Software
Activity (PSA; see http://www.python.org/psa/), or urging your
organization to join the PSA or the Python Consortium (see
http://www.python.org/consortium/).
"""
def count_pages(filename):
......
......@@ -34,7 +34,7 @@ fi
part=$1; shift 1
TEXINPUTS=$srcdir/$part:$TEXINPUTS
TEXINPUTS=.:$srcdir/$part:$TEXINPUTS
export TEXINPUTS
echo $srcdir'/tools/newind.py >'$part'.ind'
......
......@@ -330,6 +330,8 @@ class Job:
if texfile[:2] == os.curdir + os.sep:
texfile = texfile[2:]
# build the command line and run LaTeX2HTML:
if not os.path.isdir(builddir):
os.mkdir(builddir)
args = [LATEX2HTML_BINARY,
"-init_file", L2H_INIT_FILE,
"-init_file", self.l2h_aux_init_file,
......
......@@ -27,12 +27,16 @@ export TEXINPUTS
if [ -d $part ] ; then
rm -f $part/*.html
else
mkdir $part
fi
echo "latex2html -init_file $srcdir/perl/l2hinit.perl -dir $part" \
"${1:+$@} $srcdir/$part/$part.tex"
latex2html \
-no_auto_link \
-up_url '../index.html' \
-up_title 'Documentation Index' \
-init_file $srcdir/perl/l2hinit.perl \
-address '<hr>See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.' \
-dir $part \
......
......@@ -47,8 +47,9 @@ def error(msg, rc=2):
_rx = re.compile(
'<dt><a href="(module-.*\.html)">'
'([a-zA-Z_][a-zA-Z0-9_.]*(\s*<em>\(.*\)</em>)?)</a>')
"<dt><a href='(module-.*\.html)#l2h-\d+'><tt class='module'>"
"([a-zA-Z_][a-zA-Z0-9_.]*</tt>(\s*<em>"
"\(<span class='platform'>.*</span>\)</em>)?)</a>")
def main():
outputfile = "-"
......
......@@ -105,7 +105,9 @@ def main():
run("tar cf - Python-%s | gzip -9 >%s.tgz"
% (release, archive))
elif format == "zip":
run("zip -r9 %s.zip Python-%s"
if os.path.exists(archive + ".zip"):
os.unlink(archive + ".zip")
run("zip -q -r9 %s.zip Python-%s"
% (archive, release))
# clean up the work area:
......
......@@ -32,16 +32,16 @@ foreach $label (keys %internal_labels) {
while (<>) {
# don't want to do one s/// per line per node
# so look for lines with hrefs, then do s/// on nodes present
if (/(HREF|href)=\"([^\#\"]*)html[\#\"]/) {
@parts = split(/(HREF|href)\=\"/);
if (/(HREF|href)=[\"\']([^\#\"\']*)html[\#\"\']/) {
@parts = split(/(HREF|href)\=[\"\']/);
shift @parts;
for $node (@parts) {
$node =~ s/[\#\"].*$//g;
$node =~ s/[\#\"\'].*$//g;
chop($node);
if (defined($nodes{$node})) {
$label = $nodes{$node};
if (s/(HREF|href)=\"$node([\#\"])/$1=\"$label.html$2/g) {
s/(HREF|href)=\"$label.html#(l2h-)?SECTION\d+/$1=\"$label.html/g;
if (s/(HREF|href)=([\"\'])$node([\#\"\'])/href=$2$label.html$3/g) {
s/(HREF|href)=([\"\'])$label.html/href=$2$label.html/g;
$newnames{$node} = "$label.html";
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment