diff --git a/Lib/msilib/__init__.py b/Lib/msilib/__init__.py index d7a31c0b622..63f392359b8 100644 --- a/Lib/msilib/__init__.py +++ b/Lib/msilib/__init__.py @@ -173,9 +173,8 @@ def add_tables(db, module): add_data(db, table, getattr(module, table)) def make_id(str): - #str = str.replace(".", "_") # colons are allowed - for c in " -+~;": - str = str.replace(c, "_") + identifier_chars = string.ascii_letters + string.digits + "._" + str = "".join([c if c in identifier_chars else "_" for c in str]) if str[0] in (string.digits + "."): str = "_" + str assert re.match("^[A-Za-z_][A-Za-z0-9_.]*$", str), "FILE"+str diff --git a/Misc/ACKS b/Misc/ACKS index c2bcde28678..cc33061f3da 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -529,6 +529,7 @@ Chris McDonough Greg McFarlane Alan McIntyre Michael McLay +Mark Mc Mahon Gordon McMillan Caolan McNamara Andrew McNamara diff --git a/Misc/NEWS b/Misc/NEWS index fcd7b632984..03eab5c4ad9 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -47,6 +47,8 @@ Core and Builtins Library ------- +- Issue #11696: Fix ID generation in msilib. + - Issue #9696: Fix exception incorrectly raised by xdrlib.Packer.pack_int when trying to pack a negative (in-range) integer.