mirror of
https://github.com/python/cpython.git
synced 2025-12-04 08:34:25 +00:00
Backport rev. 51971:
Fix %zd string formatting on Mac OS X so it prints negative numbers. In addition to testing positive numbers, verify negative numbers work in configure. In order to avoid compiler warnings on OS X 10.4, also change the order of the check for the format character to use (PY_FORMAT_SIZE_T) in the sprintf format for Py_ssize_t. This patch changes PY_FORMAT_SIZE_T from "" to "l" if it wasn't defined at configure time. Need to verify the buildbot results.
This commit is contained in:
parent
b14b59fcf9
commit
934c90de0d
4 changed files with 37 additions and 7 deletions
|
|
@ -126,7 +126,7 @@ typedef Py_intptr_t Py_ssize_t;
|
||||||
* Py_ssize_t on the platform.
|
* Py_ssize_t on the platform.
|
||||||
*/
|
*/
|
||||||
#ifndef PY_FORMAT_SIZE_T
|
#ifndef PY_FORMAT_SIZE_T
|
||||||
# if SIZEOF_SIZE_T == SIZEOF_INT
|
# if SIZEOF_SIZE_T == SIZEOF_INT && !defined(__APPLE__)
|
||||||
# define PY_FORMAT_SIZE_T ""
|
# define PY_FORMAT_SIZE_T ""
|
||||||
# elif SIZEOF_SIZE_T == SIZEOF_LONG
|
# elif SIZEOF_SIZE_T == SIZEOF_LONG
|
||||||
# define PY_FORMAT_SIZE_T "l"
|
# define PY_FORMAT_SIZE_T "l"
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,8 @@ Core and builtins
|
||||||
not being recognized as a keyword after, e.g., this statement:
|
not being recognized as a keyword after, e.g., this statement:
|
||||||
from __future__ import division, with_statement
|
from __future__ import division, with_statement
|
||||||
|
|
||||||
|
- Fix %zd string formatting on Mac OS X so it prints negative numbers.
|
||||||
|
|
||||||
- Allow exception instances to be directly sliced again.
|
- Allow exception instances to be directly sliced again.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
20
configure
vendored
20
configure
vendored
|
|
@ -1,5 +1,5 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# From configure.in Revision: 51173 .
|
# From configure.in Revision: 51727 .
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.59 for python 2.5.
|
# Generated by GNU Autoconf 2.59 for python 2.5.
|
||||||
#
|
#
|
||||||
|
|
@ -22110,12 +22110,26 @@ cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
char buffer[4];
|
char buffer[256];
|
||||||
|
|
||||||
|
#ifdef HAVE_SSIZE_T
|
||||||
|
typedef ssize_t Py_ssize_t;
|
||||||
|
#elif SIZEOF_VOID_P == SIZEOF_LONG
|
||||||
|
typedef long Py_ssize_t;
|
||||||
|
#else
|
||||||
|
typedef int Py_ssize_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
if(sprintf(buffer, "%zd", (size_t)123) < 0)
|
if(sprintf(buffer, "%zd", (size_t)123) < 0)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (strncmp(buffer, "123", 3))
|
if (strcmp(buffer, "123"))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (strcmp(buffer, "-123"))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
20
configure.in
20
configure.in
|
|
@ -3352,14 +3352,28 @@ AC_TRY_RUN([#include <stdio.h>
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
char buffer[4];
|
char buffer[256];
|
||||||
|
|
||||||
|
#ifdef HAVE_SSIZE_T
|
||||||
|
typedef ssize_t Py_ssize_t;
|
||||||
|
#elif SIZEOF_VOID_P == SIZEOF_LONG
|
||||||
|
typedef long Py_ssize_t;
|
||||||
|
#else
|
||||||
|
typedef int Py_ssize_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
if(sprintf(buffer, "%zd", (size_t)123) < 0)
|
if(sprintf(buffer, "%zd", (size_t)123) < 0)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (strncmp(buffer, "123", 3))
|
if (strcmp(buffer, "123"))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (strcmp(buffer, "-123"))
|
||||||
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}],
|
}],
|
||||||
[AC_MSG_RESULT(yes)
|
[AC_MSG_RESULT(yes)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue