move mac url2path conversion to separate module
diff --git a/Lib/urllib.py b/Lib/urllib.py
index f036078..82a39f2 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -24,56 +24,7 @@
 
 # Helper for non-unix systems
 if os.name == 'mac':
-	def url2pathname(pathname):
-		"Convert /-delimited pathname to mac pathname"
-		#
-		# XXXX The .. handling should be fixed...
-		#
-		tp = splittype(pathname)[0]
-		if tp and tp <> 'file':
-			raise RuntimeError, 'Cannot convert non-local URL to pathname'
-		components = string.split(pathname, '/')
-		# Remove . and embedded ..
-		i = 0
-		while i < len(components):
-			if components[i] == '.':
-				del components[i]
-			elif components[i] == '..' and i > 0 and \
-						  components[i-1] not in ('', '..'):
-				del components[i-1:i+1]
-				i = i-1
-			elif components[i] == '' and i > 0 and components[i-1] <> '':
-				del components[i]
-			else:
-				i = i+1
-		if not components[0]:
-			# Absolute unix path, don't start with colon
-			return string.join(components[1:], ':')
-		else:
-			# relative unix path, start with colon. First replace
-			# leading .. by empty strings (giving ::file)
-			i = 0
-			while i < len(components) and components[i] == '..':
-				components[i] = ''
-				i = i + 1
-			return ':' + string.join(components, ':')
-			
-	def pathname2url(pathname):
-		"convert mac pathname to /-delimited pathname"
-		if '/' in pathname:
-			raise RuntimeError, "Cannot convert pathname containing slashes"
-		components = string.split(pathname, ':')
-		# Replace empty string ('::') by .. (will result in '/../' later)
-		for i in range(1, len(components)):
-			if components[i] == '':
-				components[i] = '..'
-		# Truncate names longer than 31 bytes
-		components = map(lambda x: x[:31], components)
-		
-		if os.path.isabs(pathname):
-			return '/' + string.join(components, '/')
-		else:
-			return string.join(components, '/')
+	from macurl2path import url2pathname, pathname2url
 else:
 	def url2pathname(pathname):
 		return pathname