Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6235831

Browse files
author
Skip Montanaro
committed
revert semantics of commonprefix to work character-by-character
1 parent 6424524 commit 6235831

3 files changed

Lines changed: 11 additions & 26 deletions

File tree

Lib/dospath.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import os
44
import stat
55
import string
6-
import re
76

87

98
def normcase(s):
@@ -103,23 +102,18 @@ def dirname(p):
103102
return split(p)[0]
104103

105104

106-
# Return the longest prefix of all list elements.
107-
108105
def commonprefix(m):
109-
"Given a list of pathnames, returns the longest common leading component"
106+
"""Return the longest prefix of all list elements."""
107+
110108
if not m: return ''
111-
n = map(string.lower, m)
112-
for i in range(len(n)):
113-
n[i] = re.split(r"[/\\]", n[i])
114-
115-
prefix = n[0]
116-
for item in n:
109+
prefix = m[0]
110+
for item in m:
117111
for i in range(len(prefix)):
118112
if prefix[:i+1] <> item[:i+1]:
119113
prefix = prefix[:i]
120114
if i == 0: return ''
121115
break
122-
return "\\".join(prefix)
116+
return prefix
123117

124118

125119
# Get size, mtime, atime of files.

Lib/ntpath.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import os
99
import stat
1010
import string
11-
import re
1211

1312

1413
# Normalize the case of a pathname and map slashes to backslashes.
@@ -159,18 +158,14 @@ def dirname(p):
159158
def commonprefix(m):
160159
"Given a list of pathnames, returns the longest common leading component"
161160
if not m: return ''
162-
n = map(string.lower, m)
163-
for i in range(len(n)):
164-
n[i] = re.split(r"[/\\]", n[i])
165-
166-
prefix = n[0]
167-
for item in n:
161+
prefix = m[0]
162+
for item in m:
168163
for i in range(len(prefix)):
169164
if prefix[:i+1] <> item[:i+1]:
170165
prefix = prefix[:i]
171166
if i == 0: return ''
172167
break
173-
return "\\".join(prefix)
168+
return prefix
174169

175170

176171
# Get size, mtime, atime of files.

Lib/posixpath.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -118,18 +118,14 @@ def dirname(p):
118118
def commonprefix(m):
119119
"Given a list of pathnames, returns the longest common leading component"
120120
if not m: return ''
121-
n = m[:]
122-
for i in range(len(n)):
123-
n[i] = n[i].split("/")
124-
125-
prefix = n[0]
126-
for item in n:
121+
prefix = m[0]
122+
for item in m:
127123
for i in range(len(prefix)):
128124
if prefix[:i+1] <> item[:i+1]:
129125
prefix = prefix[:i]
130126
if i == 0: return ''
131127
break
132-
return "/".join(prefix)
128+
return prefix
133129

134130

135131
# Get size, mtime, atime of files.

0 commit comments

Comments
 (0)