diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2001-03-21 06:58:25 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2001-03-21 06:58:25 (GMT) |
commit | 2c91c815d42b24254a08df148c5ee5aafd547abc (patch) | |
tree | bfc6828b8f5e52b277cbc67d0003e0306b7b6897 /Tools/freeze | |
parent | 55f826cd6a63fd66041b608ab09d672bb84c6f00 (diff) | |
download | cpython-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/freeze')
-rw-r--r-- | Tools/freeze/makeconfig.py | 4 | ||||
-rw-r--r-- | Tools/freeze/parsesetup.py | 13 |
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) |