pyexpat.errors is a *strange* module!

It gets initialized when pyexpat is imported, and is only accessible as an
attribute of pyexpat; it cannot be imported itself.  This allows it to at
least be importable after pyexpat itself has been imported by adding it
to sys.modules, so it is not quite as strange.

This arrangement needs to be better thought out.
diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index a403d94..e0c03f6 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -840,41 +840,43 @@
 void
 initpyexpat(){
 	PyObject *m, *d;
-        char *rev="$Revision$";
+	char *rev = "$Revision$";
 	PyObject *errors_module, *errors_dict;
+	PyObject *sys_modules;
 
-	Xmlparsetype.ob_type = &PyType_Type;
+        Xmlparsetype.ob_type = &PyType_Type;
 
 	/* Create the module and add the functions */
 	m = Py_InitModule4("pyexpat", pyexpat_methods,
-		pyexpat_module_documentation,
-		(PyObject*)NULL,PYTHON_API_VERSION);
+			   pyexpat_module_documentation,
+			   (PyObject*)NULL, PYTHON_API_VERSION);
 
 	/* Add some symbolic constants to the module */
 	d = PyModule_GetDict(m);
 	ErrorObject = PyString_FromString("pyexpat.error");
 	PyDict_SetItemString(d, "error", ErrorObject);
 
-	PyDict_SetItemString(d,"__version__",
+	PyDict_SetItemString(d, "__version__",
 			     PyString_FromStringAndSize(rev+11,
 							strlen(rev+11)-2));
 
-	errors_module=PyModule_New( "errors" );
-	PyDict_SetItemString(d,"errors", errors_module );
+	sys_modules = PySys_GetObject("modules");
+	errors_module = PyModule_New("pyexpat.errors");
+	PyDict_SetItemString(d, "errors", errors_module);
+	PyDict_SetItemString(sys_modules, "pyexpat.errors", errors_module);
 
 	/* XXX When Expat supports some way of figuring out how it was
 	   compiled, this should check and set native_encoding 
 	   appropriately. 
 	*/
 	PyDict_SetItemString(d, "native_encoding", 
-			     PyString_FromString("UTF-8") );
-			     
-	errors_dict=PyModule_GetDict( errors_module );
+			     PyString_FromString("UTF-8"));
+	errors_dict = PyModule_GetDict(errors_module);
 
 #define MYCONST(name) \
 	PyDict_SetItemString(errors_dict, #name,  \
-				PyString_FromString( XML_ErrorString(name)))
-		
+			     PyString_FromString(XML_ErrorString(name)))
+
 	MYCONST(XML_ERROR_NO_MEMORY);
 	MYCONST(XML_ERROR_SYNTAX);
 	MYCONST(XML_ERROR_NO_ELEMENTS);
@@ -894,7 +896,7 @@
 	MYCONST(XML_ERROR_MISPLACED_XML_PI);
 	MYCONST(XML_ERROR_UNKNOWN_ENCODING);
 	MYCONST(XML_ERROR_INCORRECT_ENCODING);
-	
+
 	/* Check for errors */
 	if (PyErr_Occurred())
 		Py_FatalError("can't initialize module pyexpat");
@@ -1030,4 +1032,3 @@
 
 {NULL, NULL, NULL } /* sentinel */
 };
-