Michael Rolle added the comment: Similar problem with 2.7.8 with cygwin.
My example is: Python 2.7.8 (default, Jul 25 2014, 14:04:36) [GCC 4.8.3] on cygwin Type "help", "copyright", "credits" or "license" for more information. >>> from ctypes import * >>> class C (BigEndianStructure): _fields_ = (('rva', c_uint, 31), ('fl', >>> c_uint, 1)) ... >>> buffer(x)[:]; x.rva; x.fl '\x00\x00\x00\x00' 0L 0L >>> x.rva = 256 >>> buffer(x)[:]; x.rva; x.fl '\x00\x00\x02\x00' 256L 0L >>> x.rva = 256 >>> buffer(x)[:]; x.rva; x.fl '\x00\x00\x02\x00' 256L 0L >>> x.fl = 1 >>> buffer(x)[:]; x.rva; x.fl '\x00\x02\x00\x01' 65536L 1L >>> x.fl = 1 >>> buffer(x)[:]; x.rva; x.fl '\x01\x00\x02\x01' 8388864L 1L >>> x.fl = 1 >>> buffer(x)[:]; x.rva; x.fl '\x01\x02\x00\x01' 8454144L 1L >>> x.fl = 1 >>> buffer(x)[:]; x.rva; x.fl '\x01\x00\x02\x01' 8388864L 1L >>> x.rva = 256 >>> buffer(x)[:]; x.rva; x.fl '\x00\x00\x02\x01' 256L 1L >>> x.rva = 256 >>> buffer(x)[:]; x.rva; x.fl '\x00\x00\x02\x00' 256L 0L >>> x.rva = 256 >>> buffer(x)[:]; x.rva; x.fl '\x00\x00\x02\x00' 256L 0L I'm disappointed that this bug hasn't been fixed after two years! I understand that ctypes might not be portable across different platforms. However, the above behavior is clearly wrong. BTW, I also have Python 2.7.8 (default, Jun 30 2014, 16:08:48) [MSC v.1500 64 bit (AMD64)] on win32, and this version works fine. ---------- nosy: +mrolle _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue20629> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com