This commit is contained in:
Martin v. Löwis 2011-03-27 10:14:57 +02:00
commit a6e0b4f2ed
2 changed files with 19 additions and 8 deletions

View file

@ -173,10 +173,10 @@ def add_tables(db, module):
def make_id(str): def make_id(str):
#str = str.replace(".", "_") # colons are allowed #str = str.replace(".", "_") # colons are allowed
str = str.replace(" ", "_") for c in " -+~;":
str = str.replace("-", "_") str = str.replace(c, "_")
if str[0] in string.digits: if str[0] in (string.digits + "."):
str = "_"+str str = "_" + str
assert re.match("^[A-Za-z_][A-Za-z0-9_.]*$", str), "FILE"+str assert re.match("^[A-Za-z_][A-Za-z0-9_.]*$", str), "FILE"+str
return str return str
@ -284,19 +284,28 @@ class Directory:
[(feature.id, component)]) [(feature.id, component)])
def make_short(self, file): def make_short(self, file):
oldfile = file
file = file.replace('+', '_')
file = ''.join(c for c in file if not c in ' "/\[]:;=,')
parts = file.split(".") parts = file.split(".")
if len(parts)>1: if len(parts) > 1:
prefix = "".join(parts[:-1]).upper()
suffix = parts[-1].upper() suffix = parts[-1].upper()
if not prefix:
prefix = suffix
suffix = None
else: else:
prefix = file.upper()
suffix = None suffix = None
prefix = parts[0].upper() if len(parts) < 3 and len(prefix) <= 8 and file == oldfile and (
if len(prefix) <= 8 and (not suffix or len(suffix)<=3): not suffix or len(suffix) <= 3):
if suffix: if suffix:
file = prefix+"."+suffix file = prefix+"."+suffix
else: else:
file = prefix file = prefix
assert file not in self.short_names
else: else:
file = None
if file is None or file in self.short_names:
prefix = prefix[:6] prefix = prefix[:6]
if suffix: if suffix:
suffix = suffix[:3] suffix = suffix[:3]

View file

@ -53,6 +53,8 @@ Core and Builtins
Library Library
------- -------
- Issue #7639: Fix short file name generation in bdist_msi
- Issue #11659: Fix ResourceWarning in test_subprocess introduced by #11459. - Issue #11659: Fix ResourceWarning in test_subprocess introduced by #11459.
Patch by Ben Hayden. Patch by Ben Hayden.