nicer lint output for cheap
Dave Yost
day at kovacs.UUCP
Mon Sep 30 16:52:57 AEST 1985
If you have old-style lint (v7, 4.2bsd), you may have
noticed as I have that the output from pass2 is a
jumble. After years of living with this, it dawned on
me that I could fix it without source. I modified the
/usr/bin/lint shell script to run pass2 through a new
filter called lint3 (which is also a shell script).
And here they are now:
# This is a shell archive. Remove anything before this line, then
# unpack it by saving it in a file and typing "sh file". (Files
# unpacked will be owned by you and have default permissions.)
#
# This archive contains:
# usr/bin/lint usr/lib/lint/lint3
echo x - usr/bin/lint
cat > "usr/bin/lint" << '//E*O*F usr/bin/lint//'
#! /bin/sh
#
# @(#)SHELL 1.5 (Berkeley) 4/9/83
# $(@)modified to do lint3 fixup pass -- d yost 8/1/85
#
L=/usr/lib/lint/lint T=/usr/tmp/lint.$$ PATH=/bin:/usr/bin O="-C -Dlint"
X= P=unix LL=/usr/lib/lint C= W=fixup
trap "rm -f $T ${T}2 ${T}3 ; exit" 1 2 15
for A in $*
do
case $A in
-*n*) P= ;;
-*p*) P=port ;;
esac
case $A in
*.ln) cat $A >>$T ;;
-l*) cat $LL/llib$A.ln >>$T ;;
-C?*) W=-C P= C=`echo $A | sed -e s/-C/llib-l/` ; X="$X -L -C$C" ;;
-[IDOU]*) O="$O $A" ;;
# -X) LL=/usr/scj/lint L=/usr/scj/lint/lpass ;;
-X) LL=/usr/src/usr.bin/lint L=/usr/src/usr.bin/lint/lpass ;;
-F) W=normal ;;
-*) X="$X $A" ;;
*) echo "$A:" ; (/lib/cpp $O $A | ${L}1 $X >>$T)2>&1
esac
done
case $P in
unix) cat $LL/llib-lc.ln >>$T ;;
port) cat $LL/llib-port.ln >>$T ;;
"") cat /dev/null >>$T ;;
esac
case $W in
fixup) ${L}2 $T $X > ${T}2 ; ${L}3 ${T}2 ${T}3 ;;
-C) cp $T $C.ln ;;
*) ${L}2 $T $X ;;
esac
rm -f $T ${T}2 ${T}3
//E*O*F usr/bin/lint//
echo x - usr/lib/lint/lint3
cat > "usr/lib/lint/lint3" << '//E*O*F usr/lib/lint/lint3//'
#!/bin/sh
#
# fixup pre-sys3 lint output -- Dave Yost <hollywood!day> 8/1/85
#
TMP=$2
fgrep -v 'multiply declared
used inconsistently
variable # of args
value declared inconsistently
value is used, but none returned
always ignored
sometimes ignored
but not defined
but never used' $1
fgrep 'multiply declared
used inconsistently
variable # of args
value declared inconsistently
value is used, but none returned
always ignored
sometimes ignored
but not defined
but never used' $1 > $TMP
echo
if fgrep 'multiply declared' $TMP | sort ; then echo ; fi
if fgrep 'used inconsistently' $TMP | sort ; then echo ; fi
if fgrep 'variable # of args' $TMP | sort ; then echo ; fi
if fgrep 'value declared inconsistently' $TMP | sort ; then echo ; fi
if fgrep 'value is used, but none returned' $TMP | sort ; then echo ; fi
if fgrep 'always ignored' $TMP | sort ; then echo ; fi
if fgrep 'sometimes ignored' $TMP | sort ; then echo ; fi
if fgrep 'but not defined' $TMP | sort ; then echo ; fi
fgrep 'but never used' $TMP | sort ;
//E*O*F usr/lib/lint/lint3//
exit 0
More information about the Comp.sources.unix
mailing list