[Python-checkins] r51998 - in python/branches/release25-maint: Include/pyport.h Misc/NEWS configure configure.in

georg.brandl python-checkins at python.org
Mon Sep 25 08:58:01 CEST 2006


Author: georg.brandl
Date: Mon Sep 25 08:58:00 2006
New Revision: 51998

Modified:
   python/branches/release25-maint/Include/pyport.h
   python/branches/release25-maint/Misc/NEWS
   python/branches/release25-maint/configure
   python/branches/release25-maint/configure.in
Log:
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.



Modified: python/branches/release25-maint/Include/pyport.h
==============================================================================
--- python/branches/release25-maint/Include/pyport.h	(original)
+++ python/branches/release25-maint/Include/pyport.h	Mon Sep 25 08:58:00 2006
@@ -126,7 +126,7 @@
  * Py_ssize_t on the platform.
  */
 #ifndef PY_FORMAT_SIZE_T
-#   if SIZEOF_SIZE_T == SIZEOF_INT
+#   if SIZEOF_SIZE_T == SIZEOF_INT && !defined(__APPLE__)
 #       define PY_FORMAT_SIZE_T ""
 #   elif SIZEOF_SIZE_T == SIZEOF_LONG
 #       define PY_FORMAT_SIZE_T "l"

Modified: python/branches/release25-maint/Misc/NEWS
==============================================================================
--- python/branches/release25-maint/Misc/NEWS	(original)
+++ python/branches/release25-maint/Misc/NEWS	Mon Sep 25 08:58:00 2006
@@ -16,6 +16,8 @@
   not being recognized as a keyword after, e.g., this 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.
 
 

Modified: python/branches/release25-maint/configure
==============================================================================
--- python/branches/release25-maint/configure	(original)
+++ python/branches/release25-maint/configure	Mon Sep 25 08:58:00 2006
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 51173 .
+# From configure.in Revision: 51727 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.59 for python 2.5.
 #
@@ -22110,12 +22110,26 @@
 
 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;

Modified: python/branches/release25-maint/configure.in
==============================================================================
--- python/branches/release25-maint/configure.in	(original)
+++ python/branches/release25-maint/configure.in	Mon Sep 25 08:58:00 2006
@@ -3352,14 +3352,28 @@
 
 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)


More information about the Python-checkins mailing list