mirror of
https://github.com/python/cpython.git
synced 2025-07-12 13:55:34 +00:00
Added support for H (unsigned short) specifier in PyArg_ParseTuple and
Py_BuildValue.
This commit is contained in:
parent
63f3d17418
commit
d50338fbd9
2 changed files with 30 additions and 1 deletions
|
@ -489,6 +489,27 @@ convertsimple1(arg, p_format, p_va)
|
|||
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 @@ convertsimple1(arg, p_format, p_va)
|
|||
*p = ival;
|
||||
break;
|
||||
}
|
||||
|
||||
case 'l': /* long int */
|
||||
{
|
||||
long *p = va_arg(*p_va, long *);
|
||||
|
@ -1207,6 +1227,12 @@ skipitem(p_format, p_va)
|
|||
break;
|
||||
}
|
||||
|
||||
case 'H': /* unsigned short int */
|
||||
{
|
||||
(void) va_arg(*p_va, unsigned short *);
|
||||
break;
|
||||
}
|
||||
|
||||
case 'i': /* int */
|
||||
{
|
||||
(void) va_arg(*p_va, int *);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue