:rpt /typedef[^;]*$/{ N b rpt } s/\n/ /g :rpt2 /^[^{]*{[^{}]*$/{ N b rpt2 } s/\n/ /g /^[ ]*$/d s/^[ ]*// s/[ ]*$// s/[ ][ ]*/ /g s/[ ]*\([(){}]\)[ ]*/\1/g