Merged revisions 70342,70385-70387,70389-70390,70392-70393,70395,70400,70405-70406,70418,70438,70464,70468 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r70342 | georg.brandl | 2009-03-13 14:03:58 -0500 (Fri, 13 Mar 2009) | 1 line

  #5486: typos.
........
  r70385 | benjamin.peterson | 2009-03-15 09:38:55 -0500 (Sun, 15 Mar 2009) | 1 line

  fix tuple.index() error message #5495
........
  r70386 | georg.brandl | 2009-03-15 16:32:06 -0500 (Sun, 15 Mar 2009) | 1 line

  #5496: fix docstring of lookup().
........
  r70387 | georg.brandl | 2009-03-15 16:37:16 -0500 (Sun, 15 Mar 2009) | 1 line

  #5493: clarify __nonzero__ docs.
........
  r70389 | georg.brandl | 2009-03-15 16:43:38 -0500 (Sun, 15 Mar 2009) | 1 line

  Fix a small nit in the error message if bool() falls back on __len__ and it returns the wrong type: it would tell the user that __nonzero__ should return bool or int.
........
  r70390 | georg.brandl | 2009-03-15 16:44:43 -0500 (Sun, 15 Mar 2009) | 1 line

  #5491: clarify nested() semantics.
........
  r70392 | georg.brandl | 2009-03-15 16:46:00 -0500 (Sun, 15 Mar 2009) | 1 line

  #5488: add missing struct member.
........
  r70393 | georg.brandl | 2009-03-15 16:47:42 -0500 (Sun, 15 Mar 2009) | 1 line

  #5478: fix copy-paste oversight in function signature.
........
  r70395 | georg.brandl | 2009-03-15 16:51:48 -0500 (Sun, 15 Mar 2009) | 1 line

  #5276: document IDLESTARTUP and .Idle.py.
........
  r70400 | georg.brandl | 2009-03-15 16:59:37 -0500 (Sun, 15 Mar 2009) | 3 lines

  Fix markup in re docs and give a mail address in regex howto, so that
  the recommendation to send suggestions to the author can be followed.
........
  r70405 | georg.brandl | 2009-03-15 17:11:07 -0500 (Sun, 15 Mar 2009) | 7 lines

  Move the previously local import of threading to module level.

  This is cleaner and avoids lockups in obscure cases where a Queue
  is instantiated while the import lock is already held by another thread.

  OKed by Tim Peters.
........
  r70406 | hirokazu.yamamoto | 2009-03-15 17:43:14 -0500 (Sun, 15 Mar 2009) | 1 line

  Added skip for old MSVC.
........
  r70418 | georg.brandl | 2009-03-16 14:42:03 -0500 (Mon, 16 Mar 2009) | 1 line

  Add token markup.
........
  r70438 | benjamin.peterson | 2009-03-17 15:29:51 -0500 (Tue, 17 Mar 2009) | 1 line

  I thought this was begging for an example
........
  r70464 | benjamin.peterson | 2009-03-18 15:58:09 -0500 (Wed, 18 Mar 2009) | 1 line

  a much better example
........
  r70468 | benjamin.peterson | 2009-03-18 22:04:31 -0500 (Wed, 18 Mar 2009) | 1 line

  close files after comparing them
........
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index a362b84..47bc0bb 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -4785,7 +4785,7 @@
 	PyObject *func, *args;
 	static PyObject *bool_str, *len_str;
 	int result = -1;
-	int from_len = 0;
+	int using_len = 0;
 
 	func = lookup_maybe(self, "__bool__", &bool_str);
 	if (func == NULL) {
@@ -4794,14 +4794,14 @@
 		func = lookup_maybe(self, "__len__", &len_str);
 		if (func == NULL)
 			return PyErr_Occurred() ? -1 : 1;
-		from_len = 1;
- 	}
+		using_len = 1;
+	}
 	args = PyTuple_New(0);
 	if (args != NULL) {
 		PyObject *temp = PyObject_Call(func, args, NULL);
 		Py_DECREF(args);
 		if (temp != NULL) {
-			if (from_len) {
+			if (using_len) {
 				/* enforced by slot_nb_len */
 				result = PyObject_IsTrue(temp);
 			}
@@ -4810,9 +4810,11 @@
 			}
 			else {
 				PyErr_Format(PyExc_TypeError,
-					 "__bool__ should return "
-					 "bool, returned %s",
-					 Py_TYPE(temp)->tp_name);
+					     "%s should return "
+					     "bool or int, returned %s",
+					     (using_len ? "__len__"
+					                : "__bool__"),
+					     Py_TYPE(temp)->tp_name);
 				result = -1;
 			}
 			Py_DECREF(temp);