[PATCH 3 of 4 py3] manifest: fix some pure-Python parser bits to work on Python 3

Augie Fackler raf at durin42.com
Sun May 28 21:43:04 EDT 2017


# HG changeset patch
# User Augie Fackler <raf at durin42.com>
# Date 1496021355 14400
#      Sun May 28 21:29:15 2017 -0400
# Node ID d7743001547ef1de565717cebf7e88e31e60433c
# Parent  221e447c9410325c4051e61e762e2afd871a9b0f
manifest: fix some pure-Python parser bits to work on Python 3

diff --git a/mercurial/manifest.py b/mercurial/manifest.py
--- a/mercurial/manifest.py
+++ b/mercurial/manifest.py
@@ -33,7 +33,7 @@ def _parsev1(data):
     # class exactly matches its C counterpart to try and help
     # prevent surprise breakage for anyone that develops against
     # the pure version.
-    if data and data[-1] != '\n':
+    if data and data[-1:] != '\n':
         raise ValueError('Manifest did not end in a newline.')
     prev = None
     for l in data.splitlines():
@@ -55,7 +55,7 @@ def _parsev2(data):
         end = data.find('\n', pos + 1) # +1 to skip stem length byte
         if end == -1:
             raise ValueError('Manifest ended with incomplete file entry.')
-        stemlen = ord(data[pos])
+        stemlen = ord(data[pos:pos + 1])
         items = data[pos + 1:end].split('\0')
         f = prevf[:stemlen] + items[0]
         if prevf > f:


More information about the Mercurial-devel mailing list