From c4882c46b46fff7f148f461188fe375061e36e90 Mon Sep 17 00:00:00 2001 From: Bastian Eicher Date: Sat, 9 Apr 2011 09:22:02 +0100 Subject: [PATCH] Changed model._pretty_escape to only preserve : on Posix systems --- zeroinstall/injector/model.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/zeroinstall/injector/model.py b/zeroinstall/injector/model.py index 31028ff..1384034 100644 --- a/zeroinstall/injector/model.py +++ b/zeroinstall/injector/model.py @@ -1097,7 +1097,13 @@ def _pretty_escape(uri): : is preserved and / becomes #. This makes for nicer strings, and may replace L{escape} everywhere in future. @rtype: str""" - return re.sub('[^-_.a-zA-Z0-9:/]', + if os.name == "posix": + # Only preserve : on Posix systems + preserveRegex = '[^-_.a-zA-Z0-9:/]' + else: + # Other OSes may not allow the : character in file names + preserveRegex = '[^-_.a-zA-Z0-9/]' + return re.sub(preserveRegex, lambda match: '%%%02x' % ord(match.group(0)), uri.encode('utf-8')).replace('/', '#') -- 2.11.4.GIT