X-Git-Url: https://git.rkrishnan.org/?a=blobdiff_plain;f=src%2Fallmydata%2Futil%2Fencodingutil.py;h=1015679403ff391ecaeab33abfd1f4a4f761164e;hb=b480f2a80c9e627e86ea110cfafe5c5c859b14f4;hp=fec92e4c47fab319ebc785df761797afa9a45a90;hpb=2b583afcea5c0e18af54d0ef1fd07325e7c7a142;p=tahoe-lafs%2Ftahoe-lafs.git diff --git a/src/allmydata/util/encodingutil.py b/src/allmydata/util/encodingutil.py index fec92e4c..10156794 100644 --- a/src/allmydata/util/encodingutil.py +++ b/src/allmydata/util/encodingutil.py @@ -274,11 +274,18 @@ def extend_filepath(fp, segments): return fp def to_filepath(path): - precondition(isinstance(path, basestring), path=path) + precondition(isinstance(path, unicode if use_unicode_filepath else basestring), + path=path) if isinstance(path, unicode) and not use_unicode_filepath: path = path.encode(filesystem_encoding) + if sys.platform == "win32": + _assert(isinstance(path, unicode), path=path) + if path.startswith(u"\\\\?\\") and len(path) > 4: + # FilePath normally strips trailing path separators, but not in this case. + path = path.rstrip(u"\\") + return FilePath(path) def _decode(s):