diff mercurial/util.py @ 35754:fb0be099063f

util: move 'readexactly' in the util module This function is used in multiple place, having it in util would be better. (existing caller will be migrated in another series)
author Boris Feld <boris.feld@octobus.net>
date Fri, 19 Jan 2018 20:51:35 +0100
parents 72b91f905065
children 2384523cee4d
line wrap: on
line diff
--- a/mercurial/util.py	Fri Jan 19 19:13:11 2018 -0500
+++ b/mercurial/util.py	Fri Jan 19 20:51:35 2018 +0100
@@ -3865,3 +3865,12 @@
         fn = '%s~%s~%s' % (f, tag, n)
         if fn not in ctx and fn not in others:
             return fn
+
+def readexactly(stream, n):
+    '''read n bytes from stream.read and abort if less was available'''
+    s = stream.read(n)
+    if len(s) < n:
+        raise error.Abort(_("stream ended unexpectedly"
+                           " (got %d bytes, expected %d)")
+                          % (len(s), n))
+    return s