[Python-checkins] CVS: python/dist/src/Objects typeobject.c,2.37,2.38

Guido van Rossum gvanrossum@users.sourceforge.net
2001年8月16日 11:52:46 -0700


Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv20253
Modified Files:
	typeobject.c 
Log Message:
Fix object_repr() to include the module (using the same rules as
type_repr() for when to show or not to show it).
Index: typeobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/typeobject.c,v
retrieving revision 2.37
retrieving revision 2.38
diff -C2 -d -r2.37 -r2.38
*** typeobject.c	2001年08月16日 15:42:49	2.37
--- typeobject.c	2001年08月16日 18:52:43	2.38
***************
*** 913,919 ****
 object_repr(PyObject *self)
 {
! 	char buf[120];
 
! 	sprintf(buf, "<%.80s object at %p>", self->ob_type->tp_name, self);
 	return PyString_FromString(buf);
 }
--- 913,940 ----
 object_repr(PyObject *self)
 {
! 	PyTypeObject *type;
! 	PyObject *mod, *name;
! 	char buf[200];
 
! 	type = self->ob_type;
! 	mod = type_module(type, NULL);
! 	if (mod == NULL)
! 		PyErr_Clear();
! 	else if (!PyString_Check(mod)) {
! 		Py_DECREF(mod);
! 		mod = NULL;
! 	}
! 	name = type_name(type, NULL);
! 	if (name == NULL)
! 		return NULL;
! 	if (mod != NULL && strcmp(PyString_AS_STRING(mod), "__builtin__"))
! 		sprintf(buf, "<%.80s.%.80s instance at %p>",
! 			PyString_AS_STRING(mod),
! 			PyString_AS_STRING(name),
! 			self);
! 	else
! 		sprintf(buf, "<%.80s instance at %p>", type->tp_name, self);
! 	Py_XDECREF(mod);
! 	Py_DECREF(name);
 	return PyString_FromString(buf);
 }

AltStyle によって変換されたページ (->オリジナル) /