diff options
author | Georg Brandl <georg@python.org> | 2006-09-25 06:58:00 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2006-09-25 06:58:00 (GMT) |
commit | 934c90de0de8a0fd5f07b483b18d98beb857dbd9 (patch) | |
tree | 29264686d9cda5c7c1d945b2d3bc5c97ff843786 /configure.in | |
parent | b14b59fcf9325bc803763c4aad036cb12f9d7978 (diff) | |
download | cpython-934c90de0de8a0fd5f07b483b18d98beb857dbd9.zip cpython-934c90de0de8a0fd5f07b483b18d98beb857dbd9.tar.gz cpython-934c90de0de8a0fd5f07b483b18d98beb857dbd9.tar.bz2 |
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.
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/configure.in b/configure.in index 410f1af..711e19e 100644 --- a/configure.in +++ b/configure.in @@ -3352,14 +3352,28 @@ AC_TRY_RUN([#include <stdio.h> 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) 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 0; }], [AC_MSG_RESULT(yes) |