ref: e38d42b4a7f278a7f7835e07983115e4ee1b0db4
dir: /sys/src/cmd/dtracy/lint.rc/
#!/bin/rc # check for full switch statements nl=' ' nodetypes=`''{sed -n '/OINVAL/,/}/ s/,//p' dat.h | sed 's/[ ]*//g; /^$/d' | sort | grep -v '^OINVAL$'} switches=`$nl{grep -n '/\*nodetype\*/' *.[ch]} for(l in $switches){ f=`:{echo $l} a=`$nl{sed -n $f(2)^'s/[^ ].*//p' $f(1)} comm -23 <{echo $nodetypes} <{sed -n $f(2)^',/^'^$a^'}/ s/^'^$a^'case ([^:]*):.*/\1/p' $f(1) | sort} | sed -n 's/.+/'^$f(1)^':'^$f(2)^' missing &/p' } oper=`''{sed -n '/OPINVAL/,/}/ s/,//p' dat.h | sed 's/[ ]*//g; /^$/d' | sort | grep -v '^OPINVAL$'} switches=`$nl{grep -n '/\*oper\*/' *.[ch]} for(l in $switches){ f=`:{echo $l} a=`$nl{sed -n $f(2)^'s/[^ ].*//p' $f(1)} comm -23 <{echo $oper} <{sed -n $f(2)^',/^'^$a^'}/ s/^'^$a^'case ([^:]*):.*/\1/p' $f(1) | sort} | sed -n 's/.+/'^$f(1)^':'^$f(2)^' missing &/p' }