Heh -- I checked in an old version of this, at a time I documented the
internal read() as being a generator but hadn't yet changed it into one.
diff --git a/Tools/scripts/combinerefs.py b/Tools/scripts/combinerefs.py
index 3fafd9b..edd1a86 100644
--- a/Tools/scripts/combinerefs.py
+++ b/Tools/scripts/combinerefs.py
@@ -74,13 +74,11 @@
 # (when whilematch is false), is lost, and fileiter will resume at the line
 # following it.
 def read(fileiter, pat, whilematch):
-    result = []
     for line in fileiter:
         if bool(pat.match(line)) == whilematch:
-            result.append(line)
+            yield line
         else:
             break
-    return result
 
 def combine(fname):
     f = file(fname)