Get rid of builtin_open() entirely (the C code and docstring, not the
builtin function); Guido pointed out that it could be just another
name in the __builtin__ dict for the file constructor now.
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 0c285f6..64afb1b 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -1190,25 +1190,6 @@
 
 
 static PyObject *
-builtin_open(PyObject *self, PyObject *args)
-{
-	return PyFile_Type.tp_new(&PyFile_Type, args, NULL);
-}
-
-/* XXX Keep this in synch with file_doc in fileobject.c. */
-static char open_doc[] =
-"open(name[, mode[, buffering]]) -> file object\n"
-"\n"
-"Open a file.  The mode can be 'r', 'w' or 'a' for reading (default),\n"
-"writing or appending.  The file will be created if it doesn't exist\n"
-"when opened for writing or appending; it will be truncated when\n"
-"opened for writing.  Add a 'b' to the mode for binary files.\n"
-"Add a '+' to the mode to allow simultaneous reading and writing.\n"
-"If the buffering argument is given, 0 means unbuffered, 1 means line\n"
-"buffered, and larger numbers specify the buffer size.";
-
-
-static PyObject *
 builtin_ord(PyObject *self, PyObject* obj)
 {
 	long ord;
@@ -1802,7 +1783,6 @@
  	{"max",		builtin_max,        METH_VARARGS, max_doc},
  	{"min",		builtin_min,        METH_VARARGS, min_doc},
  	{"oct",		builtin_oct,        METH_O, oct_doc},
- 	{"open",	builtin_open,       METH_VARARGS, open_doc},
  	{"ord",		builtin_ord,        METH_O, ord_doc},
  	{"pow",		builtin_pow,        METH_VARARGS, pow_doc},
  	{"range",	builtin_range,      METH_VARARGS, range_doc},
@@ -1861,6 +1841,9 @@
 	SETBUILTIN("super",		&PySuper_Type);
 	SETBUILTIN("tuple",		&PyTuple_Type);
 	SETBUILTIN("type",		&PyType_Type);
+
+	/* Note that open() is just an alias of file(). */
+	SETBUILTIN("open",		&PyFile_Type);
 	SETBUILTIN("file",		&PyFile_Type);
 #ifdef Py_USING_UNICODE
 	SETBUILTIN("unicode",		&PyUnicode_Type);