On 2/14/06, M.-A. Lemburg <[EMAIL PROTECTED]> wrote: > Martin v. Löwis wrote: > > 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 > >>> PyObject_SetAttrString(). 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 PY_VERSION_HEX >= 0x02050000 > >> # define Py_KEYWORDS_STRING_TYPE const char > >> #else > >> # define Py_KEYWORDS_STRING_TYPE char > >> #endif > >> ... > >> static Py_KEYWORDS_STRING_TYPE *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? > > I did read Tim's post: sorry for phrasing the reply the way I did. > > I was referring to his statement "nobody complains about tacking "const" > on to a former honest-to-God "char *" argument that was in fact not > modified". > > Also: it's not me complaining, it's the compilers !
Tim was talking about adding const to a char* not adding const to a char** (note the two stars). The subsequent discussion has been about the different way those are handled in C and C++ and a general agreement that the "const char**" has been a bother for people. Jeremy _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com