summaryrefslogtreecommitdiffstats
path: root/Tools
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2001-03-21 06:58:25 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2001-03-21 06:58:25 (GMT)
commit2c91c815d42b24254a08df148c5ee5aafd547abc (patch)
treebfc6828b8f5e52b277cbc67d0003e0306b7b6897 /Tools
parent55f826cd6a63fd66041b608ab09d672bb84c6f00 (diff)
downloadcpython-2c91c815d42b24254a08df148c5ee5aafd547abc.zip
cpython-2c91c815d42b24254a08df148c5ee5aafd547abc.tar.gz
cpython-2c91c815d42b24254a08df148c5ee5aafd547abc.tar.bz2
Patch #409504: Fix regex problems, consider \-continuation lines in Makefile
and Setup.
Diffstat (limited to 'Tools')
-rw-r--r--Tools/freeze/makeconfig.py4
-rw-r--r--Tools/freeze/parsesetup.py13
2 files changed, 15 insertions, 2 deletions
diff --git a/Tools/freeze/makeconfig.py b/Tools/freeze/makeconfig.py
index 11c97d8..687f271 100644
--- a/Tools/freeze/makeconfig.py
+++ b/Tools/freeze/makeconfig.py
@@ -12,7 +12,7 @@ def makeconfig(infp, outfp, modules, with_ifdef=0):
line = infp.readline()
if not line: break
outfp.write(line)
- if m1 and m1.search(line) >= 0:
+ if m1 and m1.search(line):
m1 = None
for mod in modules:
if mod in never:
@@ -22,7 +22,7 @@ def makeconfig(infp, outfp, modules, with_ifdef=0):
outfp.write('extern void init%s();\n' % mod)
if with_ifdef:
outfp.write("#endif\n")
- elif m2 and m2.search(line) >= 0:
+ elif m2 and m2.search(line):
m2 = None
for mod in modules:
if mod in never:
diff --git a/Tools/freeze/parsesetup.py b/Tools/freeze/parsesetup.py
index 7f90075..7a6b72e 100644
--- a/Tools/freeze/parsesetup.py
+++ b/Tools/freeze/parsesetup.py
@@ -13,11 +13,17 @@ makevardef = re.compile('^([a-zA-Z0-9_]+)[ \t]*=(.*)')
def getmakevars(filename):
variables = {}
fp = open(filename)
+ pendingline = ""
try:
while 1:
line = fp.readline()
+ if pendingline:
+ line = pendingline + line
+ pendingline = ""
if not line:
break
+ if line.endswith('\\\n'):
+ pendingline = line[:-2]
matchobj = makevardef.match(line)
if not matchobj:
continue
@@ -44,15 +50,22 @@ def getsetupinfo(filename):
modules = {}
variables = {}
fp = open(filename)
+ pendingline = ""
try:
while 1:
line = fp.readline()
+ if pendingline:
+ line = pendingline + line
+ pendingline = ""
if not line:
break
# Strip comments
i = string.find(line, '#')
if i >= 0:
line = line[:i]
+ if line.endswith('\\\n'):
+ pendingline = line[:-2]
+ continue
matchobj = setupvardef.match(line)
if matchobj:
(name, value) = matchobj.group(1, 2)