mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
number of tests, all because of the codecs/_multibytecodecs issue described here (it's not a Py3K issue, just something Py3K discovers): http://mail.python.org/pipermail/python-dev/2006-April/064051.html Hye-Shik Chang promised to look for a fix, so no need to fix it here. The tests that are expected to break are: test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecs test_multibytecodec This merge fixes an actual test failure (test_weakref) in this branch, though, so I believe merging is the right thing to do anyway.
This commit is contained in:
parent
9ada3d6e29
commit
49fd7fa443
640 changed files with 52240 additions and 18408 deletions
|
|
@ -85,6 +85,10 @@ typedef PY_LONG_LONG Py_intptr_t;
|
|||
# error "Python needs a typedef for Py_uintptr_t in pyport.h."
|
||||
#endif /* HAVE_UINTPTR_T */
|
||||
|
||||
/* Py_ssize_t is a signed integral type such that sizeof(Py_ssize_t) ==
|
||||
* sizeof(size_t). C99 doesn't define such a thing directly (size_t is an
|
||||
* unsigned integral type). See PEP 353 for details.
|
||||
*/
|
||||
#ifdef HAVE_SSIZE_T
|
||||
typedef ssize_t Py_ssize_t;
|
||||
#elif SIZEOF_VOID_P == SIZEOF_SIZE_T
|
||||
|
|
@ -92,7 +96,46 @@ typedef Py_intptr_t Py_ssize_t;
|
|||
#else
|
||||
# error "Python needs a typedef for Py_ssize_t in pyport.h."
|
||||
#endif
|
||||
|
||||
/* Largest positive value of type Py_ssize_t. */
|
||||
#define PY_SSIZE_T_MAX ((Py_ssize_t)(((size_t)-1)>>1))
|
||||
/* Smallest negative value of type Py_ssize_t. */
|
||||
#define PY_SSIZE_T_MIN (-PY_SSIZE_T_MAX-1)
|
||||
|
||||
/* PY_FORMAT_SIZE_T is a platform-specific modifier for use in a printf
|
||||
* format to convert an argument with the width of a size_t or Py_ssize_t.
|
||||
* C99 introduced "z" for this purpose, but not all platforms support that;
|
||||
* e.g., MS compilers use "I" instead.
|
||||
*
|
||||
* These "high level" Python format functions interpret "z" correctly on
|
||||
* all platforms (Python interprets the format string itself, and does whatever
|
||||
* the platform C requires to convert a size_t/Py_ssize_t argument):
|
||||
*
|
||||
* PyString_FromFormat
|
||||
* PyErr_Format
|
||||
* PyString_FromFormatV
|
||||
*
|
||||
* Lower-level uses require that you interpolate the correct format modifier
|
||||
* yourself (e.g., calling printf, fprintf, sprintf, PyOS_snprintf); for
|
||||
* example,
|
||||
*
|
||||
* Py_ssize_t index;
|
||||
* fprintf(stderr, "index %" PY_FORMAT_SIZE_T "d sucks\n", index);
|
||||
*
|
||||
* That will expand to %ld, or %Id, or to something else correct for a
|
||||
* Py_ssize_t on the platform.
|
||||
*/
|
||||
#ifndef PY_FORMAT_SIZE_T
|
||||
# if SIZEOF_SIZE_T == SIZEOF_INT
|
||||
# define PY_FORMAT_SIZE_T ""
|
||||
# elif SIZEOF_SIZE_T == SIZEOF_LONG
|
||||
# define PY_FORMAT_SIZE_T "l"
|
||||
# elif defined(MS_WINDOWS)
|
||||
# define PY_FORMAT_SIZE_T "I"
|
||||
# else
|
||||
# error "This platform's pyconfig.h needs to define PY_FORMAT_SIZE_T"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
|
|
@ -367,7 +410,8 @@ extern "C" {
|
|||
* typedef int T1 Py_DEPRECATED(2.4);
|
||||
* extern int x() Py_DEPRECATED(2.5);
|
||||
*/
|
||||
#if defined(__GNUC__) && (__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)
|
||||
#if defined(__GNUC__) && ((__GNUC__ >= 4) || \
|
||||
(__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))
|
||||
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
|
||||
#else
|
||||
#define Py_DEPRECATED(VERSION_UNUSED)
|
||||
|
|
@ -436,14 +480,12 @@ extern double hypot(double, double);
|
|||
#endif
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
On 4.4BSD-descendants, ctype functions serves the whole range of
|
||||
wchar_t character set rather than single byte code points only.
|
||||
This characteristic can break some operations of string object
|
||||
including str.upper() and str.split() on UTF-8 locales. This
|
||||
workaround was provided by Tim Robbins of FreeBSD project. He said
|
||||
the incompatibility will be fixed in FreeBSD 6.
|
||||
********************************************************************/
|
||||
/* On 4.4BSD-descendants, ctype functions serves the whole range of
|
||||
* wchar_t character set rather than single byte code points only.
|
||||
* This characteristic can break some operations of string object
|
||||
* including str.upper() and str.split() on UTF-8 locales. This
|
||||
* workaround was provided by Tim Robbins of FreeBSD project.
|
||||
*/
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
#include <osreldate.h>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue