mirror of https://github.com/python/cpython
(Jack+Guido:) interpret ../ in basejoin() according to RFC1808.
This commit is contained in:
parent
c511aee0e3
commit
54a1d0bc69
|
@ -592,6 +592,13 @@ def basejoin(base, url):
|
||||||
else:
|
else:
|
||||||
# remove last file component
|
# remove last file component
|
||||||
basepath = basepath[:i+1]
|
basepath = basepath[:i+1]
|
||||||
|
# Interpret ../ (important because of symlinks)
|
||||||
|
while basepath and path[:3] == '../':
|
||||||
|
path = path[3:]
|
||||||
|
i = string.rfind(basepath, '/')
|
||||||
|
if i > 0:
|
||||||
|
basepath = basepath[:i-1]
|
||||||
|
|
||||||
path = basepath + path
|
path = basepath + path
|
||||||
if type and host: return type + '://' + host + path
|
if type and host: return type + '://' + host + path
|
||||||
elif type: return type + ':' + path
|
elif type: return type + ':' + path
|
||||||
|
|
Loading…
Reference in New Issue