Mercurial > hg
annotate mercurial/strutil.py @ 7744:b44dbb95f07f
transplant: wrapped long lines
author | Martin Geisler <mg@daimi.au.dk> |
---|---|
date | Mon, 09 Feb 2009 00:14:07 +0100 |
parents | aecea6934fdd |
children | b7cdfa2527be |
rev | line source |
---|---|
2953 | 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 | |
6 # of the GNU General Public License, incorporated herein by reference. | |
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 | |
7073
af1117f37fa7
convert: tolerate embedded spaces in filemap source revisions
Patrick Mezard <pmezard@gmail.com>
parents:
2953
diff
changeset
|
35 |
af1117f37fa7
convert: tolerate embedded spaces in filemap source revisions
Patrick Mezard <pmezard@gmail.com>
parents:
2953
diff
changeset
|
36 def rsplit(s, sep=None, maxsplit=-1): |
af1117f37fa7
convert: tolerate embedded spaces in filemap source revisions
Patrick Mezard <pmezard@gmail.com>
parents:
2953
diff
changeset
|
37 try: |
af1117f37fa7
convert: tolerate embedded spaces in filemap source revisions
Patrick Mezard <pmezard@gmail.com>
parents:
2953
diff
changeset
|
38 return s.rsplit(sep, maxsplit) |
af1117f37fa7
convert: tolerate embedded spaces in filemap source revisions
Patrick Mezard <pmezard@gmail.com>
parents:
2953
diff
changeset
|
39 except AttributeError: |
7190
aecea6934fdd
Some additional space/tab cleanups
Thomas Arendsen Hein <thomas@intevation.de>
parents:
7184
diff
changeset
|
40 return [chunk[::-1] for chunk in |
aecea6934fdd
Some additional space/tab cleanups
Thomas Arendsen Hein <thomas@intevation.de>
parents:
7184
diff
changeset
|
41 s[::-1].split(sep, maxsplit)[::-1]] |