[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);
}