[Python-checkins] CVS: python/dist/src/Objects rangeobject.c,2.20,2.20.2.1
Moshe Zadka
moshez@users.sourceforge.net
Fri, 30 Mar 2001 08:49:09 -0800
Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv25889/Objects
Modified Files:
Tag: release20-maint
rangeobject.c
Log Message:
Fixing #121965 -- containment in xrange objects.
Index: rangeobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/rangeobject.c,v
retrieving revision 2.20
retrieving revision 2.20.2.1
diff -C2 -r2.20 -r2.20.2.1
*** rangeobject.c 2000/09/01 23:29:27 2.20
--- rangeobject.c 2001/03/30 16:49:06 2.20.2.1
***************
*** 3,6 ****
--- 3,8 ----
#include "Python.h"
+ #include "structmember.h"
+ #include <string.h>
typedef struct {
***************
*** 194,212 ****
return -1;
! if (num < r->start || (num - r->start) % r->step)
! return 0;
! if (num > (r->start + (r->len * r->step)))
! return 0;
return 1;
}
static PySequenceMethods range_as_sequence = {
! (inquiry)range_length, /*sq_length*/
(binaryfunc)range_concat, /*sq_concat*/
(intargfunc)range_repeat, /*sq_repeat*/
(intargfunc)range_item, /*sq_item*/
(intintargfunc)range_slice, /*sq_slice*/
! 0, /*sq_ass_item*/
! 0, /*sq_ass_slice*/
(objobjproc)range_contains, /*sq_contains*/
};
--- 196,222 ----
return -1;
! if (r->step > 0) {
! if ((num < r->start) || ((num - r->start) % r->step))
! return 0;
! if (num >= (r->start + (r->len * r->step)))
! return 0;
! }
! else {
! if ((num > r->start) || ((num - r->start) % r->step))
! return 0;
! if (num <= (r->start + (r->len * r->step)))
! return 0;
! }
return 1;
}
static PySequenceMethods range_as_sequence = {
! (inquiry)range_length, /*sq_length*/
(binaryfunc)range_concat, /*sq_concat*/
(intargfunc)range_repeat, /*sq_repeat*/
(intargfunc)range_item, /*sq_item*/
(intintargfunc)range_slice, /*sq_slice*/
! 0, /*sq_ass_item*/
! 0, /*sq_ass_slice*/
(objobjproc)range_contains, /*sq_contains*/
};