comparison cutils/util/__init__.py @ 279:44e62e36cad4

treesum: when normalizing filenames also remove trailing "/."
author Franz Glasner <fzglas.hg@dom66.de>
date Sat, 22 Feb 2025 18:27:10 +0100
parents 822cf3a1da22
children 64df94bf4659
comparison
equal deleted inserted replaced
278:822cf3a1da22 279:44e62e36cad4
277 while filename.startswith(b"./"): 277 while filename.startswith(b"./"):
278 filename = filename[2:] 278 filename = filename[2:]
279 # This also handles adjacent /./ cases 279 # This also handles adjacent /./ cases
280 while b"/./" in filename: 280 while b"/./" in filename:
281 filename = filename.replace(b"/./", b"/", 1) 281 filename = filename.replace(b"/./", b"/", 1)
282 while filename.endswith(b"/."):
283 filename = filename[:-2]
282 else: 284 else:
283 filename = filename.replace(u"\\", u"/") 285 filename = filename.replace(u"\\", u"/")
284 if strip_dot_slashes: 286 if strip_dot_slashes:
285 while filename.startswith(u"./"): 287 while filename.startswith(u"./"):
286 filename = filename[2:] 288 filename = filename[2:]
287 # This also handles adjacent /./ cases 289 # This also handles adjacent /./ cases
288 while u"/./" in filename: 290 while u"/./" in filename:
289 filename = filename.replace(u"/./", u"/", 1) 291 filename = filename.replace(u"/./", u"/", 1)
292 while filename.endswith(u"/."):
293 filename = filename[:-2]
290 return filename 294 return filename
291 295
292 296
293 def fsencode(what): 297 def fsencode(what):
294 """A somewhat compatibility function for :func:`os.fsencode`. 298 """A somewhat compatibility function for :func:`os.fsencode`.