Mercurial > cpython-lru_cache-weakref
diff Python/getargs.c @ 13378:113d833eea7e legacy-trunk
Added support for H (unsigned short) specifier in PyArg_ParseTuple and
Py_BuildValue.
| author | Jack Jansen <jack.jansen@cwi.nl> |
|---|---|
| date | Thu, 06 Jul 2000 12:22:00 +0000 |
| parents | 83377fc298d8 |
| children | a89f7f268de4 |
line wrap: on
line diff
--- a/Python/getargs.c Thu Jul 06 11:29:01 2000 +0000 +++ b/Python/getargs.c Thu Jul 06 12:22:00 2000 +0000 @@ -489,6 +489,27 @@ break; } + case 'H': /* unsigned short int */ + { + unsigned short *p = va_arg(*p_va, unsigned short *); + long ival = PyInt_AsLong(arg); + if (ival == -1 && PyErr_Occurred()) + return "integer<H>"; + else if (ival < 0) { + PyErr_SetString(PyExc_OverflowError, + "unsigned short integer is less than minimum"); + return "integer<H>"; + } + else if (ival > USHRT_MAX) { + PyErr_SetString(PyExc_OverflowError, + "unsigned short integer is greater than maximum"); + return "integer<H>"; + } + else + *p = (unsigned short) ival; + break; + } + case 'i': /* signed int */ { int *p = va_arg(*p_va, int *); @@ -509,7 +530,6 @@ *p = ival; break; } - case 'l': /* long int */ { long *p = va_arg(*p_va, long *); @@ -1207,6 +1227,12 @@ break; } + case 'H': /* unsigned short int */ + { + (void) va_arg(*p_va, unsigned short *); + break; + } + case 'i': /* int */ { (void) va_arg(*p_va, int *);
