eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/strutil.py
changeset 69 c6bca38c1cbf
equal deleted inserted replaced
68:5ff1fc726848 69:c6bca38c1cbf
       
     1 # strutil.py - string utilities for Mercurial
       
     2 #
       
     3 # Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com>
       
     4 #
       
     5 # This software may be used and distributed according to the terms of the
       
     6 # GNU General Public License version 2 or any later version.
       
     7 
       
     8 def findall(haystack, needle, start=0, end=None):
       
     9     if end is None:
       
    10         end = len(haystack)
       
    11     if end < 0:
       
    12         end += len(haystack)
       
    13     if start < 0:
       
    14         start += len(haystack)
       
    15     while start < end:
       
    16         c = haystack.find(needle, start, end)
       
    17         if c == -1:
       
    18             break
       
    19         yield c
       
    20         start = c + 1
       
    21 
       
    22 def rfindall(haystack, needle, start=0, end=None):
       
    23     if end is None:
       
    24         end = len(haystack)
       
    25     if end < 0:
       
    26         end += len(haystack)
       
    27     if start < 0:
       
    28         start += len(haystack)
       
    29     while end >= 0:
       
    30         c = haystack.rfind(needle, start, end)
       
    31         if c == -1:
       
    32             break
       
    33         yield c
       
    34         end = c - 1