Commit 666eb33d authored by skylined@chromium.org's avatar skylined@chromium.org

PathDifference cuts a supplied "root path" from a second path and returns what...

PathDifference cuts a supplied "root path" from a second path and returns what remains. It is assumed that this can be used as a relative path from the "root path" to the second path.

If the root path ends with a path separator (\ or /), the function used to cut an additional character from the path and the returned value would be incorrect. This fix makes sure the behavior is consistent and correct no matter if the root path ends with a separator or not.

(This fixes the "epot_tools" tools bug.)
Review URL: http://codereview.chromium.org/118376

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@17855 0039d316-1c4b-4281-b951-d872f2087c98
parent 1c13ee29
......@@ -66,8 +66,11 @@ def PathDifference(root, subpath):
"""Returns the difference subpath minus root."""
if subpath.find(root) != 0:
return None
# The + 1 is for the trailing / or \.
return subpath[len(root) + len(os.sep):]
# If the root does not have a trailing \ or /, we add it so the returned path
# starts immediately after the seperator regardless of whether it is provided.
if not root.endswith(os.sep):
root += os.sep
return subpath[len(root):]
def GetSourceRoot():
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment