Discussion:
[Python-3000-checkins] r67461 - in python/branches/py3k: Doc/c-api/arg.rst Doc/includes/mp_benchmarks.py Doc/includes/mp_distributing.py Doc/includes/mp_newtype.py Doc/includes/mp_pool.py Doc/includes/mp_synchronize.py Doc/includes/mp_webserver.py Doc/includes/mp_workers.py Doc/library/bdb.rst Doc/library/collections.rst Doc/library/ctypes.rst Doc/library/os.rst Doc/library/sqlite3.rst Doc/tools/sphinxext/pyspecific.py Lib/multiprocessing/__init__.py Lib/optparse.py Lib/test/test_parser.py Modules/_multiprocessing/semaphore.c Modules/parsermodule.c Objects/unicodeobject.c PC/msvcrtmodule.c Tools/scripts/svneol.py configure.in
benjamin.peterson
2008-11-30 22:46:24 UTC
Permalink
Author: benjamin.peterson
Date: Sun Nov 30 23:46:23 2008
New Revision: 67461

Log:
Merged revisions 67348,67355,67359,67362,67364-67365,67367-67368,67398,67423-67424,67432,67440-67441,67444-67445,67454-67455,67457-67458 via svnmerge from
svn+ssh://pythondev at svn.python.org/python/trunk

........
r67348 | benjamin.peterson | 2008-11-22 20:09:41 -0600 (Sat, 22 Nov 2008) | 1 line

raise a better error
........
r67355 | georg.brandl | 2008-11-23 13:17:25 -0600 (Sun, 23 Nov 2008) | 2 lines

#4392: fix parameter name.
........
r67359 | georg.brandl | 2008-11-23 15:57:30 -0600 (Sun, 23 Nov 2008) | 2 lines

#4399: fix typo.
........
r67362 | gregory.p.smith | 2008-11-23 18:41:43 -0600 (Sun, 23 Nov 2008) | 2 lines

Document PY_SSIZE_T_CLEAN for PyArg_ParseTuple.
........
r67364 | benjamin.peterson | 2008-11-23 19:16:29 -0600 (Sun, 23 Nov 2008) | 2 lines

replace reference to debugger-hooks
........
r67365 | benjamin.peterson | 2008-11-23 22:09:03 -0600 (Sun, 23 Nov 2008) | 1 line

#4396 make the parser module correctly validate the with syntax
........
r67367 | georg.brandl | 2008-11-24 10:16:07 -0600 (Mon, 24 Nov 2008) | 2 lines

Fix typo.
........
r67368 | georg.brandl | 2008-11-24 13:56:47 -0600 (Mon, 24 Nov 2008) | 2 lines

#4404: make clear what "path" is.
........
r67398 | benjamin.peterson | 2008-11-26 11:39:17 -0600 (Wed, 26 Nov 2008) | 1 line

fix typo in sqlite3 docs
........
r67423 | jesse.noller | 2008-11-28 12:59:35 -0600 (Fri, 28 Nov 2008) | 2 lines

issue4238: bsd support for cpu_count
........
r67424 | christian.heimes | 2008-11-28 13:33:33 -0600 (Fri, 28 Nov 2008) | 1 line

Retain copyright of processing examples. This was requested by a Debian maintainer during packaging of the multiprocessing package for 2.4/2.5
........
r67432 | benjamin.peterson | 2008-11-28 17:18:46 -0600 (Fri, 28 Nov 2008) | 1 line

SVN format 9 is the same it seems
........
r67440 | jeremy.hylton | 2008-11-28 17:42:59 -0600 (Fri, 28 Nov 2008) | 4 lines

Move definition int sval into branch of ifdef where it is used.

Otherwise, you get a warning about an undefined variable.
........
r67441 | jeremy.hylton | 2008-11-28 18:09:16 -0600 (Fri, 28 Nov 2008) | 2 lines

Reflow long lines.
........
r67444 | amaury.forgeotdarc | 2008-11-28 20:03:32 -0600 (Fri, 28 Nov 2008) | 2 lines

Fix a small typo in docstring
........
r67445 | benjamin.peterson | 2008-11-29 21:07:33 -0600 (Sat, 29 Nov 2008) | 1 line

StringIO.close() stops you from using the buffer, too
........
r67454 | benjamin.peterson | 2008-11-30 08:43:23 -0600 (Sun, 30 Nov 2008) | 1 line

note the version that works
........
r67455 | martin.v.loewis | 2008-11-30 13:28:27 -0600 (Sun, 30 Nov 2008) | 1 line

Issue #4365: Add crtassem.h constants to the msvcrt module.
........
r67457 | christian.heimes | 2008-11-30 15:16:28 -0600 (Sun, 30 Nov 2008) | 1 line

w# requires Py_ssize_t
........
r67458 | benjamin.peterson | 2008-11-30 15:46:16 -0600 (Sun, 30 Nov 2008) | 1 line

fix pyspecific extensions that were broken by Sphinx's grand renaming
........


Modified:
python/branches/py3k/ (props changed)
python/branches/py3k/Doc/c-api/arg.rst
python/branches/py3k/Doc/includes/mp_benchmarks.py
python/branches/py3k/Doc/includes/mp_distributing.py
python/branches/py3k/Doc/includes/mp_newtype.py
python/branches/py3k/Doc/includes/mp_pool.py
python/branches/py3k/Doc/includes/mp_synchronize.py
python/branches/py3k/Doc/includes/mp_webserver.py
python/branches/py3k/Doc/includes/mp_workers.py
python/branches/py3k/Doc/library/bdb.rst
python/branches/py3k/Doc/library/collections.rst
python/branches/py3k/Doc/library/ctypes.rst
python/branches/py3k/Doc/library/os.rst
python/branches/py3k/Doc/library/sqlite3.rst
python/branches/py3k/Doc/tools/sphinxext/pyspecific.py
python/branches/py3k/Lib/multiprocessing/__init__.py
python/branches/py3k/Lib/optparse.py
python/branches/py3k/Lib/test/test_parser.py
python/branches/py3k/Modules/_multiprocessing/semaphore.c
python/branches/py3k/Modules/parsermodule.c
python/branches/py3k/Objects/unicodeobject.c
python/branches/py3k/PC/msvcrtmodule.c
python/branches/py3k/Tools/scripts/svneol.py
python/branches/py3k/configure.in

Modified: python/branches/py3k/Doc/c-api/arg.rst
==============================================================================
--- python/branches/py3k/Doc/c-api/arg.rst (original)
+++ python/branches/py3k/Doc/c-api/arg.rst Sun Nov 30 23:46:23 2008
@@ -32,6 +32,11 @@
converted to C strings using the default encoding. If this conversion fails, a
:exc:`UnicodeError` is raised.

+ Starting with Python 2.5 the type of the length argument can be
+ controlled by defining the macro :cmacro:`PY_SSIZE_T_CLEAN` before
+ including :file:`Python.h`. If the macro is defined, length is a
+ :ctype:`Py_ssize_t` rather than an int.
+
``s*`` (string, Unicode, or any buffer compatible object) [Py_buffer \*]
This is similar to ``s``, but the code fills a :ctype:`Py_buffer` structure
provided by the caller. In this case the Python string may contain embedded
@@ -43,17 +48,20 @@
has processed the data.

``s#`` (string, Unicode or any read buffer compatible object) [const char \*, int or :ctype:`Py_ssize_t`]
- This variant on ``s*`` stores into two C variables, the first one a pointer
- to a character string, the second one its length. All other read-buffer
- compatible objects pass back a reference to the raw internal data
- representation. Since this format doesn't allow writable buffer compatible
- objects like byte arrays, ``s*`` is to be preferred. The type of
- the length argument (int or :ctype:`Py_ssize_t`) is controlled by
+ This variant on ``s`` stores into two C variables, the first one a pointer to
+ a character string, the second one its length. In this case the Python
+ string may contain embedded null bytes. Unicode objects pass back a pointer
+ to the default encoded string version of the object if such a conversion is
+ possible. All other read-buffer compatible objects pass back a reference to
+ the raw internal data representation. Since this format doesn't allow writable buffer compatible objects like byte
+ arrays, ``s*`` is to be preferred.
+
+ The type of the length argument (int or :ctype:`Py_ssize_t`) is controlled by
defining the macro :cmacro:`PY_SSIZE_T_CLEAN` before including
:file:`Python.h`. If the macro was defined, length is a :ctype:`Py_ssize_t`
- rather than an int. This behavior will change in a future Python
- version to only support :ctype:`Py_ssize_t` and drop int support.
- It is best to always define :cmacro:`PY_SSIZE_T_CLEAN`.
+ rather than an int. This behavior will change in a future Python version to
+ only support :ctype:`Py_ssize_t` and drop int support. It is best to always
+ define :cmacro:`PY_SSIZE_T_CLEAN`.

``y`` (bytes object) [const char \*]
This variant on ``s`` converts a Python bytes or bytearray object to a C

Modified: python/branches/py3k/Doc/includes/mp_benchmarks.py
==============================================================================
--- python/branches/py3k/Doc/includes/mp_benchmarks.py (original)
+++ python/branches/py3k/Doc/includes/mp_benchmarks.py Sun Nov 30 23:46:23 2008
@@ -1,6 +1,9 @@
#
# Simple benchmarks for the multiprocessing package
#
+# Copyright (c) 2006-2008, R Oudkerk
+# All rights reserved.
+#

import time, sys, multiprocessing, threading, queue, gc


Modified: python/branches/py3k/Doc/includes/mp_distributing.py
==============================================================================
--- python/branches/py3k/Doc/includes/mp_distributing.py (original)
+++ python/branches/py3k/Doc/includes/mp_distributing.py Sun Nov 30 23:46:23 2008
@@ -3,6 +3,9 @@
#
# Depends on `multiprocessing` package -- tested with `processing-0.60`
#
+# Copyright (c) 2006-2008, R Oudkerk
+# All rights reserved.
+#

__all__ = ['Cluster', 'Host', 'get_logger', 'current_process']


Modified: python/branches/py3k/Doc/includes/mp_newtype.py
==============================================================================
--- python/branches/py3k/Doc/includes/mp_newtype.py (original)
+++ python/branches/py3k/Doc/includes/mp_newtype.py Sun Nov 30 23:46:23 2008
@@ -2,6 +2,9 @@
# This module shows how to use arbitrary callables with a subclass of
# `BaseManager`.
#
+# Copyright (c) 2006-2008, R Oudkerk
+# All rights reserved.
+#

from multiprocessing import freeze_support
from multiprocessing.managers import BaseManager, BaseProxy

Modified: python/branches/py3k/Doc/includes/mp_pool.py
==============================================================================
--- python/branches/py3k/Doc/includes/mp_pool.py (original)
+++ python/branches/py3k/Doc/includes/mp_pool.py Sun Nov 30 23:46:23 2008
@@ -1,6 +1,9 @@
#
# A test of `multiprocessing.Pool` class
#
+# Copyright (c) 2006-2008, R Oudkerk
+# All rights reserved.
+#

import multiprocessing
import time

Modified: python/branches/py3k/Doc/includes/mp_synchronize.py
==============================================================================
--- python/branches/py3k/Doc/includes/mp_synchronize.py (original)
+++ python/branches/py3k/Doc/includes/mp_synchronize.py Sun Nov 30 23:46:23 2008
@@ -1,6 +1,9 @@
#
# A test file for the `multiprocessing` package
#
+# Copyright (c) 2006-2008, R Oudkerk
+# All rights reserved.
+#

import time, sys, random
from queue import Empty

Modified: python/branches/py3k/Doc/includes/mp_webserver.py
==============================================================================
--- python/branches/py3k/Doc/includes/mp_webserver.py (original)
+++ python/branches/py3k/Doc/includes/mp_webserver.py Sun Nov 30 23:46:23 2008
@@ -8,6 +8,9 @@
# Not sure if we should synchronize access to `socket.accept()` method by
# using a process-shared lock -- does not seem to be necessary.
#
+# Copyright (c) 2006-2008, R Oudkerk
+# All rights reserved.
+#

import os
import sys

Modified: python/branches/py3k/Doc/includes/mp_workers.py
==============================================================================
--- python/branches/py3k/Doc/includes/mp_workers.py (original)
+++ python/branches/py3k/Doc/includes/mp_workers.py Sun Nov 30 23:46:23 2008
@@ -7,6 +7,9 @@
# in the original order then consider using `Pool.map()` or
# `Pool.imap()` (which will save on the amount of code needed anyway).
#
+# Copyright (c) 2006-2008, R Oudkerk
+# All rights reserved.
+#

import time
import random

Modified: python/branches/py3k/Doc/library/bdb.rst
==============================================================================
--- python/branches/py3k/Doc/library/bdb.rst (original)
+++ python/branches/py3k/Doc/library/bdb.rst Sun Nov 30 23:46:23 2008
@@ -107,8 +107,9 @@

The *arg* parameter depends on the previous event.

- For more information on trace functions, see :ref:`debugger-hooks`. For
- more information on code and frame objects, refer to :ref:`types`.
+ See the documentation for :func:`sys.settrace` for more information on the
+ trace function. For more information on code and frame objects, refer to
+ :ref:`types`.

.. method:: dispatch_line(frame)


Modified: python/branches/py3k/Doc/library/collections.rst
==============================================================================
--- python/branches/py3k/Doc/library/collections.rst (original)
+++ python/branches/py3k/Doc/library/collections.rst Sun Nov 30 23:46:23 2008
@@ -48,7 +48,7 @@
:class:`Iterable`, and ``__len__`` ``index``, and ``count``
:class:`Container`

-:class:`MutableSequnce` :class:`Sequence` ``__getitem__`` Inherited Sequence methods and
+:class:`MutableSequence` :class:`Sequence` ``__getitem__`` Inherited Sequence methods and
``__delitem__``, ``append``, ``reverse``, ``extend``, ``pop``,
``insert``, ``remove``, and ``__iadd__``
and ``__len__``
@@ -466,16 +466,16 @@
self-documenting code. They can be used wherever regular tuples are used, and
they add the ability to access fields by name instead of position index.

-.. function:: namedtuple(typename, fieldnames, [verbose])
+.. function:: namedtuple(typename, field_names, [verbose])

Returns a new tuple subclass named *typename*. The new subclass is used to
create tuple-like objects that have fields accessible by attribute lookup as
well as being indexable and iterable. Instances of the subclass also have a
- helpful docstring (with typename and fieldnames) and a helpful :meth:`__repr__`
+ helpful docstring (with typename and field_names) and a helpful :meth:`__repr__`
method which lists the tuple contents in a ``name=value`` format.

- The *fieldnames* are a single string with each fieldname separated by whitespace
- and/or commas, for example ``'x y'`` or ``'x, y'``. Alternatively, *fieldnames*
+ The *field_names* are a single string with each fieldname separated by whitespace
+ and/or commas, for example ``'x y'`` or ``'x, y'``. Alternatively, *field_names*
can be a sequence of strings such as ``['x', 'y']``.

Any valid Python identifier may be used for a fieldname except for names

Modified: python/branches/py3k/Doc/library/ctypes.rst
==============================================================================
--- python/branches/py3k/Doc/library/ctypes.rst (original)
+++ python/branches/py3k/Doc/library/ctypes.rst Sun Nov 30 23:46:23 2008
@@ -1368,7 +1368,7 @@

All these classes can be instantiated by calling them with at least one
argument, the pathname of the shared library. If you have an existing handle to
-an already loaded shard library, it can be passed as the ``handle`` named
+an already loaded shared library, it can be passed as the ``handle`` named
parameter, otherwise the underlying platforms ``dlopen`` or :meth:`LoadLibrary`
function is used to load the library into the process, and to get a handle to
it.

Modified: python/branches/py3k/Doc/library/os.rst
==============================================================================
--- python/branches/py3k/Doc/library/os.rst (original)
+++ python/branches/py3k/Doc/library/os.rst Sun Nov 30 23:46:23 2008
@@ -805,10 +805,10 @@

.. function:: listdir(path)

- Return a list containing the names of the entries in the directory. The list
- is in arbitrary order. It does not include the special entries ``.`` and
- ``..`` even if they are present in the directory. Availability: Unix,
- Windows.
+ Return a list containing the names of the entries in the directory given by
+ *path*. The list is in arbitrary order. It does not include the special
+ entries ``'.'`` and ``'..'`` even if they are present in the directory.
+ Availability: Unix, Windows.

This function can be called with a bytes or string argument. In the bytes
case, all filenames will be listed as returned by the underlying API. In the

Modified: python/branches/py3k/Doc/library/sqlite3.rst
==============================================================================
--- python/branches/py3k/Doc/library/sqlite3.rst (original)
+++ python/branches/py3k/Doc/library/sqlite3.rst Sun Nov 30 23:46:23 2008
@@ -221,8 +221,8 @@

.. attribute:: Connection.isolation_level

- Get or set the current isolation level. :const:`None` for autocommit mode or one of
- "DEFERRED", "IMMEDIATE" or "EXLUSIVE". See section
+ Get or set the current isolation level. :const:`None` for autocommit mode or
+ one of "DEFERRED", "IMMEDIATE" or "EXCLUSIVE". See section
:ref:`sqlite3-controlling-transactions` for a more detailed explanation.



Modified: python/branches/py3k/Doc/tools/sphinxext/pyspecific.py
==============================================================================
--- python/branches/py3k/Doc/tools/sphinxext/pyspecific.py (original)
+++ python/branches/py3k/Doc/tools/sphinxext/pyspecific.py Sun Nov 30 23:46:23 2008
@@ -46,7 +46,7 @@
from docutils.io import StringOutput
from docutils.utils import new_document
from sphinx.builder import Builder
-from sphinx.textwriter import TextWriter
+from sphinx.writers.text import TextWriter

class PydocTopicsBuilder(Builder):
name = 'pydoc-topics'

Modified: python/branches/py3k/Lib/multiprocessing/__init__.py
==============================================================================
--- python/branches/py3k/Lib/multiprocessing/__init__.py (original)
+++ python/branches/py3k/Lib/multiprocessing/__init__.py Sun Nov 30 23:46:23 2008
@@ -112,7 +112,7 @@
num = int(os.environ['NUMBER_OF_PROCESSORS'])
except (ValueError, KeyError):
num = 0
- elif sys.platform == 'darwin':
+ elif 'bsd' in sys.platform or sys.platform == 'darwin':
try:
num = int(os.popen('sysctl -n hw.ncpu').read())
except ValueError:

Modified: python/branches/py3k/Lib/optparse.py
==============================================================================
--- python/branches/py3k/Lib/optparse.py (original)
+++ python/branches/py3k/Lib/optparse.py Sun Nov 30 23:46:23 2008
@@ -797,7 +797,7 @@
parser.print_version()
parser.exit()
else:
- raise RuntimeError("unknown action %r" % self.action)
+ raise ValueError("unknown action %r" % self.action)

return 1


Modified: python/branches/py3k/Lib/test/test_parser.py
==============================================================================
--- python/branches/py3k/Lib/test/test_parser.py (original)
+++ python/branches/py3k/Lib/test/test_parser.py Sun Nov 30 23:46:23 2008
@@ -189,6 +189,10 @@
def test_assert(self):
self.check_suite("assert alo < ahi and blo < bhi\n")

+ def test_with(self):
+ self.check_suite("with open('x'): pass\n")
+ self.check_suite("with open('x') as f: pass\n")
+
def test_position(self):
# An absolutely minimal test of position information. Better
# tests would be a big project.

Modified: python/branches/py3k/Modules/_multiprocessing/semaphore.c
==============================================================================
--- python/branches/py3k/Modules/_multiprocessing/semaphore.c (original)
+++ python/branches/py3k/Modules/_multiprocessing/semaphore.c Sun Nov 30 23:46:23 2008
@@ -512,7 +512,6 @@
static PyObject *
semlock_iszero(SemLockObject *self)
{
- int sval;
#if HAVE_BROKEN_SEM_GETVALUE
if (sem_trywait(self->handle) < 0) {
if (errno == EAGAIN)
@@ -524,6 +523,7 @@
Py_RETURN_FALSE;
}
#else
+ int sval;
if (SEM_GETVALUE(self->handle, &sval) < 0)
return mp_SetError(NULL, MP_STANDARD_ERROR);
return PyBool_FromLong((long)sval == 0);

Modified: python/branches/py3k/Modules/parsermodule.c
==============================================================================
--- python/branches/py3k/Modules/parsermodule.c (original)
+++ python/branches/py3k/Modules/parsermodule.c Sun Nov 30 23:46:23 2008
@@ -1438,7 +1438,7 @@


/* compound_stmt:
- * if_stmt | while_stmt | for_stmt | try_stmt | funcdef | classdef | decorated
+ * if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef | decorated
*/
static int
validate_compound_stmt(node *tree)
@@ -1456,6 +1456,7 @@
|| (ntype == while_stmt)
|| (ntype == for_stmt)
|| (ntype == try_stmt)
+ || (ntype == with_stmt)
|| (ntype == funcdef)
|| (ntype == classdef)
|| (ntype == decorated))
@@ -2399,6 +2400,38 @@
return ok;
}

+/* with_var
+with_var: 'as' expr
+ */
+static int
+validate_with_var(node *tree)
+{
+ int nch = NCH(tree);
+ int ok = (validate_ntype(tree, with_var)
+ && (nch == 2)
+ && validate_name(CHILD(tree, 0), "as")
+ && validate_expr(CHILD(tree, 1)));
+ return ok;
+}
+
+/* with_stmt
+ * 0 1 2 -2 -1
+with_stmt: 'with' test [ with_var ] ':' suite
+ */
+static int
+validate_with_stmt(node *tree)
+{
+ int nch = NCH(tree);
+ int ok = (validate_ntype(tree, with_stmt)
+ && ((nch == 4) || (nch == 5))
+ && validate_name(CHILD(tree, 0), "with")
+ && validate_test(CHILD(tree, 1))
+ && (nch == 4 || validate_with_var(CHILD(tree, 2)))
+ && validate_colon(RCHILD(tree, -2))
+ && validate_suite(RCHILD(tree, -1)));
+ return ok;
+}
+
/* funcdef:
*
* -5 -4 -3 -2 -1
@@ -2775,6 +2808,9 @@
case funcdef:
res = validate_funcdef(tree);
break;
+ case with_stmt:
+ res = validate_with_stmt(tree);
+ break;
case classdef:
res = validate_class(tree);
break;

Modified: python/branches/py3k/Objects/unicodeobject.c
==============================================================================
--- python/branches/py3k/Objects/unicodeobject.c (original)
+++ python/branches/py3k/Objects/unicodeobject.c Sun Nov 30 23:46:23 2008
@@ -8030,7 +8030,7 @@
}

PyDoc_STRVAR(splitlines__doc__,
-"S.splitlines([keepends]]) -> list of strings\n\
+"S.splitlines([keepends]) -> list of strings\n\
\n\
Return a list of the lines in S, breaking at line boundaries.\n\
Line breaks are not included in the resulting list unless keepends\n\

Modified: python/branches/py3k/PC/msvcrtmodule.c
==============================================================================
--- python/branches/py3k/PC/msvcrtmodule.c (original)
+++ python/branches/py3k/PC/msvcrtmodule.c Sun Nov 30 23:46:23 2008
@@ -24,6 +24,12 @@
#include <crtdbg.h>
#include <windows.h>

+#ifdef _MSC_VER
+#if _MSC_VER >= 1500
+#include <crtassem.h>
+#endif
+#endif
+
// Force the malloc heap to clean itself up, and free unused blocks
// back to the OS. (According to the docs, only works on NT.)
static PyObject *
@@ -373,6 +379,7 @@
PyMODINIT_FUNC
PyInit_msvcrt(void)
{
+ int st;
PyObject *d;
PyObject *m = PyModule_Create(&msvcrtmodule);
if (m == NULL)
@@ -401,5 +408,23 @@
insertint(d, "CRTDBG_FILE_STDOUT", (int)_CRTDBG_FILE_STDOUT);
insertint(d, "CRTDBG_REPORT_FILE", (int)_CRTDBG_REPORT_FILE);
#endif
- return m;
+
+ /* constants for the crt versions */
+#ifdef _VC_ASSEMBLY_PUBLICKEYTOKEN
+ st = PyModule_AddStringConstant(m, "VC_ASSEMBLY_PUBLICKEYTOKEN",
+ _VC_ASSEMBLY_PUBLICKEYTOKEN);
+ if (st < 0) return NULL;
+#endif
+#ifdef _CRT_ASSEMBLY_VERSION
+ st = PyModule_AddStringConstant(m, "CRT_ASSEMBLY_VERSION",
+ _CRT_ASSEMBLY_VERSION);
+ if (st < 0) return NULL;
+#endif
+#ifdef __LIBRARIES_ASSEMBLY_NAME_PREFIX
+ st = PyModule_AddStringConstant(m, "LIBRARIES_ASSEMBLY_NAME_PREFIX",
+ __LIBRARIES_ASSEMBLY_NAME_PREFIX);
+ if (st < 0) return NULL;
+#endif
+
+ return m;
}

Modified: python/branches/py3k/Tools/scripts/svneol.py
==============================================================================
--- python/branches/py3k/Tools/scripts/svneol.py (original)
+++ python/branches/py3k/Tools/scripts/svneol.py Sun Nov 30 23:46:23 2008
@@ -39,9 +39,9 @@
format = int(open(os.path.join(root, ".svn", "format")).read().strip())
except IOError:
return []
- if format == 8:
- # In version 8, committed props are stored in prop-base,
- # local modifications in props
+ if format in (8, 9):
+ # In version 8 and 9, committed props are stored in prop-base, local
+ # modifications in props
return [os.path.join(root, ".svn", "prop-base", fn+".svn-base"),
os.path.join(root, ".svn", "props", fn+".svn-work")]
raise ValueError, "Unknown repository format"

Modified: python/branches/py3k/configure.in
==============================================================================
--- python/branches/py3k/configure.in (original)
+++ python/branches/py3k/configure.in Sun Nov 30 23:46:23 2008
@@ -1,7 +1,7 @@
dnl ***********************************************
dnl * Please run autoreconf to test your changes! *
dnl ***********************************************
-dnl NOTE: autoconf 2.64 doesn't seem to work (use 2.63).
+dnl NOTE: autoconf 2.64 doesn't seem to work (use 2.61).

# Set VERSION so we only need to edit in one place (i.e., here)
m4_define(PYTHON_VERSION, 3.0)

Loading...