diff options
| author | Freek Dijkstra <freek@macfreek.nl> | 2012-04-28 21:03:30 +0200 |
|---|---|---|
| committer | Freek Dijkstra <freek@macfreek.nl> | 2012-04-28 21:03:30 +0200 |
| commit | 11c8d7368a158bba50eeb5d85e7be9cc60a310de (patch) | |
| tree | bf0d96175f5c2bea1420aebfe4ba2db12fecbdea /sphinx | |
| parent | fa9b6cd5bba4df4aab327a801147b6b134761dad (diff) | |
| download | sphinx-11c8d7368a158bba50eeb5d85e7be9cc60a310de.tar.gz | |
relative_uri patch. Fixes #916.
Diffstat (limited to 'sphinx')
| -rw-r--r-- | sphinx/util/osutil.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sphinx/util/osutil.py b/sphinx/util/osutil.py index 5becc37d..131c6b9c 100644 --- a/sphinx/util/osutil.py +++ b/sphinx/util/osutil.py @@ -40,12 +40,20 @@ def relative_uri(base, to): return to b2 = base.split(SEP) t2 = to.split(SEP) - # remove common segments - for x, y in zip(b2, t2): + # remove common segments (except the last segment) + for x, y in zip(b2[:-1], t2[:-1]): if x != y: break b2.pop(0) t2.pop(0) + if b2 == t2: + # Special case: relative_uri('f/index.html','f/index.html') + # returns '', not 'index.html' + return '' + if len(b2) == 1 and t2 == ['']: + # Special case: relative_uri('f/index.html','f/') should + # return './', not '' + return '.' + SEP return ('..' + SEP) * (len(b2)-1) + SEP.join(t2) |
