Mercurial > hgrepos > Python > apps > py-cutils
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 277:9676ecd32a07 | 278:822cf3a1da22 |
|---|---|
| 268 return get_crc("crc-64-redis") | 268 return get_crc("crc-64-redis") |
| 269 else: | 269 else: |
| 270 raise ValueError("unknown algorithm: {}".format(s)) | 270 raise ValueError("unknown algorithm: {}".format(s)) |
| 271 | 271 |
| 272 | 272 |
| 273 def normalize_filename(filename, strip_leading_dot_slash=False): | 273 def normalize_filename(filename, strip_dot_slashes=False): |
| 274 if isinstance(filename, bytes): | 274 if isinstance(filename, bytes): |
| 275 filename = filename.replace(b"\\", b"/") | 275 filename = filename.replace(b"\\", b"/") |
| 276 if strip_leading_dot_slash: | 276 if strip_dot_slashes: |
| 277 while filename.startswith(b"./"): | 277 while filename.startswith(b"./"): |
| 278 filename = filename[2:] | 278 filename = filename[2:] |
| 279 # This also handles adjacent /./ cases | |
| 280 while b"/./" in filename: | |
| 281 filename = filename.replace(b"/./", b"/", 1) | |
| 279 else: | 282 else: |
| 280 filename = filename.replace(u"\\", u"/") | 283 filename = filename.replace(u"\\", u"/") |
| 281 if strip_leading_dot_slash: | 284 if strip_dot_slashes: |
| 282 while filename.startswith(u"./"): | 285 while filename.startswith(u"./"): |
| 283 filename = filename[2:] | 286 filename = filename[2:] |
| 287 # This also handles adjacent /./ cases | |
| 288 while u"/./" in filename: | |
| 289 filename = filename.replace(u"/./", u"/", 1) | |
| 284 return filename | 290 return filename |
| 285 | 291 |
| 286 | 292 |
| 287 def fsencode(what): | 293 def fsencode(what): |
| 288 """A somewhat compatibility function for :func:`os.fsencode`. | 294 """A somewhat compatibility function for :func:`os.fsencode`. |
