rsalz@uunet.uu.net (Rich Salz) (08/03/88)
Submitted-by: Landon Curt Noll <chongo@uts.amdahl.com> Posting-number: Volume 15, Issue 109 Archive-name: ioccc/part05 # 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: # # ./1986/Makefile ./1986/README ./1986/applin.c ./1986/applin.hint # ./1986/august.c ./1986/august.hint ./1986/bright.c ./1986/bright.hint # ./1986/hague.c ./1986/hague.hint ./1986/holloway.c ./1986/holloway.hint # ./1986/marshall.c ./1986/marshall.hint ./1986/pawka.c ./1986/pawka.hint # ./1986/rules ./1986/stein.c ./1986/stein.hint ./1986/wall.c # ./1986/wall.hint echo x - ./1986/Makefile sed -e 's/^X//' > "./1986/Makefile" << '//E*O*F ./1986/Makefile//' X# %W% %G% %U% X# X# 1986 makefile X XSHELL=/bin/sh XWINNERS=marshall hague applin bright stein holloway august pawka wall X Xall: ${WINNERS} X Xmarshall: marshall.c X cc $? -o $@ Xhague: hague.c X cc $? -o $@ Xapplin: applin.c X cc $? -o $@ Xbright: bright.c X cc $? -o $@ Xstein: stein.c X -rm -f a.out X cc $? -o $@ X -ln $@ a.out Xholloway: holloway.c X cc $? -o $@ Xaugust: august.c X cc $? -o $@ Xpawka: pawka.c X cc $? -o $@ Xwall: wall.c X cc $? -o $@ X Xclean: X rm -f core Xclobber: clean X rm -f ${WINNERS} a.out Xinstall: all X @echo are you kidding'??' //E*O*F ./1986/Makefile// echo x - ./1986/README sed -e 's/^X//' > "./1986/README" << '//E*O*F ./1986/README//' XThe 1986 contest was named: "The Third International Obfuscated C Code Contest" X XThe rules for 1986 suggested categories due to the success of the 1985 Xjudging method. The maximum size was increased from 512 to 1024 bytes. XLarry Bassel joined as the second official judge. X XA poll was taken for the worst code for BSD and System V program. XThe Bourne Shell (/bin/sh) won for both systems. The BSD finger Xprogram took third place. X XRules and results were posted to net.lang.c and net.unix-wizards. XMicro/Systems Journal published started regular publishing of the winners. XThe practice of making first announcement of the winners at the Summer XUsenix BOF started this year. A notice was posted to net.announce. X //E*O*F ./1986/README// echo x - ./1986/applin.c sed -e 's/^X//' > "./1986/applin.c" << '//E*O*F ./1986/applin.c//' Xcat =13 /*/ >/dev/null 2>&1; echo "Hello, world!"; exit X* X* This program works under cc, f77, and /bin/sh. X* X*/; main() { X write( Xcat-~-cat X /*,'( X*/ X ,"Hello, world!" X , Xcat); putchar(~-~-~-cat); } /* X ,)') X end X*/ //E*O*F ./1986/applin.c// echo x - ./1986/applin.hint sed -e 's/^X//' > "./1986/applin.hint" << '//E*O*F ./1986/applin.hint//' XMost adaptable program: <hpfcdc!jack> Jack Applin X X Jack Applin X Hewlett-Packard X Ft. Collins X Colorado X USA X XCompile and/or execute as directed by the documentation. X XThe judges were so amused by this little program that we created an Xaward just for it. This program is portable to the C and Fortran 77 Xcompilers as well as executable by the bourne shell! //E*O*F ./1986/applin.hint// echo x - ./1986/august.c sed -e 's/^X//' > "./1986/august.c" << '//E*O*F ./1986/august.c//' Xtypedef struct n{int a:3, Xb:29;struct n*c;}t;t* Xf();r(){}m(u)t*u;{t*w,*z; Xz=u->c,q(z),u->b=z->b*10, Xw=u->c=f(),w->a=1,w->c=z-> Xc;}t*k;g(u)t*u;{t*z,*v,*p, X*x;z=u->c,q(z),u->b=z->b,v X=z->c,z->a=2,x=z->c=f(),x X->a=3,x->b=2,p=x->c=f(),p X->c=f(),p->c->a=1,p->c->c= Xv;}int i;h(u)t*u;{t*z,*v,* Xw;int c,e;z=u->c,v=z->c,q( Xv),c=u->b,e=v->b,u->b=z->b X,z->a=3,z->b=c+1,e+9>=c&&( Xq(z),e=z->b,u->b+=e/c,w=f( X),w->b=e%c,w->c=z->c,u->c= Xw);}int(*y[4])()={r,m,g,h}; Xchar *sbrk();main(){t*e,*p,*o; Xo=f(),o->c=o,o->b=1,e=f(), Xe->a=2,p=e->c=f(),p->b=2, Xp->c=o,q(e),e=e->c,(void)write X(1,"2.",2);for(;;e=e->c){q(e), Xe->b=write(1,&e->b["0123456789"], X1);}}t*f(){return i||(i=1000, Xk=(t*)sbrk(i*sizeof(t))),k+--i; X}q(p)t*p;{(*y[p->a])(p);} //E*O*F ./1986/august.c// echo x - ./1986/august.hint sed -e 's/^X//' > "./1986/august.hint" << '//E*O*F ./1986/august.hint//' XBest complex task done in a complex way: <augustss@chalmers> Lennart Augustsson X X Lennart Augustsson X Dept. of Comp. Sci. X Chalmers University of Technology, X 412 96 Gothenburg X Sweden X XThis program computes a specific mathematical value. Simply compile Xand give it an infinite amount of stack space and cpu time. Otherwise Xjust be satisfied with the approximation displayed just before the core Xdump. X XThis program will pass lint on your system assuming your lint is brave Xenough to try and parse it correctly. //E*O*F ./1986/august.hint// echo x - ./1986/bright.c sed -e 's/^X//' > "./1986/bright.c" << '//E*O*F ./1986/bright.c//' X#include <stdio.h> X#define O1O printf X#define OlO putchar X#define O10 exit X#define Ol0 strlen X#define QLQ fopen X#define OlQ fgetc X#define O1Q abs X#define QO0 for Xtypedef char lOL; X XlOL*QI[] = {"Use:\012\011dump file\012","Unable to open file '\x25s'\012", X "\012"," ",""}; X Xmain(I,Il) XlOL*Il[]; X{ FILE *L; X unsigned lO; X int Q,OL[' '^'0'],llO = EOF, X X O=1,l=0,lll=O+O+O+l,OQ=056; X lOL*llL="%2x "; X (I != 1<<1&&(O1O(QI[0]),O10(1011-1010))), X ((L = QLQ(Il[O],"r"))==0&&(O1O(QI[O],Il[O]),O10(O))); X lO = I-(O<<l<<O); X while (L-l,1) X { QO0(Q = 0L;((Q &~(0x10-O))== l); X OL[Q++] = OlQ(L)); X if (OL[0]==llO) break; X O1O("\0454x: ",lO); X if (I == (1<<1)) X { QO0(Q=Ol0(QI[O<<O<<1]);Q<Ol0(QI[0]); X Q++)O1O((OL[Q]!=llO)?llL:QI[lll],OL[Q]);/*" X O10(QI[1O])*/ X O1O(QI[lll]);{} X } X QO0 (Q=0L;Q<1<<1<<1<<1<<1;Q+=Q<0100) X { (OL[Q]!=llO)? /* 0010 10lOQ 000LQL */ X ((D(OL[Q])==0&&(*(OL+O1Q(Q-l))=OQ)), X OlO(OL[Q])): X OlO(1<<(1<<1<<1)<<1); X } X O1O(QI[01^10^9]); X lO+=Q+0+l;} X } X D(l) { return l>=' '&&l<='\~'; X} //E*O*F ./1986/bright.c// echo x - ./1986/bright.hint sed -e 's/^X//' > "./1986/bright.hint" << '//E*O*F ./1986/bright.hint//' XMost useful obfuscation: <dataio!bright> Walter Bright X XCompile this program and give filenames as arguments. For example try: X X bright bright.c X bright bright X XMr. Bright exploits the c pre-processor, similar variables and Xexcessive shifting to obfuscate an otherwise useful binary display Xprogram. This gives you a small example of what it is like to Xmaintain the Bourne shell! :-} //E*O*F ./1986/bright.hint// echo x - ./1986/hague.c sed -e 's/^X//' > "./1986/hague.c" << '//E*O*F ./1986/hague.c//' X#define DIT ( X#define DAH ) X#define __DAH ++ X#define DITDAH * X#define DAHDIT for X#define DIT_DAH malloc X#define DAH_DIT gets X#define _DAHDIT char X_DAHDIT _DAH_[]="ETIANMSURWDKGOHVFaLaPJBXCYZQb54a3d2f16g7c8a90l?e'b.s;i,d:" X;main DIT DAH{_DAHDIT XDITDAH _DIT,DITDAH DAH_,DITDAH DIT_, XDITDAH _DIT_,DITDAH DIT_DAH DIT XDAH,DITDAH DAH_DIT DIT DAH;DAHDIT XDIT _DIT=DIT_DAH DIT 81 DAH,DIT_=_DIT X__DAH;_DIT==DAH_DIT DIT _DIT DAH;__DIT XDIT'\n'DAH DAH DAHDIT DIT DAH_=_DIT;DITDAH XDAH_;__DIT DIT DITDAH X_DIT_?_DAH DIT DITDAH DIT_ DAH:'?'DAH,__DIT XDIT' 'DAH,DAH_ __DAH DAH DAHDIT DIT XDITDAH DIT_=2,_DIT_=_DAH_; DITDAH _DIT_&&DIT XDITDAH _DIT_!=DIT DITDAH DAH_>='a'? DITDAH XDAH_&223:DITDAH DAH_ DAH DAH; DIT XDITDAH DIT_ DAH __DAH,_DIT_ __DAH DAH XDITDAH DIT_+= DIT DITDAH _DIT_>='a'? DITDAH _DIT_-'a':0 XDAH;}_DAH DIT DIT_ DAH{ __DIT DIT XDIT_>3?_DAH DIT DIT_>>1 DAH:'\0'DAH;return XDIT_&1?'-':'.';}__DIT DIT DIT_ DAH _DAHDIT XDIT_;{DIT void DAH write DIT 1,&DIT_,1 DAH;} //E*O*F ./1986/hague.c// echo x - ./1986/hague.hint sed -e 's/^X//' > "./1986/hague.hint" << '//E*O*F ./1986/hague.hint//' XWorst abuse of the C preprocessor: <ukc!jmh> Jim Hague X X Jim Hague X University of Kent at Canterbury X Canterbury, Kent X UK X XCompile this program and feed ascii text into standard input. This Xprogram is known to pass lint on some systems and abort lint on Xothers. X XThis program was selected for the 1987 t-shirt collection. X XThink morse code when you ponder this program. Note how use of Xsimilar variables can be obfuscating! The author notes that this Xprogram implements the international morse standard. Now for extra Xcredit, what morse message does the program spell out? //E*O*F ./1986/hague.hint// echo x - ./1986/holloway.c sed -e 's/^X//' > "./1986/holloway.c" << '//E*O*F ./1986/holloway.c//' X#include "stdio.h" X#define e 3 X#define g (e/e) X#define h ((g+e)/2) X#define f (e-g-h) X#define j (e*e-g) X#define k (j-h) X#define l(x) tab2[x]/h X#define m(n,a) ((n&(a))==(a)) X Xlong tab1[]={ 989L,5L,26L,0L,88319L,123L,0L,9367L }; Xint tab2[]={ 4,6,10,14,22,26,34,38,46,58,62,74,82,86 }; X Xmain(m1,s) char *s; { X int a,b,c,d,o[k],n=(int)s; X if(m1==1){ char b[2*j+f-g]; main(l(h+e)+h+e,b); printf(b); } X else switch(m1-=h){ X case f: X a=(b=(c=(d=g)<<g)<<g)<<g; X return(m(n,a|c)|m(n,b)|m(n,a|d)|m(n,c|d)); X case h: X for(a=f;a<j;++a)if(tab1[a]&&!(tab1[a]%((long)l(n))))return(a); X case g: X if(n<h)return(g); X if(n<j){n-=g;c='D';o[f]=h;o[g]=f;} X else{c='\r'-'\b';n-=j-g;o[f]=o[g]=g;} X if((b=n)>=e)for(b=g<<g;b<n;++b)o[b]=o[b-h]+o[b-g]+c; X return(o[b-g]%n+k-h); X default: X if(m1-=e) main(m1-g+e+h,s+g); else *(s+g)=f; X for(*s=a=f;a<e;) *s=(*s<<e)|main(h+a++,(char *)m1); X } X} //E*O*F ./1986/holloway.c// echo x - ./1986/holloway.hint sed -e 's/^X//' > "./1986/holloway.hint" << '//E*O*F ./1986/holloway.hint//' XBest simple task performed in a complex way: <drivax!holloway> Bruce Holloway X X Bruce Holloway X Digital Research, Inc. X Monterey, CA X USA X XBelieve it or not, this is the old standard "Hello, world" program Xperformed in a very complex way. The judges and the author defy you Xdo determine how it does it. It is a good thing that K&R didn't use Xthis version as the first C program! //E*O*F ./1986/holloway.hint// echo x - ./1986/marshall.c sed -e 's/^X//' > "./1986/marshall.c" << '//E*O*F ./1986/marshall.c//' X extern int X errno X ;char X grrr X ;main( r, X argv, argc ) int argc , X r ; char *argv[];{int P( ); X#define x int i, j,cc[4];printf(" choo choo\n" ) ; Xx ;if (P( ! i ) | cc[ ! j ] X& P(j )>2 ? j : i ){* argv[i++ +!-i] X; for (i= 0;; i++ ); X_exit(argv[argc- 2 / cc[1*argc]|-1<<4 ] ) ;printf("%d",P(""));}} X P ( a ) char a ; { a ; while( a > " B " X /* - by E ricM arsh all- */); } //E*O*F ./1986/marshall.c// echo x - ./1986/marshall.hint sed -e 's/^X//' > "./1986/marshall.hint" << '//E*O*F ./1986/marshall.hint//' XBest layout: <burdvax!eric> Eric Marshall X X Eric Marshall X System Development Corporation, a Burroughs Company X P.O. Box 517 X Paoli, PA. X 19301 X XThis program prints the name of the picture. The layout is somewhat Xpretty through it is not the usual sort of output one would expect Xfrom printing a program! X XThis program was slected for the 1987 t-shirt collection. X XThis program is known to give some C compilers a problems. //E*O*F ./1986/marshall.hint// echo x - ./1986/pawka.c sed -e 's/^X//' > "./1986/pawka.c" << '//E*O*F ./1986/pawka.c//' X#include "stdio.h" X#define xyxx char X#define xyyxx putchar X#define xyyyxx while X#define xxyyyx int X#define xxxyyx main X#define xyxyxy if X#define xyyxyy '\n' Xxyxx *xyx [] = { X"]I^x[I]k\\I^o[IZ~\\IZ~[I^|[I^l[I^j[I^}[I^n[I]m\\I]h", X"]IZx\\IZx[IZk\\IZk[IZo_IZ~\\IZ~[IZ|_IZl_IZj\\IZj]IZ}]IZn_IZm\\IZm_IZh", X"]IZx\\IZx[I^k[I\\o]IZ~\\IZ~\\I]|[IZl_I^j]IZ}]I^n[IZm\\IZm_IZh", X"]IZx\\IZx[IZk\\IZk[IZo_IZ~\\IZ~_IZ|[IZl_IZj\\IZj]IZ}]IZn_IZm\\IZm]IZh", X"]I^x[I]k\\IZo_I^~[I^|[I^l[IZj\\IZj]IZ}]I^n[I]m^IZh",'\0'};/*xyyxyxyxxxyxxxyy*/ Xxyxx *xyyx; xxyyyx xyyyx,xyyyyx,xyyyyyx=0x59,xyyyyyyx=0x29,/*yxxyxyyyxxyyyxyy*/ Xxxyx=0x68;xxxyyx(){xyyyyx=0;xyyyxx(xyx[xyyyyx]){xyyx=xyx[xyyyyx++];/*xyyyxxyx*/ Xxyyyxx(*xyyx){xyyyx= *xyyx++-xyyyyyx;xyyyxx(xyyyx--)xyyxx(*xyyx-xyyyyyyx);/*x*/ Xxyxyxy(*xyyx==xxyx)xyyxx(xyyxyy);*xyyx++;}}}/*xyxyxyyyyxxyxxxyyyxyyyxyxxyyy*/ //E*O*F ./1986/pawka.c// echo x - ./1986/pawka.hint sed -e 's/^X//' > "./1986/pawka.hint" << '//E*O*F ./1986/pawka.hint//' XMost illegible code: <PAWKA@NOSC-TECR.ARPA> Michael H. Pawka X X Michael H. Pawka X Naval Ocean Systems Center X San Diego, Ca X 92152 X XThe judges found this entry to be one of hardest to read without the Xaid of /lib/cpp and a good editor. When run, the program asks if it Xis obfuscated, of all things! //E*O*F ./1986/pawka.hint// echo x - ./1986/rules sed -e 's/^X//' > "./1986/rules" << '//E*O*F ./1986/rules//' XWARNING: The rules and mailing address for the contest change from year X to year. Be sure that you consult the current set of rules X before submitting entries. X------------------------------------------------------------------------------- X XSubject: Third International Obfuscated C Code Contest Rules XNewsgroups: net.lang.c XKeywords: rules,1986,obfuscate,contest X XGOAL: To write the most Obscure working C program following the rules below: X XRULES: 1) The source must be 1024 bytes or less. NO exceptions! X X 2) Include in your letter: X a) Name (or anonymous), Company/School, City, State and Country. X b) Your path from a major network site, if applicable. X c) A brief statement of what the program should do. X d) The Machine(s)/Operating system(s) on which it runs. X e) Enclose your source between the following lines: X ---start of program--- X <place obfuscated source of 1024 bytes or less here> X ---end of program--- X X 3) The entry should be written in common C. (K&R + common extensions) X X 4) The program must be of original work. All programs must be X in the public domain. All copyrighted programs will be rejected. X X 5) Entries must be received between 31-Mar-86 and 30-May-86 0:00 GMT. X Email your entries to: X X decwrl!nsc!obfuscate X X Entries sent by UUCP Email will be confirmed starting 1-May-86. X People are encouraged to submit entries via Email, however one may X mail entries the following address: X X International Obfuscated C Code Contest X National Semiconductor X Attn: Landon Noll Mail Stop: 7c266 X 1135 Kern Ave. X Sunnyvale, CA 94086 X U.S.A. X XAWARDS: Winners of each category and the best of Show will be posted to X net.announce as well as being published in the May 86 issue of the X "Micro/Systems Journal". Winners also get to receive international X fame/flame for their efforts! X XJUDGING: Awards will be given to the best entry in a number of categories. X The actual category list will vary depending on the types of entries X we receive. At the moment, we are considering using the following: X X * The most obscure algorithm X * The worst abuse of the C preprocessor X * The strangest source layout X * The best small one line program X * The most useful program X * <anything else we need to give recognition to a good entry> X X Judging will be done by myself, Larry Bassel and other local people X who are willing to help out. X X We will attempt to run each of them on a Vax 785/4.2BSD system. X Don't let the lack of such a system stop you! Try to avoid operating X system/machine specific code if you do not have such a system. X Extra points will be given for programs which: X X a) pass lint without complaint X b) do something quasi-interesting X c) are portable X X A larger program size was selected to allow for a wider range of X program ideas. However if you don't need 1024 bytes don't use them. X Given two programs with similar techniques and similar levels of X obfuscation, we will tend to favor the more concise entry. X XPOLL: We want to know what you think is the most poorly coded utility X released with 4.xBSD and/or Sys V. The top results plus the X best flames will be posted along with the contest results. X To vote, please follow the guidelines below: X X 1) Include at the top of the letter: X a) Name (or anonymous), Company/School, City, State and Country. X b) Your path from a major network site, if applicable. X c) the name of the poorly coded utility X d) the name of the operating system on which it is found X e) the line: <<<FLAME ON>>> X f) up to 1024 bytes of flames X g) the line: <<<FLAME OFF>>> X X 2) Confine your vote to the standard set of commands. I.e., don't X flame about local commands or user contributed software. X X 3) Submit your votes via Email to: X X for 4.xBSD: decwrl!nsc!bsd_util X for Sys V: decwrl!nsc!sysV_util X X or, you may send your votes by letter to the same address used by X the contest. Please place your votes on different sheets of paper. X Xchongo <C> /\cc/\ //E*O*F ./1986/rules// echo x - ./1986/stein.c sed -e 's/^X//' > "./1986/stein.c" << '//E*O*F ./1986/stein.c//' Xtypedef char*z;O;o;_=33303285;main(b,Z)z Z;{b=(b>=0||(main(b+1,Z+1),*Z=O%(o=(_% X25))+'0',O/=o,_/=25))&&(b<1||(O=time(&b)%0250600,main(~5,*(z*)Z),write(1,*(z*)Z X,9)));} //E*O*F ./1986/stein.c// echo x - ./1986/stein.hint sed -e 's/^X//' > "./1986/stein.hint" << '//E*O*F ./1986/stein.hint//' XBest one liner: <gustaf!cd-jan> Jan Stein X XNOTE: to avoid problems with news and mail, the single line was split X into 3 lines. Join all lines into a single line to recreate X the original file. X XCompile and link to a filename called 'a.out'. Try the program with the Xfollowing argument: X X a.out ^N^N X X(^N is ASCII control-N). One some machines, ^M^L is needed to get it to Xoutput cleanly. Your system may require another set of characters. XIn time, you will figure out what it does. :-) //E*O*F ./1986/stein.hint// echo x - ./1986/wall.c sed -e 's/^X//' > "./1986/wall.c" << '//E*O*F ./1986/wall.c//' X#define _c(C)_ (C)&('|'+3):c_()(C)>>('\n'-3) __; /**/ X#define C char* X#define keyboard ",,B3-u;.(&*5., /(b*(1\036!a%\031m,,,,,\r\n" X#define main(o,oo)oo(o){ X#define _ ;case XC X#define c_(cc)c cc= X#define C_(sand)_O(sand)witch Xo=keyboard; X#define __ ;break; XC Xccc( Xcc) XC Xcc; X{ XC Xcccc= Xcc;int X#ifndef lint X#define keyboard "dijs QH.soav Vdtnsaoh DmfpaksoQz;kkt oa, -dijs" X#endif Xc; Xmain(;c_(=(*cc);*cc++)c,for); X#define _O(s)s Xmain(0xb+(c>>5),C_(s)) X_'\v' X:__ _'\f': Xmain(c,C_(s)); X_c(8098)_c(6055)_c(14779)_c(10682) X#define O_(O)_O(O)stem(ccc( X_c(15276)_c(11196)_c(15150) X#define _C ;return X_c(11070)_c(15663)_c(11583) X} X__ Xdefault X:c_(+)o[c&__LINE__-007]; Xmain(c_(-)'-'-1,C_(s))_ X0214 X:_ X0216 X:c_(+)025 _ X0207 X:c_(-)4 _ X0233 X:c_(+)' '-1; X}}c_(&)'z'+5; X}_C cccc; X}main(,cc) XC X#define O write(1, Xc="O"; XO_(sy) keyboard)); Xmain(;;,for); Xread(0, Xc,1);* Xc_(&)'~'+1 X;O ccc( Xc), X'\0'); Xmain(*c, XC_(s));_ X4 X:O_(sy)";kkt -oa, dijszdijs QQ"))_C X_ X13 X:O o+' ', X3 X) X#undef main X__ _ 127:O"\b \b",3)__ Xdefault X:O Xc,1) X__}}}main(){ Xcc(); X} //E*O*F ./1986/wall.c// echo x - ./1986/wall.hint sed -e 's/^X//' > "./1986/wall.hint" << '//E*O*F ./1986/wall.hint//' XThe grand prize in most well-rounded in confusion: <sdcrdcf!lwall> Larry Wall X X Larry Wall X System Development Corporation X Santa Monica X California X US of A X XThe original version did not have a `;' character in the first line. XThis caused a number of System V C pre-preprocessors to gripe about a Xsyntax error. X XThis program is a masterpiece of obfuscation and humor. Larry Wall X(the hacker who gave us rn and patch) asks you to compile and consider Xthe warning message generated by the C compiler. Then execute the Xprogram and type charters into its standard input. You will see why Xthe compiler documents the program. //E*O*F ./1986/wall.hint// echo Possible errors detected by \'wc\' [hopefully none]: temp=/tmp/shar$$ trap "rm -f $temp; exit" 0 1 2 3 15 cat > $temp <<\!!! 36 96 530 Makefile 15 115 715 README 15 37 243 applin.c 13 57 358 applin.hint 26 34 718 august.c 15 79 514 august.hint 47 111 1020 bright.c 11 57 386 bright.hint 28 118 991 hague.c 17 93 578 hague.hint 33 72 912 holloway.c 11 66 381 holloway.hint 14 87 938 marshall.c 15 68 425 marshall.hint 18 41 838 pawka.c 10 51 300 pawka.hint 103 634 4048 rules 3 5 168 stein.c 14 85 501 stein.hint 78 125 1025 wall.c 17 103 625 wall.hint 539 2134 16214 total !!! wc ./1986/Makefile ./1986/README ./1986/applin.c ./1986/applin.hint ./1986/august.c ./1986/august.hint ./1986/bright.c ./1986/bright.hint ./1986/hague.c ./1986/hague.hint ./1986/holloway.c ./1986/holloway.hint ./1986/marshall.c ./1986/marshall.hint ./1986/pawka.c ./1986/pawka.hint ./1986/rules ./1986/stein.c ./1986/stein.hint ./1986/wall.c ./1986/wall.hint | sed 's=[^ ]*/==' | diff -b $temp - exit 0 -- Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.