* Include/classobject.h, Objects/classobject.c, Python/ceval.c:
	entirely redone operator overloading.  The rules for class
	instances are now much more relaxed than for other built-in types
	(whose coerce must still return two objects of the same type)

	* Objects/floatobject.c: add overflow check when converting float
	to int and implement truncation towards zero using ceil/float

	* Objects/longobject.c: change ValueError to OverflowError when
	converting to int

	* Objects/rangeobject.c: modernized

	* Objects/stringobject.c: use HAVE_LIMITS instead of __STDC__

	* Objects/xxobject.c: changed to use new style (not finished?)
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 4221d68..359e4e9 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -32,7 +32,7 @@
 int null_strings, one_strings;
 #endif
 
-#ifdef __STDC__
+#ifdef HAVE_LIMITS_H
 #include <limits.h>
 #else
 #ifndef UCHAR_MAX