:rpt
/typedef[^;]*$/{
	N
	b rpt
}
s/\n/ /g

:rpt2
/^[^{]*{[^{}]*$/{
	N
	b rpt2
}
s/\n/ /g

/^[ 	]*$/d
s/^[ 	]*//
s/[ 	]*$//
s/[ 	][ 	]*/ /g
s/[ 	]*\([(){}]\)[ 	]*/\1/g