[Python-checkins] CVS: python/dist/src/Modules _sre.c,2.35,2.36

Fredrik Lundh python-dev@python.org
Wed, 9 Aug 2000 02:14:37 -0700


Update of /cvsroot/python/python/dist/src/Modules
In directory slayer.i.sourceforge.net:/tmp/cvs-serv31772/Modules

Modified Files:
	_sre.c 
Log Message:


-- changed findall to return empty strings instead of None
   for undefined groups

Index: _sre.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/_sre.c,v
retrieving revision 2.35
retrieving revision 2.36
diff -C2 -r2.35 -r2.36
*** _sre.c	2000/08/07 21:02:50	2.35
--- _sre.c	2000/08/09 09:14:34	2.36
***************
*** 16,19 ****
--- 16,20 ----
   * 00-08-03 fl  added recursion limit
   * 00-08-07 fl  use PyOS_CheckStack() if available
+  * 00-08-08 fl  changed findall to return empty strings instead of None
   *
   * Copyright (c) 1997-2000 by Secret Labs AB.  All rights reserved.
***************
*** 569,575 ****
  
  #if defined(USE_STACKCHECK)
!     if (level % 10 == 0 && PyOS_CheckStack()) {
          return SRE_ERROR_RECURSION_LIMIT;
-     }
  #endif
  
--- 570,575 ----
  
  #if defined(USE_STACKCHECK)
!     if (level % 10 == 0 && PyOS_CheckStack())
          return SRE_ERROR_RECURSION_LIMIT;
  #endif
  
***************
*** 1353,1370 ****
  state_getslice(SRE_STATE* state, int index, PyObject* string)
  {
      index = (index - 1) * 2;
  
      if (string == Py_None || !state->mark[index] || !state->mark[index+1]) {
!         Py_INCREF(Py_None);
!         return Py_None;
      }
  
!     return PySequence_GetSlice(
!         string,
!         ((char*)state->mark[index] - (char*)state->beginning) /
!         state->charsize,
!         ((char*)state->mark[index+1] - (char*)state->beginning) /
!         state->charsize
!         );
  }
  
--- 1353,1370 ----
  state_getslice(SRE_STATE* state, int index, PyObject* string)
  {
+     int i, j;
+ 
      index = (index - 1) * 2;
  
      if (string == Py_None || !state->mark[index] || !state->mark[index+1]) {
!         i = j = 0;
!     } else {
!         i = ((char*)state->mark[index] - (char*)state->beginning) /
!             state->charsize;
!         j = ((char*)state->mark[index+1] - (char*)state->beginning) /
!             state->charsize;
      }
  
!     return PySequence_GetSlice(string, i, j);
  }