mirror of https://github.com/python/cpython
Merged revisions 68292,68344,68361,68378,68424,68426,68429-68430,68450,68457,68480-68481,68493,68495,68499,68501,68512,68514-68515 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r68292 | skip.montanaro | 2009-01-04 11:36:58 +0100 (So, 04 Jan 2009) | 3 lines If user configures --without-gcc give preference to $CC instead of blindly assuming the compiler will be "cc". ........ r68344 | marc-andre.lemburg | 2009-01-05 20:43:35 +0100 (Mo, 05 Jan 2009) | 7 lines Fix #4846 (Py_UNICODE_ISSPACE causes linker error) by moving the declaration into the extern "C" section. Add a few more comments and apply some minor edits to make the file contents fit the original structure again. ........ r68361 | antoine.pitrou | 2009-01-06 19:34:08 +0100 (Di, 06 Jan 2009) | 3 lines Use shutil.rmtree rather than os.rmdir. ........ r68378 | mark.dickinson | 2009-01-07 18:48:33 +0100 (Mi, 07 Jan 2009) | 2 lines Issue #4869: clarify documentation for random.expovariate. ........ r68424 | benjamin.peterson | 2009-01-09 03:53:35 +0100 (Fr, 09 Jan 2009) | 1 line specify what -3 warnings are about ........ r68426 | benjamin.peterson | 2009-01-09 04:03:05 +0100 (Fr, 09 Jan 2009) | 1 line fix spelling ........ r68429 | benjamin.peterson | 2009-01-09 04:05:14 +0100 (Fr, 09 Jan 2009) | 1 line add -3 to manpage ........ r68430 | benjamin.peterson | 2009-01-09 04:07:27 +0100 (Fr, 09 Jan 2009) | 1 line be more specific in -3 option help ........ r68450 | jeffrey.yasskin | 2009-01-09 17:47:07 +0100 (Fr, 09 Jan 2009) | 3 lines Fix issue 4884, preventing a crash in the socket code when python is compiled with llvm-gcc and run with a glibc <2.10. ........ r68457 | kristjan.jonsson | 2009-01-09 21:10:59 +0100 (Fr, 09 Jan 2009) | 1 line Issue 3677: Fix import from UNC paths on Windows. ........ r68480 | vinay.sajip | 2009-01-10 14:38:04 +0100 (Sa, 10 Jan 2009) | 1 line Minor documentation changes cross-referencing NullHandler to the documentation on configuring logging in a library. ........ r68481 | vinay.sajip | 2009-01-10 14:42:04 +0100 (Sa, 10 Jan 2009) | 1 line Corrected an incorrect self-reference. ........ r68493 | benjamin.peterson | 2009-01-10 18:18:55 +0100 (Sa, 10 Jan 2009) | 1 line rewrite verbose conditionals ........ r68495 | benjamin.peterson | 2009-01-10 18:36:44 +0100 (Sa, 10 Jan 2009) | 1 line tp_iter only exists with Py_TPFLAGS_HAVE_ITER #4901 ........ r68499 | mark.dickinson | 2009-01-10 20:14:55 +0100 (Sa, 10 Jan 2009) | 2 lines Remove an unnecessary check from test_decimal. ........ r68501 | vinay.sajip | 2009-01-10 20:22:57 +0100 (Sa, 10 Jan 2009) | 1 line Corrected minor typo and added .currentmodule directives to fix missing cross-references. ........ r68512 | benjamin.peterson | 2009-01-10 23:42:10 +0100 (Sa, 10 Jan 2009) | 1 line make tests fail if they can't be imported ........ r68514 | benjamin.peterson | 2009-01-11 00:41:59 +0100 (So, 11 Jan 2009) | 1 line move seealso to a more appropiate place ........ r68515 | benjamin.peterson | 2009-01-11 00:49:08 +0100 (So, 11 Jan 2009) | 1 line macos 9 isn't supported ........
This commit is contained in:
parent
a1b22ce68c
commit
c04c2890c7
|
@ -743,7 +743,7 @@ set.
|
||||||
:attr:`__weakref__`, the type inherits its :attr:`tp_weaklistoffset` from its
|
:attr:`__weakref__`, the type inherits its :attr:`tp_weaklistoffset` from its
|
||||||
base type.
|
base type.
|
||||||
|
|
||||||
The next two fields only exist if the :const:`Py_TPFLAGS_HAVE_CLASS` flag bit is
|
The next two fields only exist if the :const:`Py_TPFLAGS_HAVE_ITER` flag bit is
|
||||||
set.
|
set.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,7 @@ Another useful feature of the logging API is the ability to produce different
|
||||||
messages at different log levels. This allows you to instrument your code with
|
messages at different log levels. This allows you to instrument your code with
|
||||||
debug messages, for example, but turning the log level down so that those debug
|
debug messages, for example, but turning the log level down so that those debug
|
||||||
messages are not written for your production system. The default levels are
|
messages are not written for your production system. The default levels are
|
||||||
``CRITICAL``, ``ERROR``, ``WARNING``, ``INFO``, ``DEBUG`` and ``UNSET``.
|
``CRITICAL``, ``ERROR``, ``WARNING``, ``INFO``, ``DEBUG`` and ``NOTSET``.
|
||||||
|
|
||||||
The logger, handler, and log message call each specify a level. The log message
|
The logger, handler, and log message call each specify a level. The log message
|
||||||
is only emitted if the handler and logger are configured to emit messages of
|
is only emitted if the handler and logger are configured to emit messages of
|
||||||
|
@ -422,6 +422,8 @@ You can see that the config file approach has a few advantages over the Python
|
||||||
code approach, mainly separation of configuration and code and the ability of
|
code approach, mainly separation of configuration and code and the ability of
|
||||||
noncoders to easily modify the logging properties.
|
noncoders to easily modify the logging properties.
|
||||||
|
|
||||||
|
.. _library-config:
|
||||||
|
|
||||||
Configuring Logging for a Library
|
Configuring Logging for a Library
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
@ -524,6 +526,8 @@ provided:
|
||||||
|
|
||||||
#. :class:`FileHandler` instances send error messages to disk files.
|
#. :class:`FileHandler` instances send error messages to disk files.
|
||||||
|
|
||||||
|
.. currentmodule:: logging.handlers
|
||||||
|
|
||||||
#. :class:`BaseRotatingHandler` is the base class for handlers that rotate log
|
#. :class:`BaseRotatingHandler` is the base class for handlers that rotate log
|
||||||
files at a certain point. It is not meant to be instantiated directly. Instead,
|
files at a certain point. It is not meant to be instantiated directly. Instead,
|
||||||
use :class:`RotatingFileHandler` or :class:`TimedRotatingFileHandler`.
|
use :class:`RotatingFileHandler` or :class:`TimedRotatingFileHandler`.
|
||||||
|
@ -553,7 +557,12 @@ provided:
|
||||||
#. :class:`HTTPHandler` instances send error messages to an HTTP server using
|
#. :class:`HTTPHandler` instances send error messages to an HTTP server using
|
||||||
either ``GET`` or ``POST`` semantics.
|
either ``GET`` or ``POST`` semantics.
|
||||||
|
|
||||||
The :class:`NullHandler`, :class:`StreamHandler` and :class:`FileHandler`
|
#. :class:`WatchedFileHandler` instances watch the file they are logging to. If
|
||||||
|
the file changes, it is closed and reopened using the file name. This handler
|
||||||
|
is only useful on Unix-like systems; Windows does not support the underlying
|
||||||
|
mechanism used.
|
||||||
|
|
||||||
|
The :class:`StreamHandler` and :class:`FileHandler`
|
||||||
classes are defined in the core logging package. The other handlers are
|
classes are defined in the core logging package. The other handlers are
|
||||||
defined in a sub- module, :mod:`logging.handlers`. (There is also another
|
defined in a sub- module, :mod:`logging.handlers`. (There is also another
|
||||||
sub-module, :mod:`logging.config`, for configuration functionality.)
|
sub-module, :mod:`logging.config`, for configuration functionality.)
|
||||||
|
@ -1601,6 +1610,9 @@ sends logging output to a disk file. It inherits the output functionality from
|
||||||
Outputs the record to the file.
|
Outputs the record to the file.
|
||||||
|
|
||||||
|
|
||||||
|
See :ref:`library-config` for more information on how to use
|
||||||
|
:class:`NullHandler`.
|
||||||
|
|
||||||
WatchedFileHandler
|
WatchedFileHandler
|
||||||
^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
|
|
@ -210,9 +210,11 @@ be found in any statistics text.
|
||||||
|
|
||||||
.. function:: expovariate(lambd)
|
.. function:: expovariate(lambd)
|
||||||
|
|
||||||
Exponential distribution. *lambd* is 1.0 divided by the desired mean. (The
|
Exponential distribution. *lambd* is 1.0 divided by the desired
|
||||||
parameter would be called "lambda", but that is a reserved word in Python.)
|
mean. It should be nonzero. (The parameter would be called
|
||||||
Returned values range from 0 to positive infinity.
|
"lambda", but that is a reserved word in Python.) Returned values
|
||||||
|
range from 0 to positive infinity if *lambd* is positive, and from
|
||||||
|
negative infinity to 0 if *lambd* is negative.
|
||||||
|
|
||||||
|
|
||||||
.. function:: gammavariate(alpha, beta)
|
.. function:: gammavariate(alpha, beta)
|
||||||
|
|
|
@ -566,6 +566,10 @@ always available.
|
||||||
.. versionchanged:: 2.3
|
.. versionchanged:: 2.3
|
||||||
Unicode strings are no longer ignored.
|
Unicode strings are no longer ignored.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
Module :mod:`site` This describes how to use .pth files to extend
|
||||||
|
:data:`sys.path`.
|
||||||
|
|
||||||
|
|
||||||
.. data:: platform
|
.. data:: platform
|
||||||
|
|
||||||
|
@ -583,7 +587,6 @@ always available.
|
||||||
Windows ``'win32'``
|
Windows ``'win32'``
|
||||||
Windows/Cygwin ``'cygwin'``
|
Windows/Cygwin ``'cygwin'``
|
||||||
Mac OS X ``'darwin'``
|
Mac OS X ``'darwin'``
|
||||||
Mac OS 9 ``'mac'``
|
|
||||||
OS/2 ``'os2'``
|
OS/2 ``'os2'``
|
||||||
OS/2 EMX ``'os2emx'``
|
OS/2 EMX ``'os2emx'``
|
||||||
RiscOS ``'riscos'``
|
RiscOS ``'riscos'``
|
||||||
|
@ -869,10 +872,3 @@ always available.
|
||||||
first three characters of :const:`version`. It is provided in the :mod:`sys`
|
first three characters of :const:`version`. It is provided in the :mod:`sys`
|
||||||
module for informational purposes; modifying this value has no effect on the
|
module for informational purposes; modifying this value has no effect on the
|
||||||
registry keys used by Python. Availability: Windows.
|
registry keys used by Python. Availability: Windows.
|
||||||
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
|
|
||||||
Module :mod:`site`
|
|
||||||
This describes how to use .pth files to extend ``sys.path``.
|
|
||||||
|
|
||||||
|
|
|
@ -356,7 +356,8 @@ Miscellaneous options
|
||||||
|
|
||||||
.. cmdoption:: -3
|
.. cmdoption:: -3
|
||||||
|
|
||||||
Warn about Python 3.x incompatibilities. Among these are:
|
Warn about Python 3.x incompatibilities which cannot be fixed trivially by
|
||||||
|
:ref:`2to3 <2to3-reference>`. Among these are:
|
||||||
|
|
||||||
* :meth:`dict.has_key`
|
* :meth:`dict.has_key`
|
||||||
* :func:`apply`
|
* :func:`apply`
|
||||||
|
|
|
@ -709,6 +709,15 @@ typedef struct fd_set {
|
||||||
#define Py_FORMAT_PARSETUPLE(func,p1,p2)
|
#define Py_FORMAT_PARSETUPLE(func,p1,p2)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Specify alignment on compilers that support it.
|
||||||
|
*/
|
||||||
|
#if defined(__GNUC__) && __GNUC__ >= 3
|
||||||
|
#define Py_ALIGNED(x) __attribute__((aligned(x)))
|
||||||
|
#else
|
||||||
|
#define Py_ALIGNED(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Eliminate end-of-loop code not reached warnings from SunPro C
|
/* Eliminate end-of-loop code not reached warnings from SunPro C
|
||||||
* when using do{...}while(0) macros
|
* when using do{...}while(0) macros
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -130,6 +130,10 @@ typedef unsigned int Py_UCS4;
|
||||||
typedef unsigned long Py_UCS4;
|
typedef unsigned long Py_UCS4;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Py_UNICODE is the native Unicode storage format (code unit) used by
|
||||||
|
Python and represents a single Unicode element in the Unicode
|
||||||
|
type. */
|
||||||
|
|
||||||
typedef PY_UNICODE_TYPE Py_UNICODE;
|
typedef PY_UNICODE_TYPE Py_UNICODE;
|
||||||
|
|
||||||
/* --- UCS-2/UCS-4 Name Mangling ------------------------------------------ */
|
/* --- UCS-2/UCS-4 Name Mangling ------------------------------------------ */
|
||||||
|
@ -350,12 +354,12 @@ typedef PY_UNICODE_TYPE Py_UNICODE;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
/* Since splitting on whitespace is an important use case, and whitespace
|
/* Since splitting on whitespace is an important use case, and
|
||||||
in most situations is solely ASCII whitespace, we optimize for the common
|
whitespace in most situations is solely ASCII whitespace, we
|
||||||
case by using a quick look-up table with an inlined check.
|
optimize for the common case by using a quick look-up table
|
||||||
*/
|
_Py_ascii_whitespace (see below) with an inlined check.
|
||||||
PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[];
|
|
||||||
|
|
||||||
|
*/
|
||||||
#define Py_UNICODE_ISSPACE(ch) \
|
#define Py_UNICODE_ISSPACE(ch) \
|
||||||
((ch) < 128U ? _Py_ascii_whitespace[(ch)] : _PyUnicode_IsWhitespace(ch))
|
((ch) < 128U ? _Py_ascii_whitespace[(ch)] : _PyUnicode_IsWhitespace(ch))
|
||||||
|
|
||||||
|
@ -389,13 +393,14 @@ PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[];
|
||||||
#define Py_UNICODE_COPY(target, source, length) \
|
#define Py_UNICODE_COPY(target, source, length) \
|
||||||
Py_MEMCPY((target), (source), (length)*sizeof(Py_UNICODE))
|
Py_MEMCPY((target), (source), (length)*sizeof(Py_UNICODE))
|
||||||
|
|
||||||
#define Py_UNICODE_FILL(target, value, length) do\
|
#define Py_UNICODE_FILL(target, value, length) \
|
||||||
{Py_ssize_t i_; Py_UNICODE *t_ = (target); Py_UNICODE v_ = (value);\
|
do {Py_ssize_t i_; Py_UNICODE *t_ = (target); Py_UNICODE v_ = (value);\
|
||||||
for (i_ = 0; i_ < (length); i_++) t_[i_] = v_;\
|
for (i_ = 0; i_ < (length); i_++) t_[i_] = v_;\
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
/* check if substring matches at given offset. the offset must be
|
/* Check if substring matches at given offset. the offset must be
|
||||||
valid, and the substring must not be empty */
|
valid, and the substring must not be empty */
|
||||||
|
|
||||||
#define Py_UNICODE_MATCH(string, offset, substring) \
|
#define Py_UNICODE_MATCH(string, offset, substring) \
|
||||||
((*((string)->str + (offset)) == *((substring)->str)) && \
|
((*((string)->str + (offset)) == *((substring)->str)) && \
|
||||||
((*((string)->str + (offset) + (substring)->length-1) == *((substring)->str + (substring)->length-1))) && \
|
((*((string)->str + (offset) + (substring)->length-1) == *((substring)->str + (substring)->length-1))) && \
|
||||||
|
@ -405,8 +410,6 @@ PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[];
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PyAPI_FUNC(int) PyUnicode_ClearFreeList(void);
|
|
||||||
|
|
||||||
/* --- Unicode Type ------------------------------------------------------- */
|
/* --- Unicode Type ------------------------------------------------------- */
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -605,6 +608,17 @@ PyAPI_FUNC(Py_ssize_t) PyUnicode_AsWideChar(
|
||||||
|
|
||||||
PyAPI_FUNC(PyObject*) PyUnicode_FromOrdinal(int ordinal);
|
PyAPI_FUNC(PyObject*) PyUnicode_FromOrdinal(int ordinal);
|
||||||
|
|
||||||
|
/* --- Free-list management ----------------------------------------------- */
|
||||||
|
|
||||||
|
/* Clear the free list used by the Unicode implementation.
|
||||||
|
|
||||||
|
This can be used to release memory used for objects on the free
|
||||||
|
list back to the Python memory allocator.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
PyAPI_FUNC(int) PyUnicode_ClearFreeList(void);
|
||||||
|
|
||||||
/* === Builtin Codecs =====================================================
|
/* === Builtin Codecs =====================================================
|
||||||
|
|
||||||
Many of these APIs take two arguments encoding and errors. These
|
Many of these APIs take two arguments encoding and errors. These
|
||||||
|
@ -1323,6 +1337,10 @@ PyAPI_FUNC(PyObject *) _PyUnicode_XStrip(
|
||||||
|
|
||||||
/* === Characters Type APIs =============================================== */
|
/* === Characters Type APIs =============================================== */
|
||||||
|
|
||||||
|
/* Helper array used by Py_UNICODE_ISSPACE(). */
|
||||||
|
|
||||||
|
PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[];
|
||||||
|
|
||||||
/* These should not be used directly. Use the Py_UNICODE_IS* and
|
/* These should not be used directly. Use the Py_UNICODE_IS* and
|
||||||
Py_UNICODE_TO* macros instead.
|
Py_UNICODE_TO* macros instead.
|
||||||
|
|
||||||
|
|
|
@ -67,9 +67,6 @@ def get_tests(package, mask, verbosity, exclude=()):
|
||||||
if verbosity > 1:
|
if verbosity > 1:
|
||||||
print >> sys.stderr, "Skipped %s: %s" % (modname, detail)
|
print >> sys.stderr, "Skipped %s: %s" % (modname, detail)
|
||||||
continue
|
continue
|
||||||
except Exception, detail:
|
|
||||||
print >> sys.stderr, "Warning: could not import %s: %s" % (modname, detail)
|
|
||||||
continue
|
|
||||||
for name in dir(mod):
|
for name in dir(mod):
|
||||||
if name.startswith("_"):
|
if name.startswith("_"):
|
||||||
continue
|
continue
|
||||||
|
|
|
@ -413,9 +413,11 @@ class Random(_random.Random):
|
||||||
def expovariate(self, lambd):
|
def expovariate(self, lambd):
|
||||||
"""Exponential distribution.
|
"""Exponential distribution.
|
||||||
|
|
||||||
lambd is 1.0 divided by the desired mean. (The parameter would be
|
lambd is 1.0 divided by the desired mean. It should be
|
||||||
called "lambda", but that is a reserved word in Python.) Returned
|
nonzero. (The parameter would be called "lambda", but that is
|
||||||
values range from 0 to positive infinity.
|
a reserved word in Python.) Returned values range from 0 to
|
||||||
|
positive infinity if lambd is positive, and from negative
|
||||||
|
infinity to 0 if lambd is negative.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# lambd: rate lambd = 1/mean
|
# lambd: rate lambd = 1/mean
|
||||||
|
|
|
@ -168,7 +168,6 @@ def outside_decNumber_bounds(v, context):
|
||||||
-context.Emin > DEC_MAX_MATH):
|
-context.Emin > DEC_MAX_MATH):
|
||||||
return True
|
return True
|
||||||
if not v._is_special and v and (
|
if not v._is_special and v and (
|
||||||
len(v._int) > DEC_MAX_MATH or
|
|
||||||
v.adjusted() > DEC_MAX_MATH or
|
v.adjusted() > DEC_MAX_MATH or
|
||||||
v.adjusted() < 1-2*DEC_MAX_MATH):
|
v.adjusted() < 1-2*DEC_MAX_MATH):
|
||||||
return True
|
return True
|
||||||
|
|
|
@ -269,7 +269,7 @@ func_filename = func.func_code.co_filename
|
||||||
if os.path.exists(file_name):
|
if os.path.exists(file_name):
|
||||||
os.remove(file_name)
|
os.remove(file_name)
|
||||||
if os.path.exists(self.dir_name):
|
if os.path.exists(self.dir_name):
|
||||||
os.rmdir(self.dir_name)
|
shutil.rmtree(self.dir_name)
|
||||||
|
|
||||||
def import_module(self):
|
def import_module(self):
|
||||||
ns = globals()
|
ns = globals()
|
||||||
|
|
|
@ -54,6 +54,9 @@ python \- an interpreted, interactive, object-oriented programming language
|
||||||
[
|
[
|
||||||
.B \-x
|
.B \-x
|
||||||
]
|
]
|
||||||
|
[
|
||||||
|
.B \-3
|
||||||
|
]
|
||||||
.br
|
.br
|
||||||
[
|
[
|
||||||
.B \-c
|
.B \-c
|
||||||
|
@ -236,6 +239,9 @@ is thus equivalent to an omitted line number.
|
||||||
Skip the first line of the source. This is intended for a DOS
|
Skip the first line of the source. This is intended for a DOS
|
||||||
specific hack only. Warning: the line numbers in error messages will
|
specific hack only. Warning: the line numbers in error messages will
|
||||||
be off by one!
|
be off by one!
|
||||||
|
.TP
|
||||||
|
.B \-3
|
||||||
|
Warn about Python 3.x incompatibilities that 2to3 cannot trivially fix.
|
||||||
.SH INTERPRETER INTERFACE
|
.SH INTERPRETER INTERFACE
|
||||||
The interpreter interface resembles that of the UNIX shell: when
|
The interpreter interface resembles that of the UNIX shell: when
|
||||||
called with standard input connected to a tty device, it prompts for
|
called with standard input connected to a tty device, it prompts for
|
||||||
|
|
|
@ -86,7 +86,7 @@ static char *usage_3 = "\
|
||||||
-x : skip first line of source, allowing use of non-Unix forms of #!cmd\n\
|
-x : skip first line of source, allowing use of non-Unix forms of #!cmd\n\
|
||||||
";
|
";
|
||||||
static char *usage_4 = "\
|
static char *usage_4 = "\
|
||||||
-3 : warn about Python 3.x incompatibilities\n\
|
-3 : warn about Python 3.x incompatibilities that 2to3 cannot trivially fix\n\
|
||||||
file : program read from script file\n\
|
file : program read from script file\n\
|
||||||
- : program read from stdin (default; interactive mode if a tty)\n\
|
- : program read from stdin (default; interactive mode if a tty)\n\
|
||||||
arg ...: arguments passed to program in sys.argv[1:]\n\n\
|
arg ...: arguments passed to program in sys.argv[1:]\n\n\
|
||||||
|
|
|
@ -3334,7 +3334,11 @@ socket_gethostbyaddr(PyObject *self, PyObject *args)
|
||||||
#ifdef HAVE_GETHOSTBYNAME_R_3_ARG
|
#ifdef HAVE_GETHOSTBYNAME_R_3_ARG
|
||||||
struct hostent_data data;
|
struct hostent_data data;
|
||||||
#else
|
#else
|
||||||
char buf[16384];
|
/* glibcs up to 2.10 assume that the buf argument to
|
||||||
|
gethostbyaddr_r is 8-byte aligned, which at least llvm-gcc
|
||||||
|
does not ensure. The attribute below instructs the compiler
|
||||||
|
to maintain this alignment. */
|
||||||
|
char buf[16384] Py_ALIGNED(8);
|
||||||
int buf_len = (sizeof buf) - 1;
|
int buf_len = (sizeof buf) - 1;
|
||||||
int errnop;
|
int errnop;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3199,24 +3199,11 @@ NullImporter_init(NullImporter *self, PyObject *args, PyObject *kwds)
|
||||||
return -1;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
#ifndef RISCOS
|
#ifndef RISCOS
|
||||||
|
#ifndef MS_WINDOWS
|
||||||
struct stat statbuf;
|
struct stat statbuf;
|
||||||
int rv;
|
int rv;
|
||||||
|
|
||||||
rv = stat(path, &statbuf);
|
rv = stat(path, &statbuf);
|
||||||
#ifdef MS_WINDOWS
|
|
||||||
/* MS Windows stat() chokes on paths like C:\path\. Try to
|
|
||||||
* recover *one* time by stripping off a trailing slash or
|
|
||||||
* backslash. http://bugs.python.org/issue1293
|
|
||||||
*/
|
|
||||||
if (rv != 0 && pathlen <= MAXPATHLEN &&
|
|
||||||
(path[pathlen-1] == '/' || path[pathlen-1] == '\\')) {
|
|
||||||
char mangled[MAXPATHLEN+1];
|
|
||||||
|
|
||||||
strcpy(mangled, path);
|
|
||||||
mangled[pathlen-1] = '\0';
|
|
||||||
rv = stat(mangled, &statbuf);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (rv == 0) {
|
if (rv == 0) {
|
||||||
/* it exists */
|
/* it exists */
|
||||||
if (S_ISDIR(statbuf.st_mode)) {
|
if (S_ISDIR(statbuf.st_mode)) {
|
||||||
|
@ -3226,7 +3213,24 @@ NullImporter_init(NullImporter *self, PyObject *args, PyObject *kwds)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else /* MS_WINDOWS */
|
||||||
|
DWORD rv;
|
||||||
|
/* see issue1293 and issue3677:
|
||||||
|
* stat() on Windows doesn't recognise paths like
|
||||||
|
* "e:\\shared\\" and "\\\\whiterab-c2znlh\\shared" as dirs.
|
||||||
|
*/
|
||||||
|
rv = GetFileAttributesA(path);
|
||||||
|
if (rv != INVALID_FILE_ATTRIBUTES) {
|
||||||
|
/* it exists */
|
||||||
|
if (rv & FILE_ATTRIBUTE_DIRECTORY) {
|
||||||
|
/* it's a directory */
|
||||||
|
PyErr_SetString(PyExc_ImportError,
|
||||||
|
"existing directory");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#else /* RISCOS */
|
||||||
if (object_exists(path)) {
|
if (object_exists(path)) {
|
||||||
/* it exists */
|
/* it exists */
|
||||||
if (isdir(path)) {
|
if (isdir(path)) {
|
||||||
|
|
|
@ -62,12 +62,12 @@ def docs_modified(file_paths):
|
||||||
@status("Misc/ACKS updated", modal=True)
|
@status("Misc/ACKS updated", modal=True)
|
||||||
def credit_given(file_paths):
|
def credit_given(file_paths):
|
||||||
"""Check if Misc/ACKS has been changed."""
|
"""Check if Misc/ACKS has been changed."""
|
||||||
return True if 'Misc/ACKS' in file_paths else False
|
return 'Misc/ACKS' in file_paths
|
||||||
|
|
||||||
@status("Misc/NEWS updated", modal=True)
|
@status("Misc/NEWS updated", modal=True)
|
||||||
def reported_news(file_paths):
|
def reported_news(file_paths):
|
||||||
"""Check if Misc/NEWS has been changed."""
|
"""Check if Misc/NEWS has been changed."""
|
||||||
return True if 'Misc/NEWS' in file_paths else False
|
return 'Misc/NEWS' in file_paths
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|
|
@ -407,7 +407,7 @@ AC_ARG_WITH(gcc,
|
||||||
AC_HELP_STRING(--without-gcc,never use gcc),
|
AC_HELP_STRING(--without-gcc,never use gcc),
|
||||||
[
|
[
|
||||||
case $withval in
|
case $withval in
|
||||||
no) CC=cc
|
no) CC=${CC:-cc}
|
||||||
without_gcc=yes;;
|
without_gcc=yes;;
|
||||||
yes) CC=gcc
|
yes) CC=gcc
|
||||||
without_gcc=no;;
|
without_gcc=no;;
|
||||||
|
|
Loading…
Reference in New Issue