Make subclasses of int, long, complex, float, and unicode perform type
conversion using the proper magic slot (e.g., __int__()). Also move conversion
code out of PyNumber_*() functions in the C API into the nb_* function.
Applied patch #1109424. Thanks Walter Doewald.
diff --git a/Misc/NEWS b/Misc/NEWS
index 3c6b6c1..8d70fce 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,14 @@
Core and builtins
-----------------
+- patch #1109424: int, long, float, complex, and unicode now check for the
+ proper magic slot for type conversions when subclassed. Previously the
+ magic slot was ignored during conversion. Semantics now match the way
+ subclasses of str always behaved. int/long/float, conversion of an instance
+ to the base class has been moved the prroper nb_* magic slot and out of
+ PyNumber_*().
+ Thanks Walter Dörwald.
+
- Descriptors defined in C with a PyGetSetDef structure, where the setter is
NULL, now raise an AttributeError when attempting to set or delete the
attribute. Previously a TypeError was raised, but this was inconsistent