[Patches] [ python-Patches-1770355 ] ctypes: c_char now uses bytes and not str (unicode)

SourceForge.net noreply at sourceforge.net
Wed Aug 8 21:51:12 CEST 2007


Patches item #1770355, was opened at 2007-08-08 21:51
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1770355&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Library (Lib)
Group: Python 3000
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: STINNER Victor (haypo)
Assigned to: Nobody/Anonymous (nobody)
Summary: ctypes: c_char now uses bytes and not str (unicode)

Initial Comment:
Hi,

I hear Guido's request to fix last py3k-struni bugs. I downloaded subversion trunk and started to work on ctypes tests.

The problem is that ctypes c_char (and c_char_p) creates unicode string instead of byte string. I attached a proposition (patch) to change this behaviour (use bytes for c_char).

So in next example, it will display 'bytes' and not 'str':
  from ctypes import c_buffer, c_char
  buf = c_buffer("abcdef")
  print (type(buf[0]))

Other behaviour changes:
 - repr(c_char) adds a "b". Eg. repr(c_char('x')) is "c_char(b'x')" instead of "c_char('x')"
 - bytes is mutable whereas str is not: this may break some modules based on ctypes

Victor Stinner aka haypo

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1770355&group_id=5470


More information about the Patches mailing list