[Python-Dev] Baffled by PyArg_ParseTupleAndKeywords modification (original) (raw)

"Martin v. Löwis" martin at v.loewis.de
Tue Feb 14 08:04:50 CET 2006


M.-A. Lemburg wrote:

It's the consequences: nobody complains about tacking "const" on to a former honest-to-God "char *" argument that was in fact not modified, because that's not only helpful for C++ programmers, it's harmless for all programmers. For example, nobody could sanely object (and nobody did :-)) to adding const to the attribute-name argument in PyObjectSetAttrString(). Sticking to that creates no new problems for anyone, so that's as far as I ever went.

Well, it broke my C extensions... I now have this in my code: /* The keyword array changed to const char* in Python 2.5 */ #if PYVERSIONHEX >= 0x02050000 # define PyKEYWORDSSTRINGTYPE const char #else # define PyKEYWORDSSTRINGTYPE char #endif ... static PyKEYWORDSSTRINGTYPE *kwslist[] = {"yada", NULL}; ...

You did not read Tim's message carefully enough. He wasn't talking about PyArg_ParseTupleAndKeywords at all. He only talked about changing char* arguments to const char*, e.g. in PyObject_SetAttrString. Did that break your C extensions also?

Regards, Martin



More information about the Python-Dev mailing list