Mercurial > hgrepos > Python > apps > py-cutils
diff cutils/util/__init__.py @ 278:822cf3a1da22
treesum: FIX: Removal of backslashes in output: do this only where really needed.
Otherwise "backslashreplace" error encodings are "corrected" too.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Fri, 21 Feb 2025 17:27:59 +0100 |
| parents | 0f4febf646f5 |
| children | 44e62e36cad4 |
line wrap: on
line diff
--- a/cutils/util/__init__.py Fri Feb 21 16:51:03 2025 +0100 +++ b/cutils/util/__init__.py Fri Feb 21 17:27:59 2025 +0100 @@ -270,17 +270,23 @@ raise ValueError("unknown algorithm: {}".format(s)) -def normalize_filename(filename, strip_leading_dot_slash=False): +def normalize_filename(filename, strip_dot_slashes=False): if isinstance(filename, bytes): filename = filename.replace(b"\\", b"/") - if strip_leading_dot_slash: + if strip_dot_slashes: while filename.startswith(b"./"): filename = filename[2:] + # This also handles adjacent /./ cases + while b"/./" in filename: + filename = filename.replace(b"/./", b"/", 1) else: filename = filename.replace(u"\\", u"/") - if strip_leading_dot_slash: + if strip_dot_slashes: while filename.startswith(u"./"): filename = filename[2:] + # This also handles adjacent /./ cases + while u"/./" in filename: + filename = filename.replace(u"/./", u"/", 1) return filename
