diff options
| author | Skip Montanaro <skip@pobox.com> | 2000-07-12 16:55:57 (GMT) | 
|---|---|---|
| committer | Skip Montanaro <skip@pobox.com> | 2000-07-12 16:55:57 (GMT) | 
| commit | 97bc98aea784c64a74b6656f950ab2dffe84f228 (patch) | |
| tree | cd39bcdb671a52e918ce9b893fa380ac23af6e51 /Lib/macpath.py | |
| parent | 03657cfdb056dbd36db12cc3db12a6b58a962e20 (diff) | |
| download | cpython-97bc98aea784c64a74b6656f950ab2dffe84f228.zip cpython-97bc98aea784c64a74b6656f950ab2dffe84f228.tar.gz cpython-97bc98aea784c64a74b6656f950ab2dffe84f228.tar.bz2  | |
fixed semantics of commonprefix to work by path elements instead of
characters.
Diffstat (limited to 'Lib/macpath.py')
| -rw-r--r-- | Lib/macpath.py | 23 | 
1 files changed, 23 insertions, 0 deletions
diff --git a/Lib/macpath.py b/Lib/macpath.py index 464bdd0..899577c 100644 --- a/Lib/macpath.py +++ b/Lib/macpath.py @@ -89,6 +89,29 @@ def dirname(s): return split(s)[0]  def basename(s): return split(s)[1] +# Return the longest prefix of all list elements. +# XXX completely untested on Mac!!! + +def commonprefix(m): +    "Given a list of pathnames, returns the longest common leading component" +    if not m: return '' +    n = m[:] +    for i in range(len(n)): +        n[i] = n[i].split(os.sep) +        # if os.sep didn't have any effect, try os.altsep +        if os.altsep and len(n[i]) == 1: +            n[i] = n[i].split(os.altsep) +             +    prefix = n[0] +    for item in n: +        for i in range(len(prefix)): +            if prefix[:i+1] <> item[:i+1]: +                prefix = prefix[:i] +                if i == 0: return '' +                break +    return os.sep.join(prefix) + +  def isdir(s):      """Return true if the pathname refers to an existing directory."""  | 
