Mercurial > public > mercurial-scm > hg
comparison mercurial/pure/diffhelpers.py @ 37567:53021c4ef0b2
diffhelpers: port docstrings from cext to pure
I'll remove the C implementation.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Mon, 09 Apr 2018 20:47:43 +0900 |
parents | f53b55b162f4 |
children | c4c8d0d1267f |
comparison
equal
deleted
inserted
replaced
37566:f53b55b162f4 | 37567:53021c4ef0b2 |
---|---|
6 # GNU General Public License version 2 or any later version. | 6 # GNU General Public License version 2 or any later version. |
7 | 7 |
8 from __future__ import absolute_import | 8 from __future__ import absolute_import |
9 | 9 |
10 def addlines(fp, hunk, lena, lenb, a, b): | 10 def addlines(fp, hunk, lena, lenb, a, b): |
11 """Read lines from fp into the hunk | |
12 | |
13 The hunk is parsed into two arrays, a and b. a gets the old state of | |
14 the text, b gets the new state. The control char from the hunk is saved | |
15 when inserting into a, but not b (for performance while deleting files.) | |
16 """ | |
11 while True: | 17 while True: |
12 todoa = lena - len(a) | 18 todoa = lena - len(a) |
13 todob = lenb - len(b) | 19 todob = lenb - len(b) |
14 num = max(todoa, todob) | 20 num = max(todoa, todob) |
15 if num == 0: | 21 if num == 0: |
32 b.append(s[1:]) | 38 b.append(s[1:]) |
33 a.append(s) | 39 a.append(s) |
34 return 0 | 40 return 0 |
35 | 41 |
36 def fix_newline(hunk, a, b): | 42 def fix_newline(hunk, a, b): |
43 """Fix up the last lines of a and b when the patch has no newline at EOF""" | |
37 l = hunk[-1] | 44 l = hunk[-1] |
38 # tolerate CRLF in last line | 45 # tolerate CRLF in last line |
39 if l.endswith('\r\n'): | 46 if l.endswith('\r\n'): |
40 hline = l[:-2] | 47 hline = l[:-2] |
41 else: | 48 else: |
48 hunk[-1] = hline | 55 hunk[-1] = hline |
49 return 0 | 56 return 0 |
50 | 57 |
51 | 58 |
52 def testhunk(a, b, bstart): | 59 def testhunk(a, b, bstart): |
60 """Compare the lines in a with the lines in b | |
61 | |
62 a is assumed to have a control char at the start of each line, this char | |
63 is ignored in the compare. | |
64 """ | |
53 alen = len(a) | 65 alen = len(a) |
54 blen = len(b) | 66 blen = len(b) |
55 if alen > blen - bstart: | 67 if alen > blen - bstart: |
56 return -1 | 68 return -1 |
57 for i in xrange(alen): | 69 for i in xrange(alen): |