[Python-checkins] CVS: python/dist/src/Objects fileobject.c,2.109,2.109.2.1

Guido van Rossum gvanrossum@usw-pr-cvs1.sourceforge.net
Tue, 13 Mar 2001 08:54:18 -0800


Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv19919

Modified Files:
      Tag: iter-branch
	fileobject.c 
Log Message:
Another *EXPERIMENTAL* quickie on the "iter-branch" branch: implement
"for line in file" (but not "if line in file").


Index: fileobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/fileobject.c,v
retrieving revision 2.109
retrieving revision 2.109.2.1
diff -C2 -r2.109 -r2.109.2.1
*** fileobject.c	2001/03/01 18:26:53	2.109
--- fileobject.c	2001/03/13 16:54:15	2.109.2.1
***************
*** 1298,1301 ****
--- 1298,1316 ----
  }
  
+ static PyObject *
+ file_getiter(PyFileObject *f)
+ {
+ 	static PyObject *es;
+ 	PyObject *iter;
+ 	PyObject *rl = Py_FindMethod(file_methods, (PyObject *)f, "readline");
+ 	if (rl == NULL)
+ 		return NULL;
+ 	if (es == NULL)
+ 		es = PyString_FromString("");
+ 	iter = PyCallIter_New(rl, es);
+ 	Py_DECREF(rl);
+ 	return iter;
+ }
+ 
  PyTypeObject PyFile_Type = {
  	PyObject_HEAD_INIT(&PyType_Type)
***************
*** 1304,1313 ****
  	sizeof(PyFileObject),
  	0,
! 	(destructor)file_dealloc, /*tp_dealloc*/
! 	0,		/*tp_print*/
! 	(getattrfunc)file_getattr, /*tp_getattr*/
! 	(setattrfunc)file_setattr, /*tp_setattr*/
! 	0,		/*tp_compare*/
! 	(reprfunc)file_repr, /*tp_repr*/
  };
  
--- 1319,1344 ----
  	sizeof(PyFileObject),
  	0,
! 	(destructor)file_dealloc,		/* tp_dealloc */
! 	0,					/* tp_print */
! 	(getattrfunc)file_getattr,		/* tp_getattr */
! 	(setattrfunc)file_setattr,		/* tp_setattr */
! 	0,					/* tp_compare */
! 	(reprfunc)file_repr,			/* tp_repr */
! 	0,					/* tp_as_number */
! 	0,					/* tp_as_sequence */
! 	0,					/* tp_as_mapping */
! 	0,					/* tp_hash */
! 	0,					/* tp_call */
! 	0,					/* tp_str */
! 	0,					/* tp_getattro */
! 	0,					/* tp_setattro */
! 	0,					/* tp_as_buffer */
! 	Py_TPFLAGS_DEFAULT,			/* tp_flags */
!  	0,					/* tp_doc */
!  	0,					/* tp_traverse */
!  	0,					/* tp_clear */
! 	0,					/* tp_richcompare */
! 	0,					/* tp_weaklistoffset */
! 	(getiterfunc)file_getiter,		/* tp_iter */
  };
  
***************
*** 1478,1482 ****
  	return fd;
  }
- 
- 
- 
--- 1509,1510 ----