# HG changeset patch # User Franz Glasner # Date 1743422996 -7200 # Node ID e163e675407171a3de441d1404cec3872a53de3e # Parent e89eb63fc31969cb71c4e8f0ce3d44ac3162fa18 treesum: when printing an empty size on purpose do not provide an empty octet string but use -1 as size argument diff -r e89eb63fc319 -r e163e6754071 cutils/treesum.py --- a/cutils/treesum.py Mon Mar 31 13:38:57 2025 +0200 +++ b/cutils/treesum.py Mon Mar 31 14:09:56 2025 +0200 @@ -695,9 +695,9 @@ len(self._algorithm[1]), util.b(self._algorithm[1]), len(linkdgst.digest()), linkdgst.digest())) if self._size_only: - self._writer.write_size(b"./@/", "") + self._writer.write_size(b"./@/", -1) else: - sz = "" if self._print_size else None + sz = -1 if self._print_size else None self._writer.write_file_digest( self._algorithm[1], b"./@/", @@ -824,7 +824,7 @@ b"No size in treesum-file `%s'", fpath), "utf-8")) - sz = "" + sz = -1 else: sz = collector.size else: @@ -963,9 +963,9 @@ self._writer.write_size( util.interpolate_bytes( b"%s/./@%s", opath, special_tag), - "") + -1) else: - sz = "" if self._print_size else None + sz = -1 if self._print_size else None self._writer.write_file_digest( self._algorithm[1], util.interpolate_bytes( @@ -1003,9 +1003,9 @@ self._writer.write_size( util.interpolate_bytes( b"%s/./%s", opath, special_tag), - "") + -1) else: - sz = "" if self._print_size else None + sz = -1 if self._print_size else None self._writer.write_file_digest( self._algorithm[1], util.interpolate_bytes( @@ -1045,9 +1045,9 @@ if self._size_only: self._writer.write_size( util.interpolate_bytes(b"%s/./@/", opath), - "") + -1) else: - sz = "" if self._print_size else None + sz = -1 if self._print_size else None self._writer.write_file_digest( self._algorithm[1], util.interpolate_bytes(b"%s/./@/", opath), @@ -1138,9 +1138,9 @@ if self._size_only: self._writer.write_size( util.interpolate_bytes(b"%s/./@", opath), - "") + -1) else: - sz = "" if self._print_size else None + sz = -1 if self._print_size else None self._writer.write_file_digest( self._algorithm[1], util.interpolate_bytes(b"%s/./@", opath), @@ -1341,6 +1341,9 @@ If `sz` is `None` then this is signals an error because a size is required. + If the size should not be printed on purpose the `size` should be + as negative number. + """ raise NotImplementedError("write_size") @@ -1350,6 +1353,11 @@ If `size` is `None` and the output of a size is required then this is an error signal. + If the size should not be printed on purpose the `size` should be + as negative number. + + If `digest` is `None` is an error signal. + """ raise NotImplementedError("write_file_digest") @@ -1467,7 +1475,7 @@ self.write(b")") if sz is not None: self.write(b" = ") - self.write(util.b(str(sz))) + self.write(b"" if sz < 0 else util.b(str(sz))) self.writeln(b"") def write_accept_treesum_file(self, filename): @@ -1492,7 +1500,7 @@ self.write(digest) if size is not None: self.write(b",") - self.write(util.b(str(size))) + self.write(b"" if size < 0 else util.b(str(size))) self.writeln(b"") def finish(self): @@ -1575,7 +1583,10 @@ def write_size(self, filename, sz): assert isinstance(filename, bytes) if sz is not None: - self.write(util.b(str(sz))) + if sz >= 0: + self.write(util.b(str(sz))) + else: + self.write(b"?????") self.write(b"\t") self.writeln(filename) @@ -1594,9 +1605,14 @@ self.write(b":") if digest is not None: self.write(digest) + else: + self.write(b"?????") self.write(b"\t") if size is not None: - self.write(util.b(str(size))) + if size >= 0: + self.write(util.b(str(size))) + else: + self.write(b"?????") self.write(b"\t") self.writeln(filename)