diff options
author | Ori Bernstein <ori@eigenstate.org> | 2021-06-14 00:00:37 +0000 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2021-06-14 00:00:37 +0000 |
commit | a73a964e51247ed169d322c725a3a18859f109a3 (patch) | |
tree | 3f752d117274d444bda44e85609aeac1acf313f3 /sys/lib/python/mercurial/pure/parsers.py | |
parent | e64efe273fcb921a61bf27d33b230c4e64fcd425 (diff) |
python, hg: tow outside the environment.
they've served us well, and can ride off into the sunset.
Diffstat (limited to 'sys/lib/python/mercurial/pure/parsers.py')
-rw-r--r-- | sys/lib/python/mercurial/pure/parsers.py | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/sys/lib/python/mercurial/pure/parsers.py b/sys/lib/python/mercurial/pure/parsers.py deleted file mode 100644 index feebb6a18..000000000 --- a/sys/lib/python/mercurial/pure/parsers.py +++ /dev/null @@ -1,90 +0,0 @@ -# parsers.py - Python implementation of parsers.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, incorporated herein by reference. - -from mercurial.node import bin, nullid, nullrev -from mercurial import util -import struct, zlib - -_pack = struct.pack -_unpack = struct.unpack -_compress = zlib.compress -_decompress = zlib.decompress -_sha = util.sha1 - -def parse_manifest(mfdict, fdict, lines): - for l in lines.splitlines(): - f, n = l.split('\0') - if len(n) > 40: - fdict[f] = n[40:] - mfdict[f] = bin(n[:40]) - else: - mfdict[f] = bin(n) - -def parse_index(data, inline): - def gettype(q): - return int(q & 0xFFFF) - - def offset_type(offset, type): - return long(long(offset) << 16 | type) - - indexformatng = ">Qiiiiii20s12x" - - s = struct.calcsize(indexformatng) - index = [] - cache = None - nodemap = {nullid: nullrev} - n = off = 0 - # if we're not using lazymap, always read the whole index - l = len(data) - s - append = index.append - if inline: - cache = (0, data) - while off <= l: - e = _unpack(indexformatng, data[off:off + s]) - nodemap[e[7]] = n - append(e) - n += 1 - if e[1] < 0: - break - off += e[1] + s - else: - while off <= l: - e = _unpack(indexformatng, data[off:off + s]) - nodemap[e[7]] = n - append(e) - n += 1 - off += s - - e = list(index[0]) - type = gettype(e[0]) - e[0] = offset_type(0, type) - index[0] = tuple(e) - - # add the magic null revision at -1 - index.append((0, 0, 0, -1, -1, -1, -1, nullid)) - - return index, nodemap, cache - -def parse_dirstate(dmap, copymap, st): - parents = [st[:20], st[20: 40]] - # deref fields so they will be local in loop - format = ">cllll" - e_size = struct.calcsize(format) - pos1 = 40 - l = len(st) - - # the inner loop - while pos1 < l: - pos2 = pos1 + e_size - e = _unpack(">cllll", st[pos1:pos2]) # a literal here is faster - pos1 = pos2 + e[4] - f = st[pos2:pos1] - if '\0' in f: - f, c = f.split('\0') - copymap[f] = c - dmap[f] = e[:4] - return parents |