mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 17:58:27 +03:00
c12e300bb8
Summary: Move top-level Python packages `mercurial`, `hgext` and `hgdemandimport` to a new top-level package `edenscm`. This allows the Python packages provided by the upstream Mercurial to be installed side-by-side. To maintain compatibility, `edenscm/` gets added to `sys.path` in `mercurial/__init__.py`. Reviewed By: phillco, ikostia Differential Revision: D13853115 fbshipit-source-id: b296b0673dc54c61ef6a591ebc687057ff53b22e
71 lines
1.6 KiB
Python
71 lines
1.6 KiB
Python
# diffhelpers.py - pure Python implementation of diffhelpers.c
|
|
#
|
|
# Copyright 2009 Matt Mackall <mpm@selenic.com> and others
|
|
#
|
|
# This software may be used and distributed according to the terms of the
|
|
# GNU General Public License version 2 or any later version.
|
|
|
|
from __future__ import absolute_import
|
|
|
|
|
|
try:
|
|
xrange(0)
|
|
except NameError:
|
|
xrange = range
|
|
|
|
|
|
def addlines(fp, hunk, lena, lenb, a, b):
|
|
while True:
|
|
todoa = lena - len(a)
|
|
todob = lenb - len(b)
|
|
num = max(todoa, todob)
|
|
if num == 0:
|
|
break
|
|
for i in xrange(num):
|
|
s = fp.readline()
|
|
c = s[0]
|
|
if s == "\\ No newline at end of file\n":
|
|
fix_newline(hunk, a, b)
|
|
continue
|
|
if c == "\n":
|
|
# Some patches may be missing the control char
|
|
# on empty lines. Supply a leading space.
|
|
s = " \n"
|
|
hunk.append(s)
|
|
if c == "+":
|
|
b.append(s[1:])
|
|
elif c == "-":
|
|
a.append(s)
|
|
else:
|
|
b.append(s[1:])
|
|
a.append(s)
|
|
return 0
|
|
|
|
|
|
def fix_newline(hunk, a, b):
|
|
l = hunk[-1]
|
|
# tolerate CRLF in last line
|
|
if l.endswith("\r\n"):
|
|
hline = l[:-2]
|
|
else:
|
|
hline = l[:-1]
|
|
c = hline[0]
|
|
|
|
if c in " +":
|
|
b[-1] = hline[1:]
|
|
if c in " -":
|
|
a[-1] = hline
|
|
hunk[-1] = hline
|
|
return 0
|
|
|
|
|
|
def testhunk(a, b, bstart):
|
|
alen = len(a)
|
|
blen = len(b)
|
|
if alen > blen - bstart:
|
|
return -1
|
|
for i in xrange(alen):
|
|
if a[i][1:] != b[i + bstart]:
|
|
return -1
|
|
return 0
|