From d10982be4f3276808bc1dc1d27284ca91f0c59a8 Mon Sep 17 00:00:00 2001 From: Jim Hague Date: Mon, 5 Mar 2012 11:05:57 +0000 Subject: [PATCH] Improve first line extractor. Only output at most two lines. I've met .abc files where every line is a continuation. --- abcfirstline.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/abcfirstline.py b/abcfirstline.py index ab6ccb0..ee06f21 100755 --- a/abcfirstline.py +++ b/abcfirstline.py @@ -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:]: