Author: thomas.heller
Date: Thu Jul 12 21:19:43 2007
New Revision: 56326
Modified:
python/branches/py3k-struni/Lib/ctypes/test/test_slicing.py
python/branches/py3k-struni/Modules/_ctypes/callproc.c
Log:
Accept bytes as parameter to foreign functions without prototype.
These are passed as byte strings (unicode strings are passed as wide
character strings).
Modified: python/branches/py3k-struni/Lib/ctypes/test/test_slicing.py
==============================================================================
--- python/branches/py3k-struni/Lib/ctypes/test/test_slicing.py (original)
+++ python/branches/py3k-struni/Lib/ctypes/test/test_slicing.py Thu Jul 12
21:19:43 2007
@@ -37,7 +37,7 @@
from ctypes.test import is_resource_enabled
if is_resource_enabled("struni-crash"):
def test_char_ptr(self):
- s = "abcdefghijklmnopqrstuvwxyz"
+ s = b"abcdefghijklmnopqrstuvwxyz"
dll = CDLL(_ctypes_test.__file__)
dll.my_strdup.restype = POINTER(c_char)
@@ -57,7 +57,7 @@
def test_char_ptr_with_free(self):
dll = CDLL(_ctypes_test.__file__)
- s = "abcdefghijklmnopqrstuvwxyz"
+ s = b"abcdefghijklmnopqrstuvwxyz"
class allocated_c_char_p(c_char_p):
pass
Modified: python/branches/py3k-struni/Modules/_ctypes/callproc.c
==============================================================================
--- python/branches/py3k-struni/Modules/_ctypes/callproc.c (original)
+++ python/branches/py3k-struni/Modules/_ctypes/callproc.c Thu Jul 12
21:19:43 2007
@@ -512,6 +512,7 @@
return 0;
}
+ /* XXX struni remove later */
if (PyString_Check(obj)) {
pa->ffi_type = &ffi_type_pointer;
pa->value.p = PyString_AS_STRING(obj);
@@ -520,6 +521,14 @@
return 0;
}
+ if (PyBytes_Check(obj)) {
+ pa->ffi_type = &ffi_type_pointer;
+ pa->value.p = PyBytes_AsString(obj);
+ Py_INCREF(obj);
+ pa->keep = obj;
+ return 0;
+ }
+
#ifdef CTYPES_UNICODE
if (PyUnicode_Check(obj)) {
#ifdef HAVE_USABLE_WCHAR_T
_______________________________________________
Python-3000-checkins mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000-checkins