# canonicalise the sys file:
# delete comments & leading whitespace, collapse continued lines
# rewritten to avoid assignment to $0, which is broken in older awks
# rewritten again (based on an idea from Charles Lindsey) to avoid
# problems with awks that don't like very long print/printfs
BEGIN { midline = 0 }
/^#/ { # comment
if (midline)
print "mid-line comment in sys" | "cat >&2"
next
}
/^[\t ]*$/ { # empty line
if (midline)
print "mid-line empty line in sys" | "cat >&2"
next
}
{
# strip leading white space
for (n = 1; substr($0, n, 1) ~ /^[\t ]/; n++)
{}
thisln = substr($0, n)
}
/\\$/ { # continued line
printf "%s", substr(thisln, 1, length(thisln)-1)
midline = 1
next
}
{ # non-continued line
print thisln
midline = 0
next
}
END {
if (midline) {
print "unterminated line in sys" | "cat >&2"
printf "\n"
}
}
syntax highlighted by Code2HTML, v. 0.9.1