v15i109: International Obfuscated C Code Contest, Part05/07

Rich Salz rsalz at uunet.uu.net
Wed Aug 3 06:40:06 AEST 1988


Submitted-by: Landon Curt Noll <chongo at 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 at 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 at 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 at uunet.uu.net.



More information about the Comp.lang.c mailing list