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 0
dcd@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