# HG changeset patch # User Franz Glasner # Date 1607123607 -3600 # Node ID 2f9e702e3f7a93edf4ed042cff8b3be85f06eef6 # Parent 285848db0b52af4a9124abbea150f53173a19b79 Convert backslashes in filenames to forward slashes when creating digests diff -r 285848db0b52 -r 2f9e702e3f7a shasum.py --- a/shasum.py Fri Dec 04 23:22:30 2020 +0100 +++ b/shasum.py Sat Dec 05 00:13:27 2020 +0100 @@ -256,7 +256,9 @@ if filename is None: print(digest, file=dest) else: - print("{} ({}) = {}".format(digestname, filename, digest), + print("{} ({}) = {}".format(digestname, + normalize_filename(filename), + digest), file=dest) @@ -264,9 +266,10 @@ """Coreutils format (:command:`shasum` et al.) """ - print("{} {}{}".format(digest, - '*' if binary else ' ', - '-' if filename is None else filename), + print("{} {}{}".format( + digest, + '*' if binary else ' ', + '-' if filename is None else normalize_filename(filename)), file=dest) @@ -289,5 +292,13 @@ return h.hexdigest() +def normalize_filename(filename, strip_leading_dot_slash=False): + filename = filename.replace("\\", "/") + if strip_leading_dot_slash: + while filename.startswith("./"): + filename = filename[2:] + return filename + + if __name__ == "__main__": sys.exit(main())