# HG changeset patch # User Jim Hague # Date 1330945557 0 # Node ID 811151d3ae7329118c592e8f99e6c05cba162c8b # Parent f73a0193beb8445c7dbe1d9911d785045bdd7863 Improve first line extractor. Only output at most two lines. I've met .abc files where every line is a continuation. diff -r f73a0193beb8 -r 811151d3ae73 abcfirstline.py --- a/abcfirstline.py Mon Mar 05 11:03:15 2012 +0000 +++ b/abcfirstline.py Mon Mar 05 11:05:57 2012 +0000 @@ -7,17 +7,28 @@ import sys def process(inf): + continued = False print "X:1" for line in inf: line = line.strip() + # If it is empty or starts "%", ignore it. + if len(line) == 0 or line[0] == "%": + continue + + # Is it a header line? I.e. does it start LETTER COLON? + # If so, output only ones we need. start = line[:2] - if len(start) > 1 and start[0] != "|" and start[1] == ":": + if len(start) > 1 and start[1] == ":" and start[0].isalpha(): if start[0] in ["M", "K", "L"]: print line - elif start[0] != "%": + # Output line. If it is a continuation, output at most one + # continuation. + else: print line - if line[-1] != "\\": + if continued or line[-1] != "\\": break + else: + continued = True if len(sys.argv) > 1: for arg in sys.argv[1:]: