Commit d50338fb authored by Jack Jansen's avatar Jack Jansen

Added support for H (unsigned short) specifier in PyArg_ParseTuple and

Py_BuildValue.
parent 63f3d174
...@@ -489,6 +489,27 @@ convertsimple1(arg, p_format, p_va) ...@@ -489,6 +489,27 @@ convertsimple1(arg, p_format, p_va)
break; 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 */ case 'i': /* signed int */
{ {
int *p = va_arg(*p_va, int *); int *p = va_arg(*p_va, int *);
...@@ -509,7 +530,6 @@ convertsimple1(arg, p_format, p_va) ...@@ -509,7 +530,6 @@ convertsimple1(arg, p_format, p_va)
*p = ival; *p = ival;
break; break;
} }
case 'l': /* long int */ case 'l': /* long int */
{ {
long *p = va_arg(*p_va, long *); long *p = va_arg(*p_va, long *);
...@@ -1207,6 +1227,12 @@ skipitem(p_format, p_va) ...@@ -1207,6 +1227,12 @@ skipitem(p_format, p_va)
break; break;
} }
case 'H': /* unsigned short int */
{
(void) va_arg(*p_va, unsigned short *);
break;
}
case 'i': /* int */ case 'i': /* int */
{ {
(void) va_arg(*p_va, int *); (void) va_arg(*p_va, int *);
......
...@@ -279,6 +279,9 @@ do_mkvalue(p_format, p_va) ...@@ -279,6 +279,9 @@ do_mkvalue(p_format, p_va)
case 'i': case 'i':
return PyInt_FromLong((long)va_arg(*p_va, int)); return PyInt_FromLong((long)va_arg(*p_va, int));
case 'H':
return PyInt_FromLong((long)va_arg(*p_va, unsigned int));
case 'l': case 'l':
return PyInt_FromLong((long)va_arg(*p_va, long)); return PyInt_FromLong((long)va_arg(*p_va, long));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment