| --- a/Objects/bytesobject.c Mon Apr 18 16:25:56 2011 +0200 |
| +++ b/Objects/bytesobject.c Mon Apr 18 17:13:04 2011 +0200 |
| @@ -1567,19 +1567,9 @@ |
| const char *sub; |
| Py_ssize_t sub_len; |
| Py_ssize_t start=0, end=PY_SSIZE_T_MAX; |
| - PyObject *obj_start=Py_None, *obj_end=Py_None; |
| - |
| - if (!PyArg_ParseTuple(args, "O|OO:find/rfind/index/rindex", &subobj, |
| - &obj_start, &obj_end)) |
| - return -2; |
| - /* To support None in "start" and "end" arguments, meaning |
| - the same as if they were not passed. |
| - */ |
| - if (obj_start != Py_None) |
| - if (!_PyEval_SliceIndex(obj_start, &start)) |
| - return -2; |
| - if (obj_end != Py_None) |
| - if (!_PyEval_SliceIndex(obj_end, &end)) |
| + |
| + if (!stringlib_parse_args_finds("find/rfind/index/rindex", |
| + args, &subobj, &start, &end)) |
| return -2; |
| if (PyBytes_Check(subobj)) { |
| @@ -1826,8 +1816,7 @@ |
| Py_ssize_t sub_len; |
| Py_ssize_t start = 0, end = PY_SSIZE_T_MAX; |
| - if (!PyArg_ParseTuple(args, "O|O&O&:count", &sub_obj, |
| - _PyEval_SliceIndex, &start, _PyEval_SliceIndex, &end)) |
| + if (!stringlib_parse_args_finds("count", args, &sub_obj, &start, &end)) |
| return NULL; |
| if (PyBytes_Check(sub_obj)) { |
| @@ -2648,8 +2637,7 @@ |
| PyObject *subobj; |
| int result; |
| - if (!PyArg_ParseTuple(args, "O|O&O&:startswith", &subobj, |
| - _PyEval_SliceIndex, &start, _PyEval_SliceIndex, &end)) |
| + if (!stringlib_parse_args_finds("startswith", args, &subobj, &start, &end)) |
| return NULL; |
| if (PyTuple_Check(subobj)) { |
| Py_ssize_t i; |
| @@ -2689,8 +2677,7 @@ |
| PyObject *subobj; |
| int result; |
| - if (!PyArg_ParseTuple(args, "O|O&O&:endswith", &subobj, |
| - _PyEval_SliceIndex, &start, _PyEval_SliceIndex, &end)) |
| + if (!stringlib_parse_args_finds("endswith", args, &subobj, &start, &end)) |
| return NULL; |
| if (PyTuple_Check(subobj)) { |
| Py_ssize_t i; |