[Python-checkins] CVS: python/dist/src/Objects rangeobject.c,2.16,2.17
Fred L. Drake
python-dev@python.org
Thu, 3 Aug 2000 10:43:05 -0700
Update of /cvsroot/python/python/dist/src/Objects
In directory slayer.i.sourceforge.net:/tmp/cvs-serv28227
Modified Files:
rangeobject.c
Log Message:
Remove the tp_print handler.
Revise the tp_repr handler to produce a more "minimal" presentation.
Make the tolist() method use PyArg_ParseTuple() and provide a docstring.
Index: rangeobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/rangeobject.c,v
retrieving revision 2.16
retrieving revision 2.17
diff -C2 -r2.16 -r2.17
*** rangeobject.c 2000/07/09 06:21:27 2.16
--- rangeobject.c 2000/08/03 17:43:02 2.17
***************
*** 59,92 ****
}
- static int
- range_print(rangeobject *r, FILE *fp, int flags)
- {
- int i, j;
-
- fprintf(fp, "(");
- for (i = 0; i < r->reps; ++i)
- for (j = 0; j < r->len; ++j) {
- if (j > 0 || i > 0)
- fprintf(fp, ", ");
-
- fprintf(fp, "%ld", r->start + j * r->step);
- }
-
- if (r->len == 1 && r->reps == 1)
- fprintf(fp, ",");
- fprintf(fp, ")");
- return 0;
- }
-
static PyObject *
range_repr(rangeobject *r)
{
! char buf[80];
! sprintf(buf, "(xrange(%ld, %ld, %ld) * %d)",
! r->start,
! r->start + r->len * r->step,
! r->step,
! r->reps);
! return PyString_FromString(buf);
}
--- 59,86 ----
}
static PyObject *
range_repr(rangeobject *r)
{
! char buf1[80];
! char buf2[80];
!
! if (r->start == 0 && r->step == 1) {
! snprintf(buf1, sizeof(buf1), "xrange(%ld)",
! r->start + r->len * r->step);
! }
! else {
! char *fmt = "xrange(%ld, %ld, %ld)";
! if (r->step == 1)
! fmt = "xrange(%ld, %ld)";
! snprintf(buf1, sizeof(buf1), fmt,
! r->start,
! r->start + r->len * r->step,
! r->step);
! }
! if (r->reps != 1) {
! snprintf(buf2, sizeof(buf2),
! "(%s * %d)", buf1, r->reps);
! }
! return PyString_FromString(r->reps == 1 ? buf1 : buf2);
}
***************
*** 171,175 ****
int len = self->len * self->reps;
! if (! PyArg_Parse(args, ""))
return NULL;
--- 165,169 ----
int len = self->len * self->reps;
! if (! PyArg_ParseTuple(args, ":tolist"))
return NULL;
***************
*** 189,193 ****
{
static PyMethodDef range_methods[] = {
! {"tolist", (PyCFunction)range_tolist},
{NULL, NULL}
};
--- 183,189 ----
{
static PyMethodDef range_methods[] = {
! {"tolist", (PyCFunction)range_tolist, METH_VARARGS,
! "tolist() -> list\n"
! "Return a list object with the same values."},
{NULL, NULL}
};
***************
*** 229,237 ****
0, /* Item size for varobject */
(destructor)range_dealloc, /*tp_dealloc*/
! (printfunc)range_print, /*tp_print*/
(getattrfunc)range_getattr, /*tp_getattr*/
0, /*tp_setattr*/
(cmpfunc)range_compare, /*tp_compare*/
! (reprfunc)range_repr, /*tp_repr*/
0, /*tp_as_number*/
&range_as_sequence, /*tp_as_sequence*/
--- 225,233 ----
0, /* Item size for varobject */
(destructor)range_dealloc, /*tp_dealloc*/
! 0, /*tp_print*/
(getattrfunc)range_getattr, /*tp_getattr*/
0, /*tp_setattr*/
(cmpfunc)range_compare, /*tp_compare*/
! (reprfunc)range_repr, /*tp_repr*/
0, /*tp_as_number*/
&range_as_sequence, /*tp_as_sequence*/