# Best Abuse of the Rules
Mark Biggar
UNiSYS - System Development Group, Santa Monica
2525 Colorado AV MD 91-01
Santa Monica, CA
90406
## Judges' comments:
### To build:
cc -DC="R>0" -DI="if(T)O" -DO="c=write(1,&c,1);" -DP="main(){X}"\
-DR="read(0,&c,1)" -DT="c!=015" -DW="while(C)I" -DX="char c;W" markb.c
Passes BSD and UTS lint. At least one version of lint is thrown into
an infinite loop by this entry.
### Try:
... | markb | od -c (remember to compile as indicated above)
By changing the compile line you can make this program do anything you
want. This is a very efficient way to transfer source, though it
increases the size of Makefiles.
With only slight variations, this program can be set to many uses.
Consider how easy it would be to release Un*x source in this form;
so what if the make files grow a little! :-)
One vendor's lint got hung in an infinite loop over this entry!
> FYI: We will let Mark get away with this truly sick entry this time, but
> for the future on we have placed a limit on the size of a compile line.
Also see our comment in Larry Wall's entry regarding Mark's contribution.
Copyright (c) 1987, Landon Curt Noll & Larry Bassel.
All Rights Reserved. Permission for personal, educational or non-profit use is
granted provided this this copyright and notice are included in its entirety
and remains unaltered. All other uses must receive prior permission in writing
from both Landon Curt Noll and Larry Bassel.