[issue39593] Adding a unit test of ctypes
STINNER Victor
report at bugs.python.org
Mon Feb 10 07:57:06 EST 2020
STINNER Victor <vstinner at python.org> added the comment:
Using strlen() seems to be as old as ctypes itself.
--
I don't know which behavior is correct. It's a little bit strange that ctypes truncate the string at "\0". A "char" buffer can be an arbitrary array of bytes. It may be a binary format which doesn't use null byte as string terminator, but just to encode a 16-bit integer as two bytes.
My attempt to understand the current behavior:
https://github.com/python/cpython/pull/18419#pullrequestreview-355606890
"size = strlen(data);" instruction was added when the ctypes was added by this commit:
commit d4c9320412177895f598a93d73a0e654db27c351
Author: Thomas Heller <theller at ctypes.org>
Date: Wed Mar 8 19:35:11 2006 +0000
Copy ctypes-0.9.9.4 sources from external into the trunk.
Sadly, Thomas Heller no longer contributes to Python since 2011:
https://blog.python.org/2011/04/thomas-heller-steps-down-as-ctypes.html
The original project is hosted at:
https://sourceforge.net/p/ctypes/code/
It seems like s_set() function was added between these source/cfield.c two versions:
revision 1.116
date: 2006/03/15 20:35:55; author: theller; state: Exp; lines: +14 -4
PyString_FromFormat()b understands the C99 "z" qualifier on all
platforms, in Python 2.5. Patch from Tim Peters, adapted to work with
older Python versions.
revision 1.115
date: 2006/03/03 20:17:15; author: theller; state: Exp; lines: +636 -279
Moving files from branch_1_0 to HEAD.
Sadly, the commit message doesn't say much about the rationale.
----------
nosy: +vstinner
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue39593>
_______________________________________
More information about the Python-bugs-list
mailing list