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
experimental/szager/collated-output
skylined@chromium.org 16 years ago
parent 1c13ee29a9
commit 666eb33dfc

@ -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():

Loading…
Cancel
Save