#!/usr/bin/python # Check fold markers for inconsistency. import sys fold = "{{{" unfold = "}}}" def check_file(fn): stack = [] n = 0 f = open(fn) for l in f.xreadlines(): l = l.rstrip() n += 1 p = l.find(fold) if p != -1: stack.append((n, p, l)) p = l.find(unfold) if p != -1: if stack == []: print "%s:%d: too many unfolds" % (fn, n) (sn, sp, sl) = stack.pop() if sp != p: print "%s:%d: unfold indentation does not match fold at line %d" % (fn, n, sn) print "%5d> %s" % (sn, sl) print "%5d> %s" % (n, l) f.close() if stack != []: print "%s: folds unclosed at end of file" % fn for (sn, sp, sl) in stack: print "%5d> %s" % (sn, sl) if __name__ == "__main__": for arg in sys.argv[1:]: check_file(arg)