summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorFredrik Lundh <fredrik@pythonware.com>2000-08-09 09:14:35 (GMT)
committerFredrik Lundh <fredrik@pythonware.com>2000-08-09 09:14:35 (GMT)
commit58100644763c172253925c1883ae43a69cfebae9 (patch)
treefc5834080a03107c5cb6be80a030ea6541f0d9f3 /Modules
parent8e6d571a7c7853a98e032859e79a624528ec8842 (diff)
downloadcpython-58100644763c172253925c1883ae43a69cfebae9.zip
cpython-58100644763c172253925c1883ae43a69cfebae9.tar.gz
cpython-58100644763c172253925c1883ae43a69cfebae9.tar.bz2
-- changed findall to return empty strings instead of None
for undefined groups
Diffstat (limited to 'Modules')
-rw-r--r--Modules/_sre.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/Modules/_sre.c b/Modules/_sre.c
index a0e284d..b87282c 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -15,6 +15,7 @@
* 00-08-01 fl fixes for 1.6b1 (0.9.8)
* 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.
*
@@ -568,9 +569,8 @@ SRE_MATCH(SRE_STATE* state, SRE_CODE* pattern, int level)
TRACE(("|%p|%p|ENTER %d\n", pattern, ptr, level));
#if defined(USE_STACKCHECK)
- if (level % 10 == 0 && PyOS_CheckStack()) {
+ if (level % 10 == 0 && PyOS_CheckStack())
return SRE_ERROR_RECURSION_LIMIT;
- }
#endif
#if defined(USE_RECURSION_LIMIT)
@@ -1352,20 +1352,20 @@ state_fini(SRE_STATE* state)
LOCAL(PyObject*)
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]) {
- Py_INCREF(Py_None);
- return Py_None;
+ 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,
- ((char*)state->mark[index] - (char*)state->beginning) /
- state->charsize,
- ((char*)state->mark[index+1] - (char*)state->beginning) /
- state->charsize
- );
+ return PySequence_GetSlice(string, i, j);
}
static void