summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2011-03-27 18:58:52 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2011-03-27 18:58:52 (GMT)
commit03f7e235c84f46dfa8da3e66b36a32885dbbb6ea (patch)
tree5ebc8bcc1c8262af38cccd7bd4c8f45c414c756a
parentd687be09b4c691850e160f7daccb8ed9d63551b0 (diff)
downloadcpython-03f7e235c84f46dfa8da3e66b36a32885dbbb6ea.zip
cpython-03f7e235c84f46dfa8da3e66b36a32885dbbb6ea.tar.gz
cpython-03f7e235c84f46dfa8da3e66b36a32885dbbb6ea.tar.bz2
Closes #11696: Fix ID generation in msilib.
Patch by Mark Mc Mahon.
-rw-r--r--Lib/msilib/__init__.py5
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS2
3 files changed, 5 insertions, 3 deletions
diff --git a/Lib/msilib/__init__.py b/Lib/msilib/__init__.py
index d7a31c0..63f3923 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 c2bcde2..cc33061 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 fcd7b63..03eab5c 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.