1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#!/bin/sh
#
# tiger - A UN*X security checking system
# Copyright (C) 1993 Douglas Lee Schales, David K. Hess, David R. Safford
#
# Please see the file `COPYING' for the complete copyright notice.
#
# difflogs - 06/16/93
#
#-----------------------------------------------------------------------------
#
[ -z "$DIFF" ] && DIFF=`which diff`
[ -z "$CAT" ] && CAT=`which cat`
[ -z "$RM" ] && RM=`which rm`
[ -z "$WORKDIR" ] && WORKDIR="/tmp"
oldfile="$1"
newfile="$2"
SPC="$DIFFD"
[ ! -n "$DIFF" ] && {
$CAT $newfile
exit 0
}
if [ -s $oldfile ]; then
$DIFF -D${SPC}TIGERCHANGES $oldfile $newfile |
{
lastcontext=
flag=0
listing=0
while read line
do
case "$line" in
'#ifdef TIGERCHANGES') flag=1;;
\#endif*) flag=0;;
'#ifndef TIGERCHANGES') flag=2;;
'#else TIGERCHANGES') {
[ $flag -eq 1 ] && flag=2
[ $flag -eq 2 ] && flag=1
}
;;
\#*) {
listing=0
[ $flag -eq 2 -o $flag -eq 1 ] && echo "$line"
[ $flag -eq 0 ] && lastcontext=$line
}
;;
--[A-Z]*) {
listing=1
[ -n "$lastcontext" ] && echo "$lastcontext"
[ $flag -eq 1 ] && echo "NEW: $line"
[ $flag -eq 2 ] && echo "OLD: $line"
lastcontext=
}
;;
*) {
[ -n "$line" -a $listing -eq 1 ] && {
[ $flag -eq 1 ] && echo "NEW: $line"
[ $flag -eq 2 ] && echo "OLD: $line"
}
}
;;
esac
done
} > $WORKDIR/tc.msg.$$
$CAT $WORKDIR/tc.msg.$$
$RM -f $WORKDIR/tc.msg.$$
else
$CAT $newfile
fi
|