Merged revisions 78544 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78544 | gregory.p.smith | 2010-02-28 20:56:12 -0800 (Sun, 28 Feb 2010) | 2 lines

  Adds c_ssize_t to ctypes.  issue 6729.
........
diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst
index 652a2f4..32499d5 100644
--- a/Doc/library/ctypes.rst
+++ b/Doc/library/ctypes.rst
@@ -2207,6 +2207,13 @@
    Represents the C :ctype:`size_t` datatype.
 
 
+.. class:: c_ssize_t
+
+   Represents the C :ctype:`ssize_t` datatype.
+
+   .. versionadded:: 3.2
+
+
 .. class:: c_ubyte
 
    Represents the C :ctype:`unsigned char` datatype, it interprets the value as
diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py
index 1283f28..8782db9 100644
--- a/Lib/ctypes/__init__.py
+++ b/Lib/ctypes/__init__.py
@@ -459,10 +459,13 @@
 
 if sizeof(c_uint) == sizeof(c_void_p):
     c_size_t = c_uint
+    c_ssize_t = c_int
 elif sizeof(c_ulong) == sizeof(c_void_p):
     c_size_t = c_ulong
+    c_ssize_t = c_long
 elif sizeof(c_ulonglong) == sizeof(c_void_p):
     c_size_t = c_ulonglong
+    c_ssize_t = c_longlong
 
 # functions
 
diff --git a/Lib/ctypes/test/test_sizes.py b/Lib/ctypes/test/test_sizes.py
index 0509cbb..f9b5e97 100644
--- a/Lib/ctypes/test/test_sizes.py
+++ b/Lib/ctypes/test/test_sizes.py
@@ -1,8 +1,11 @@
 # Test specifically-sized containers.
 
-import unittest
 from ctypes import *
 
+import sys
+import unittest
+
+
 class SizesTestCase(unittest.TestCase):
     def test_8(self):
         self.assertEqual(1, sizeof(c_int8))
@@ -23,5 +26,9 @@
     def test_size_t(self):
         self.assertEqual(sizeof(c_void_p), sizeof(c_size_t))
 
+    def test_ssize_t(self):
+        self.assertEqual(sizeof(c_void_p), sizeof(c_ssize_t))
+
+
 if __name__ == "__main__":
     unittest.main()
diff --git a/Misc/NEWS b/Misc/NEWS
index c36aab3..c529e18 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -717,6 +717,8 @@
 - Issue #1068268: The subprocess module now handles EINTR in internal
   os.waitpid and os.read system calls where appropriate.
 
+- Issue #6729: Added ctypes.c_ssize_t to represent ssize_t.
+
 Extension Modules
 -----------------