if verbose:
print 'Running tests on character literals'
-for i in range(0, 256):
+for i in [0, 8, 16, 32, 64, 127, 128, 255]:
test(r"""sre.match("\%03o" % i, chr(i)) != None""", 1)
test(r"""sre.match("\%03o0" % i, chr(i)+"0") != None""", 1)
test(r"""sre.match("\%03o8" % i, chr(i)+"8") != None""", 1)
test(r"""sre.match('x*', 'xxxa').span()""", (0, 3))
test(r"""sre.match('a+', 'xxx')""", None)
+# bug 113254
+test(r"""sre.match('(a)|(b)', 'b').start(1)""", -1)
+test(r"""sre.match('(a)|(b)', 'b').end(1)""", -1)
+test(r"""sre.match('(a)|(b)', 'b').span(1)""", (-1, -1))
+
if verbose:
print 'Running tests on sre.sub'
* 00-08-07 fl use PyOS_CheckStack() if available
* 00-08-08 fl changed findall to return empty strings instead of None
* 00-08-27 fl properly propagate memory errors
+ * 00-09-02 fl return -1 instead of None for start/end/span
*
* Copyright (c) 1997-2000 by Secret Labs AB. All rights reserved.
*
return NULL;
}
- if (self->mark[index*2] < 0) {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
+ /* mark is -1 if group is undefined */
return Py_BuildValue("i", self->mark[index*2]);
}
return NULL;
}
- if (self->mark[index*2] < 0) {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
+ /* mark is -1 if group is undefined */
return Py_BuildValue("i", self->mark[index*2+1]);
}
return NULL;
}
- if (self->mark[index*2] < 0) {
- Py_INCREF(Py_None);
- Py_INCREF(Py_None);
- return Py_BuildValue("OO", Py_None, Py_None);
- }
-
+ /* marks are -1 if group is undefined */
return _pair(self->mark[index*2], self->mark[index*2+1]);
}