summaryrefslogtreecommitdiffstats
path: root/Lib/macpath.py
diff options
context:
space:
mode:
authorSkip Montanaro <skip@pobox.com>2000-07-12 16:55:57 (GMT)
committerSkip Montanaro <skip@pobox.com>2000-07-12 16:55:57 (GMT)
commit97bc98aea784c64a74b6656f950ab2dffe84f228 (patch)
treecd39bcdb671a52e918ce9b893fa380ac23af6e51 /Lib/macpath.py
parent03657cfdb056dbd36db12cc3db12a6b58a962e20 (diff)
downloadcpython-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.py23
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."""