# 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