New submission from STINNER Victor <victor.stin...@haypocalc.com>:

ctypes doesn't have strict separation between bytes and characters, whereas 
Python3 splitted str/unicode of Python2 into bytes/str which a strict 
separation. The result is that sometimes it works (no error), sometimes it 
fails (the first time that the user inserts a non-ASCII character).

I wrote 3 patches:
 - ctypes_s_set.patch: fix s_set(), return an unicode string instead of a bytes 
string
 - ctypes_conversion.patch: remove ctypes.set_conversion_mode() and all code 
using it (remove the implicit conversions)
 - ctypes_tests.patch: fix all tests according the changes introduced by the 
two previous patches

ctypes_s_set.patch is trivial and fixes a real bug. ctypes_conversion.patch 
does basically remove code. ctypes_tests.patch is the biggest part because the 
test suite is mostly based on the implicit conversion.

Except the parts removing the calls to ctypes.set_conversion_mode() and the 
tests testing the implicit conversion, ctypes_tests.patch can be commited alone 
because it improves the test suite (use the right types).

----------
assignee: theller
components: Unicode, ctypes
files: ctypes_conversion.patch
keywords: patch
messages: 107499
nosy: haypo, theller
priority: normal
severity: normal
status: open
title: ctypes: remove implicit conversion between unicode and bytes
versions: Python 3.2
Added file: http://bugs.python.org/file17610/ctypes_conversion.patch

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue8966>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to