[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*/
  };