summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Util.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-09-25 02:50:45 (GMT)
committerSteven Knight <knight@baldmt.com>2004-09-25 02:50:45 (GMT)
commit10457428a793ab83448c6752f647f8fec882c2fa (patch)
tree5c0fc7d7e7bec84d3e88ca77133d693f7eb98cd1 /src/engine/SCons/Util.py
parent25b2149133eec63f8501efb37f4dd6e59cdc7506 (diff)
downloadSCons-10457428a793ab83448c6752f647f8fec882c2fa.zip
SCons-10457428a793ab83448c6752f647f8fec882c2fa.tar.gz
SCons-10457428a793ab83448c6752f647f8fec882c2fa.tar.bz2
Add a ParseDepends() function to read up mkdep-style files.
Diffstat (limited to 'src/engine/SCons/Util.py')
-rw-r--r--src/engine/SCons/Util.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/engine/SCons/Util.py b/src/engine/SCons/Util.py
index df2f604..afcaf11 100644
--- a/src/engine/SCons/Util.py
+++ b/src/engine/SCons/Util.py
@@ -1520,3 +1520,32 @@ def unique(s):
if x not in u:
u.append(x)
return u
+
+# Much of the logic here was originally based on recipe 4.9 from the
+# Python CookBook, but we had to dumb it way down for Python 1.5.2.
+class LogicalLines:
+
+ def __init__(self, fileobj):
+ self.fileobj = fileobj
+
+ def readline(self):
+ result = []
+ while 1:
+ line = self.fileobj.readline()
+ if not line:
+ break
+ if line[-2:] == '\\\n':
+ result.append(line[:-2])
+ else:
+ result.append(line)
+ break
+ return string.join(result, '')
+
+ def readlines(self):
+ result = []
+ while 1:
+ line = self.readline()
+ if not line:
+ break
+ result.append(line)
+ return result