mercurial/strutil.py
author Mads Kiilerich <madski@unity3d.com>
Thu, 28 Feb 2013 14:05:15 +0100
changeset 18732 1793251e75c8
parent 10263 25e572394f5c
child 25979 b723f05ec49b
permissions -rw-r--r--
largefiles: remove wrong comment on standin matcher and code for creating dirs The existence of these directories could not be relied on anyway and all dependencies on them should have been removed.

# strutil.py - string utilities for Mercurial
#
# Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.

def findall(haystack, needle, start=0, end=None):
    if end is None:
        end = len(haystack)
    if end < 0:
        end += len(haystack)
    if start < 0:
        start += len(haystack)
    while start < end:
        c = haystack.find(needle, start, end)
        if c == -1:
            break
        yield c
        start = c + 1

def rfindall(haystack, needle, start=0, end=None):
    if end is None:
        end = len(haystack)
    if end < 0:
        end += len(haystack)
    if start < 0:
        start += len(haystack)
    while end >= 0:
        c = haystack.rfind(needle, start, end)
        if c == -1:
            break
        yield c
        end = c - 1