fix a struct regression where long would be returned for short unsigned integers
diff --git a/Modules/_struct.c b/Modules/_struct.c
index ec896bf..1c885b7 100644
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -609,6 +609,9 @@
#ifdef PY_USE_INT_WHEN_POSSIBLE
if (x <= INT_MAX)
return PyInt_FromLong((long)x);
+#else
+ if (SIZEOF_LONG > f->size)
+ return PyInt_FromLong((long)x);
#endif
return PyLong_FromUnsignedLong(x);
}
@@ -805,6 +808,9 @@
#ifdef PY_USE_INT_WHEN_POSSIBLE
if (x <= INT_MAX)
return PyInt_FromLong((long)x);
+#else
+ if (SIZEOF_LONG > f->size)
+ return PyInt_FromLong((long)x);
#endif
return PyLong_FromUnsignedLong((long)x);
}