[Python-checkins] r47170 - python/trunk/Modules/_ctypes/callproc.c

Neal Norwitz nnorwitz at gmail.com
Fri Jun 30 19:04:18 CEST 2006


Whoops, you're right. I'll try to remember to fix this when I get home
tonight...unless someone beats me to it. :-)

n
--

On 6/30/06, Tim Peters <tim.peters at gmail.com> wrote:
> > Author: neal.norwitz
> > Date: Fri Jun 30 09:32:16 2006
> > New Revision: 47170
> >
> > Modified:
> >    python/trunk/Modules/_ctypes/callproc.c
> > Log:
> > Silence compiler warning
> >
> > Modified: python/trunk/Modules/_ctypes/callproc.c
> > ==============================================================================
> > --- python/trunk/Modules/_ctypes/callproc.c     (original)
> > +++ python/trunk/Modules/_ctypes/callproc.c     Fri Jun 30 09:32:16 2006
> > @@ -82,6 +82,10 @@
> >  #define DONT_USE_SEH
> >  #endif
> >
> > +#ifndef PY_FORMAT_SIZE_T
> > +#define PY_FORMAT_SIZE_T ""
> > +#endif
> > +
> >  #ifdef MS_WIN32
> >  PyObject *ComError;
> >
> > @@ -1486,7 +1490,8 @@
> >         }
> >         if (size < dict->size) {
> >                 PyErr_Format(PyExc_ValueError,
> > -                            "minimum size is %d", dict->size);
> > +                            "minimum size is %" PY_FORMAT_SIZE_T "d",
> > +                            dict->size);
>
> Unfortunately, that doesn't make sense -- there's no guarantee that
> PyErr_Format() can understand PY_FORMAT_SIZE_T's expansion.
> PY_FORMAT_SIZE_T should only be used in calls to C's format functions
> (like printf or sprintf).  PyErr_Format() in 2.5 makes sense of "%zd"
> itself, but before 2.5 does not, so "%zd" can't be used here either.
>
> #if PY_VERSION_HEX < 0x02050000
>                             "minimum size is %d", dict->size);
> #else
>                             "minimum size is %zd", dict->size);
> #endif
>
> makes sense.  That directly reflects that this module uses C int
> before 2.5, but uses Py_ssize_t starting with 2.5.
> _______________________________________________
> Python-checkins mailing list
> Python-checkins at python.org
> http://mail.python.org/mailman/listinfo/python-checkins
>


More information about the Python-checkins mailing list