ast@cs.vu.nl (Andy Tanenbaum) (12/24/89)
It is 1:30 in the morning here in Europe, Dec. 24, but I made it in time
for the Sleigh to take off for its first run (New Zealand). Actually
Tonga is closer to the International Dateline, but nobody there was good
this year, so it is being omitted.
Tomorrow I will try to get the rest (commands subdirectories).
It case you are wondering why everything is so big, it is not that everything
has been rewritten from scratch, but rather that I ran commands/*.c through
the pretty printer (pretty.c). This gives the odd change to the code.
Of course I could have told everyone to run pretty themselves with my
parameters and saved a ton of bandwidth, but half the people would have
used their own favorite parameters and then cdiffs wouldn't work and it
would be chaos. Eastern Europe notwithstanding, sometimes dictatorship
is the only way to fly.
As people begin to absorb all this stuff, please post reports to the net,
even if it is only "I put everything together on machine XYZ and it
worked fine." I would like some feedback. Also about the distribution
mechanism (shar + compress + uue for the bitnet folks). I'll include my shell
script below for anyone who is interested.
Andy Tanenbaum (ast@cs.vu.nl)
------------------------ shell script that generates all this stuff -------
# makepost new old postdir
# prepares a posting and puts the files in postdir
# All three arguments must be absolute path names - SHOULD CHECK THIS
new=$1
old=$2
post=$3
dir=`basename $new`
# Peter broke my $# trying to fix quoting
if test "$4" != ""
then
echo Usage: makepost newdir olddir postdir
exit 1
fi
case $# in
3) echo "" >/dev/null ;;
*) echo Usage: makepost newdir olddir postdir
exit 1 ;;
esac
work=/usr/tmp/`basename $0`.$$ # this had better be an absolute path too
rm -rf $work
mkdir $work
cd $work
for i in $new/*
do b=`basename $i`
if test -d $i
then
# It is a directory. Skip.
echo $i is a dir "(skipping)"
# makepost $new/$b $old/$b $post
# exit 0
else
# It is a regular file. See if it existed last time.
if test -r $old/$b
then
# It existed last time. Did it change?
if cmp -s $new/$b $old/$b
then
# File didn't change. Don't do anything.
echo $b is unchanged >/dev/null
else
# File did change.
# echo $b has been modified
f=`basename $b .c`
cdiff -c1 $old/$b $new/$b >$f.cdif
newlength=`wc -c <$new/$b`
double=`expr $newlength + $newlength`
difflength=`wc -c <$f.cdif`
if test $difflength -gt $double
then cp $new/$b . #diff is huge; use orig
rm `basename $b .c`.cdif
fi
fi
else
# This file is new.
cp $new/$b .
fi
fi
done
# At this point, $work contains *.cdif, new files, and heavily modified files.
crc $new/* >$dir.crc
echo "------------------- Files in the posting --------------------- "
ls -l # for the log
gather -f $new
cp *uue $post
exit 0dcd@tc.fluke.COM (David Dyck) (12/27/89)
In article <4981@ast.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: > >As people begin to absorb all this stuff, please post reports to the net, >even if it is only "I put everything together on machine XYZ and it >worked fine." I would like some feedback. Also about the distribution >mechanism (shar + compress + uue for the bitnet folks). I'll include my shell >script below for anyone who is interested. > >Andy Tanenbaum (ast@cs.vu.nl) > When I tried to extract the posting "1.5.0 #33 - test", the following three 'binary' files were included directly in the shar file: t10a, t10b, and t11b. The problem may be in the shar program ast used (it could have uuencoded the binary file), or the makepost script (it could have excluded 'binary' files). After I manually edited out the binary files, I was able to unshar the files successfully. Also, does anyone know why the following files were zero length in the 1.5.0 crc list? 00000 0 ./fs/proto.h 00000 0 ./kernel/proto.h 00000 0 ./mm/proto.h David Dyck Domain: dcd@tc.fluke.COM Voice: +1 206 356 5807 UUCP: {uw-beaver,decwrl,microsof,sun}!fluke!dcd Snail: John Fluke Mfg. Co. / P.O. Box 9090 / Everett WA 98206-9090