mercurial/strutil.py
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Tue, 15 Jul 2014 23:34:13 +0900
changeset 21897 764adc332f6e
parent 10263 25e572394f5c
child 25979 b723f05ec49b
permissions -rw-r--r--
templatekw: add 'subrepos' keyword to show updated subrepositories 'subrepos' template keyword newly added by this patch shows updated subrepositories. For the compatibility with the list of subrepositories shown in the editor at commit: - 'subrepos' is empty, at revisions removing '.hgsub' itself - 'subrepos' is calculated between the revision and the first parent of it, at merge revisions To avoid silent regression, this patch also confirms "hg diff" of ".hgsubstate" and parents for each target revisions in the test.

# 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