diff --git a/thanks-for-help.html b/thanks-for-help.html index e0304dba2..0b195cd8f 100644 --- a/thanks-for-help.html +++ b/thanks-for-help.html @@ -408,7 +408,8 @@ on an IOCCC entry by entry basis.
Jump to: top
The tattoo was done in 2005 by Thomas Scovell.
+Jump to: top
gcc - but not clang - or at least some versions.<
make alt rule only uses -traditional-cpp.
To see the diff between the original and the alternate code, try:
cd 1984/decot ; make diff_orig_alt
+Jump to: top
Jump to: top
a.out.h that is not available in all modern systems, Co
copy of it as to what it should have been at the time, in the fabulous Unix
History
Repo.
+Jump to: top
+Jump to: top
\n in the string - can you figure out
why?) but to make it more friendly to users Cody made it print a \n prior to
returning to the shell. The original code does not have this change.
+Jump to: top
clang object to the number of args of main(), saying that it must
be 0, 2 or 3. The version this has been observed in does not actually object to
1 arg but it is entirely possible that this changes so a second arg (that’s not
-needed and is unused) has been added just in case.
-See the +needed and is unused) has been added just in case. See the FAQ on “main function args” for more details.
Cody also added the script primes.sh which allows one @@ -562,6 +569,7 @@ way.
Cody also added the try.sh script (which runs primes.sh
whether primes(6) is installed or not, but it only does it once with the
default value).
Jump to: top
#o lines to #define. Also unistd.h
Yusuke provided some useful information that amounts to an alternate version
that Cody added. See the index.html for details.
Cody also provided the try.alt.sh script.
+Jump to: top
Winning entry: 1985/shapiro
Winning entry source code: shapiro.c
@@ -584,6 +593,7 @@ sizes (five times) and then compiles and runs it. After the five runs it prompts
you to enter a number, in an infinite loop, exiting if any non-digits are in
input (this includes negative numbers which in the code actually sets it back to
39, the default).
+Jump to: top
Winning entry: 1985/sicherman
Winning entry source code: 1985/sicherman
@@ -667,29 +677,33 @@ don’t even bother calling subr()?
should they object to main() having only one arg.
Cody also added the try.sh and
try.alt.sh scripts.
+Jump to: top
+Jump to: top
Winning entry: 1986/applin
Winning entry source code: applin.c
Cody made the C file executable so one does not have to do sh ./applin.c or ./applin; they can do either ./applin.c or ./applin.
+Jump to: top
Winning entry: 1986/bright
Winning entry source code: bright.c
+Jump to: top
Winning entry: 1986/hague
Winning entry source code: hague.c
Cody made this use fgets().
Cody also added the try.sh script which also feeds to the
-program the input.txt text file that Cody added.
-See the
+program the input.txt text file that Cody added. See the
FAQ on “gets and fgets”
for why this was done.
+Jump to: top
Winning entry: 1986/holloway
Winning entry source code: holloway.c
@@ -701,6 +715,7 @@ a char **) to a char ** and updating the *schar *t, initialising it to s
and then using t instead of s it compiles and runs successfully under
clang and gcc.
+Jump to: top
Winning entry: 1986/marshall
Winning entry source code: marshall.c
@@ -744,6 +759,7 @@ the directory) slightly so that it was possible to silence it. In particular:
which can be disabled. It results in the same behaviour but this way no warnings
are produced.
+Jump to: top
Winning entry: 1986/pawka
Winning entry source code: pawka.c
@@ -751,6 +767,7 @@ are produced.
Cody noticed and fixed a funny mistake in the Makefile where a
-Wno-strict-prototypes was in the wrong location, suggesting that there is a
-D needed to compile the entry but this is not actually so.
+Jump to: top
Winning entry: 1986/stein
Winning entry source code: stein.c
@@ -762,6 +779,7 @@ avoid problems with news and mail but as it is the Best one liner
Cody also added the stein.sh script which runs the two
commands that we suggest in order to get it to show clean output.
+Jump to: top
Winning entry: 1986/wall
Winning entry source code: wall.c
@@ -827,14 +845,17 @@ work with gcc - but it still required -traditional-cpp
And of course as noted two strings had to be strdup()d.
There might have been other changes as well.
+Jump to: top
+Jump to: top
Winning entry: 1987/biggar
Winning entry source code: biggar.c
+Jump to: top
Winning entry: 1987/heckbert
Winning entry source code: heckbert.c
@@ -847,6 +868,7 @@ program works but also how the folded code can recreate the original.
of strings.h and because it’s identical in use to strchr(3) (and we noted
that for System V we had to do this) Cody added to the Makefile
-Dindex=strchr.
+Jump to: top
Winning entry: 1987/hines
Winning entry source code: hines.c
@@ -855,6 +877,7 @@ that for System V we had to do this) Cody added to the Makefile
goto.c and the text file goto.txt
for demonstration purposes. Notice that the program is case sensitive which
running the program on the text file demonstrates.
+Jump to: top
Winning entry: 1987/lievaart
Winning entry source code: lievaart.c
@@ -893,15 +916,16 @@ immediately goes back to the prompting of the level.
#define D define even though it’s unused. This was done for both versions as
well (the one with the board and the one without, the entry itself with the
size constraints of the contest).
+Jump to: top
-Cody made this use fgets(3).
-See the
+
Cody made this use fgets(3). See the
FAQ on “gets and fgets”
for why this was done.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 1987/westley
Winning entry source code: westley.c
@@ -916,9 +940,11 @@ since the code was commented out it’s probably not a big deal to have it remov
instead as it does look more symmetrical now.
Cody also added to the Makefile -include stdio.h in the nowadays very
unlikely(?) but nevertheless suggested case that putchar(3) is not available.
+Jump to: top
+Jump to: top
Winning entry: 1988/dale
Winning entry source code: dale.c
@@ -973,6 +999,7 @@ modern compilers do not allow directives like:
However, to keep the entry as close to as possible in look, Cody kept the _
macro in place but it’s no longer used.
Cody also provided the try.sh script.
+Jump to: top
Winning entry: 1988/isaak
Winning entry source code: isaak.c
@@ -985,6 +1012,7 @@ index.html file for more details.
Cody also uudecoded and removed the file isaak.encode, putting the output in
isaak.output.txt. This was done strictly for historical remarks that can be
found in the index.html file.
+Jump to: top
Winning entry: 1988/litmaath
Winning entry source code: litmaath.c
@@ -992,6 +1020,7 @@ found in the index.html file.
Cody added the alternate code
which is code that we suggested at the time of publication, in the remarks, to
help understand the entry, and for fun.
+Jump to: top
Winning entry: 1988/phillipps
Winning entry source code: phillipps.c
@@ -1009,14 +1038,15 @@ functions and tried to match the format as best as possible of what
once did; instead, the format of pain() is exactly like how main() was as it’s the
same code, just a p instead of an m in the name. Additionally, main() returns
!pain(...) like main() used to do to itself (pain() does as well).
+Jump to: top
Winning entry: 1988/reddy
Winning entry source code: reddy.c
-Cody made this use fgets(3).
-See the
+
Cody made this use fgets(3). See the
FAQ on “gets and fgets”
for why this was done.
+Jump to: top
Winning entry: 1988/spinellis
Winning entry source code: spinellis.c
@@ -1031,6 +1061,7 @@ original. See the index.html file for details on the alternate code.
Meanwhile Cody was twisted enough to point out (though to be fair he felt sick
doing this) that with a slight modification this entry can be C++ instead. We don’t
thank him for this ghastly point! :-)
+Jump to: top
Winning entry: 1988/westley
Winning entry source code: westley.c
@@ -1043,9 +1074,11 @@ what happens with current compilers! See the index.html files for details.
entry as seeing the code with the result at once is far more beautiful.
Cody also changed the ints to be float as that’s what they are printed as:
not strictly necessary but nonetheless more correct, even if not warned against.
+Jump to: top
+Jump to: top
Winning entry: 1989/fubar
Winning entry source code: fubar.c
@@ -1077,6 +1110,7 @@ might end up failing to work even after changing it back. This was resolved by:<
Cody also ‘modernised’ the script to use bash and fixed for ShellCheck. The
if [ .. ] was changed in the C code as well as the script.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 1989/jar.1
Winning entry source code: jar.1.c
@@ -1093,6 +1127,7 @@ most certainly do have a personality and they can be very sociable.
alternate code directly, to match that of the main entry. As we simulate the
functionality anyway, and since one may still run the code or the script (for
the original entry and the alternate code) anyway, it works out well.
+Jump to: top
Winning entry: 1989/jar.2
Winning entry source code: jar.2.c
@@ -1123,6 +1158,7 @@ result in:
shell returned 2
because the alt rule had what normally is in the ${PROG}.alt rule.
+Jump to: top
Winning entry: 1989/ovdluhe
Winning entry source code: ovdluhe.c
@@ -1141,6 +1177,7 @@ the author’s remarks and the top
Winning entry: 1989/paul
Winning entry source code: paul.c
@@ -1151,6 +1188,7 @@ he was using lldb and saw that the type of a pointer was too long :
Cody also provided the alternate version
which has the trace function that the author included but commented out. See the
index.html for details.
+Jump to: top
Winning entry: 1989/robison
Winning entry source code: robison.c
@@ -1160,6 +1198,7 @@ made, try:
cd 1989/robison ; make diff_orig_prog
(It adds the C token pasting operator ## instead of /**/.)
Cody added the try.sh script.
+Jump to: top
Winning entry: 1989/tromp
Winning entry source code: tromp.c
@@ -1184,11 +1223,13 @@ various other things, so that now the alt version, which is better, can be used.
Although we appreciate the help here, he cynically noted that he had to have an
IOCCC Tetris working (this of course was
not his only reason :-) )
+Jump to: top
+Jump to: top
Winning entry: 1989/westley
Winning entry source code: westley.c
@@ -1253,9 +1294,11 @@ compiles it will work for compilers like gcc and one can then use t
output.
The compile.sh script allows one to specify the compiler with the CC
environmental variable; see the index.html for details.
+Jump to: top
+Jump to: top
Winning entry: 1990/baruch
Winning entry source code: baruch.c
@@ -1269,16 +1312,16 @@ question (i.e. it was only tested in the original entry). YMMV.
Cody also made the code look more like the original, removing the int from
the variables, adding instead -Wno-implicit-int. The newline added by the
judges was retained.
+Jump to: top
Winning entry: 1990/cmills
Winning entry source code: cmills.c
Yusuke got this to work in modern systems (it previously resulted in a bus
-error).
-Cody made this use fgets(3).
-See the
+error). Cody made this use fgets(3). See the
FAQ on “gets and fgets”
for why this was done.
+Jump to: top
Winning entry: 1990/dds
Winning entry source code: dds.c
@@ -1291,10 +1334,10 @@ more like the original in this way by redefining free to have the c
operator itself.
Cody fixed another compiler error by removing the erroneous prototype to
fopen(3). Cody also changed a char * used for file I/O to be a proper FILE * and fixed a typo in LANDER.BAS.
-Cody also made this use fgets(3).
-See the
+
Cody also made this use fgets(3). See the
FAQ on “gets and fgets”
for why this was done.
+Jump to: top
Winning entry: 1990/dg
Winning entry source code: dg.c
@@ -1311,6 +1354,7 @@ but later Cody added it back to make it more like the original).
The second problem was suggested by the judges at the time of judging, to do
with if the C preprocessor botches single quotes in cpp expansion.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 1990/jaw
Winning entry source code: jaw.c
@@ -1326,6 +1370,7 @@ the time of releasing the winning entries of 1990.
NOTE: as btoa is not common we used a ruby script from Yusuke but with a minor
fix applied by Cody that made the program just show oops twice (twice is not
a typo here) from invalid input but which now works.
+Jump to: top
Winning entry: 1990/pjr
Winning entry source code: pjr.c
@@ -1333,6 +1378,7 @@ a typo here) from invalid input but which now works.
Cody added the alternate code which was suggested by the judges
in the case that your compiler cannot compile X=g()... but it actually does
something else and is recommended by the author as well.
+Jump to: top
Winning entry: 1990/scjones
Winning entry source code: scjones.c
@@ -1342,6 +1388,7 @@ suggested -trigraphs. Both work but we used Yusuke’s idea as this
first.
Cody added the try.sh script to show exactly what the
entry does.
+Jump to: top
Winning entry: 1990/tbr
Winning entry source code: tbr.c
@@ -1354,11 +1401,10 @@ author.
Cody also changed the code (in both versions) to use fgets(3) instead of
gets(3) so one would not get a warning about the use of gets(3) at linking
time or execution, the latter of which was causing confusing output due to the
-warning being interspersed with the program’s interactive output.
-See the
+warning being interspersed with the program’s interactive output. See the
FAQ on “gets and fgets”
-for more details on why this change was
-done more generally.
+for more details on why this change was done more generally.
+Jump to: top
Winning entry: 1990/theorem
Winning entry source code: theorem.c
@@ -1378,8 +1424,7 @@ but as he was testing the fibonacci.c bug he ended up changing it a
if (a[1]==NULL||a[2]==NULL||a[3]==NULL||a[4]==NULL||a[5]==NULL) return 1;
be changed to just test the value of A when a is argv and A is argc? You
tell us!
-Cody also changed the code to use fgets(3).
-See the
+
Cody also changed the code to use fgets(3). See the
FAQ on “gets and fgets”
for why this was done.
Since this program is so incredible the extra fixes were deemed worth having and
@@ -1393,6 +1438,7 @@ original program and some of the programs it generates.
Yusuke pointed out that atof(3) nowadays needs #include <stdlib.h> which was
used in order to get this to work initially (prior to this output was there but
incomplete).
+Jump to: top
Winning entry: 1990/stig
Winning entry source code: stig.c
@@ -1401,6 +1447,7 @@ incomplete).
worked fine in macOS).
He also changed the Makefile to use bash not zsh as not all systems have
zsh and the Makefile actually sets SHELL to bash.
+Jump to: top
Winning entry: 1990/westley
Winning entry source code: westley.c
@@ -1409,16 +1456,21 @@ worked fine in macOS).
in places for a short int which was changed to just 1. Since it’s
instructional to see the differences he has provided an alternate version,
westley.alt.c, which is the original
-code.
+code (see Alternate code in
+1990/westley/index.html).
He also changed the argc to be an int, not a char, even though it might
-often be the same (this in particular was done for clang).
+often be the same (this in particular was done for clang). See the
+FAQ on “main function args”
+for more details.
He also fixed the code to not enter an infinite loop if arg is a number not > 0.
To be more like the original the number of args passed to the program has not
been fixed so that if one passes no arg it will still likely crash.
Cody also added the try.sh script.
+Jump to: top
+Jump to: top
Winning entry: 1991/ant
Winning entry source code: ant.c
@@ -1442,6 +1494,10 @@ will be a bit easier to use for those familiar with vim in the following ways
Use q to exit.
The other keys were left unchanged.
+See the
+FAQ on “alternate code
+for why this was done.
+Jump to: top
Winning entry: 1991/brnstnd
Winning entry source code: brnstnd.c
@@ -1458,6 +1514,7 @@ slightly more like the original, even though it’s unused.
try.txt which the script uses.
Cody also fixed the make clobber rule which left a symbolic link in the
directory even after the target file was deleted (from make clobber).
+Jump to: top
Winning entry: 1991/buzzard
Winning entry source code: buzzard.c
@@ -1468,12 +1525,15 @@ calls atoi(3) took an arg without any type specified and as an impl
it was not a char * which crashed the program in modern systems.
Cody also made the file name in the code (which is the default maze file) not
hard-coded but instead be __FILE__.
-Finally Cody added the alternate
+Finally Cody added the alternate
version which will possibly feel more
at home with those familiar with vi(m): k for forward, h for left and l
for right. This version also has a more useful way to exit, just entering q
followed by enter, rather than completing (and it’s a maze) or killing the
-program. We still recommend you try the original version first, of course.
+program. We still recommend you try the original version first, of course. See the
+FAQ on “alternate code”
+for more details.
+Jump to: top
Winning entry: 1991/davidguy
Winning entry source code: davidguy.c
@@ -1482,6 +1542,7 @@ program. We still recommend you try the original version first, of course.
Cody added to the Makefile some -include options. These appear to
not be strictly necessary (currently) but it was done due to other syscalls
being a problem not being declared first, to hopefully future-proof it.
+Jump to: top
Winning entry: 1991/dds
Winning entry source code: dds.c
@@ -1567,6 +1628,7 @@ opened for reading or a file could not be opened for writing it would not crash.
The definition of whether that should be a bug to fix or a feature to not fix
was pondered and changed numerous times and ultimately that problem with this
entry was fixed. It has not been done in all.
+Jump to: top
Winning entry: 1991/fine
Winning entry source code: fine.c
@@ -1588,6 +1650,7 @@ the Makefile which now has a -DB=(int)b so that
some fun input for fun but mostly different output. He added a great string from
Brian Westley and Cody also added several of his own (can you figure out exactly
which ones? :-) )
+Jump to: top
Winning entry: 1991/rince
Winning entry source code: rince.c
@@ -1605,6 +1668,7 @@ the above fix was applied to these versions too.
The file map-key.jpg was added to help those with smaller screens as
unfortunately the formatting of the key to the map was not easy to change in a
way without ruining how it looks (beyond making it one column only).
+Jump to: top
Winning entry: 1991/westley
Winning entry source code: westley.c
@@ -1620,13 +1684,15 @@ also improved it so that warnings/errors/about to compile messages are not shown
unless the -e option is used. This is because the errors being shown kind of
ruins the experience. Finally he made it pass
ShellCheck.
-Cody also added the alt version which
+
Cody also added the alt version which
is based on the author’s remarks, a version that supposedly (:-) ) always wins.
Cody also fixed the make clobber rule where a file was left lying about when it
should have been removed.
+Jump to: top
+Jump to: top
Winning entry: 1992/adrian
Winning entry source code: adrian.c
@@ -1681,6 +1747,7 @@ the additional tools.
and some of the tools this entry generates. Unlike other scripts, it does not
clear the screen after compilation so that one can see how the other files are
generated.
+Jump to: top
Winning entry: 1992/albert
Winning entry source code: albert.c
@@ -1695,6 +1762,7 @@ return void.
try.alt.sh scripts that correspond to the entry and
the alternate code.
Even so, check 1992/albert in bugs.html.
+Jump to: top
Winning entry: 1992/ant
Winning entry source code: ant.c
@@ -1720,6 +1788,7 @@ thanks to Anthony! For this version,
try.alt.sh was added and an alternate test
Makefile (along the lines of the author’s provided test Makefile) was added,
updated to use ant.alt.
+Jump to: top
Winning entry: 1992/buzzard.1
Winning entry source code: buzzard.1.c
@@ -1730,6 +1799,7 @@ a bug so it was fixed at that point as it only took a few seconds and had to be
verified that it was consistent with the bugs.html file.
He also added the try.sh script to try out some
commands that we suggested and some additional ones that he provide for some fun.
+Jump to: top
Winning entry: 1992/buzzard.2
Winning entry source code: buzzard.2.c
@@ -1739,6 +1809,7 @@ commands that we suggested and some additional ones that he provide for some fun
Cody also added the try.sh and
try.alt.sh scripts that correspond to the entry
and its alternate code.
+Jump to: top
Winning entry: 1992/gson
Winning entry source code: gson.c
@@ -1751,6 +1822,7 @@ included in their remarks. See the index.html for its purpose. It was NOT fixed
for ShellCheck
because the author deliberately obfuscated it so PLEASE DO NOT FIX THIS OR
MODERNISE IT.
+Jump to: top
Winning entry: 1992/imc
Winning entry source code: imc.c
@@ -1761,13 +1833,14 @@ returned a value but this will cause problems where exit(3) returns
source code was modified to avoid this problem but like Cody did with other fixes
he made this more like the original by redefining exit to use the comma
operator so that it could be used in binary expressions.
+Jump to: top
Winning entry: 1992/kivinen
Winning entry source code: kivinen.c
It was observed that on modern systems this goes much too quick. Yusuke created
a patch that calls usleep(3) but Cody thought the value was too slow so he
-made it a macro in the Makefile Z (which can be redefined with make SLEEP=...), defaulting at 15000. This was made an alternate
+made it a macro in the Makefile Z (which can be redefined with make SLEEP=...), defaulting at 15000. This was made an alternate
version and it is recommended one use
the alternate version first. See the index.html file to see how to reconfigure it.
Cody also made the fixed version (the code relied on exit(3) returning to use
@@ -1780,13 +1853,13 @@ start and end character.
defect with the number of args to main() though when it comes to 1 arg it is
only in an error message if say 4 args are used. This is out of an abundance of
caution as it’s quite possible that clang or the ANSI C committee end up further
-changing this.
-See the
+changing this. See the
FAQ on “main function args”
for more details.
Yusuke also noted that there is a bug in the program where right after starting
it moves towards the right but if you click the mouse it goes back. See
1992/kivinen in bugs.html for more details.
+Jump to: top
Winning entry: 1992/lush
Winning entry source code: lush.c
@@ -1796,18 +1869,19 @@ it works (see Judges’ remarks in
file) this will not work with clang.
Cody also provided the lush.sh script to
demonstrate it as using make was problematic.
-Cody made it use fgets() instead of gets().
-See the
+
Cody made it use fgets() instead of gets(). See the
FAQ on “gets and fgets”
for why this was done.
NOTE: this entry cannot work with clang due to different compiler messages (it
will compile fine but it won’t work). See 1992/lush in
bugs.html for details.
+Jump to: top
Winning entry: 1992/marangon
Winning entry source code: marangon.c
Cody made this more portable by changing the void main() to be int main().
+Jump to: top
Winning entry: 1992/nathan
Winning entry source code: nathan.c
@@ -1821,6 +1895,7 @@ viewer would note that it has the same typos as the originally published code.
participates in the IOCCC, that it must be our fault! :-)
Cody also added the try.sh script that runs a
few commands that we suggested as well as one he provided.
+Jump to: top
Winning entry: 1992/vern
Winning entry source code: vern.c
@@ -1836,6 +1911,7 @@ new char arrays (always cleared in the beginning of the loop) and then using
both numbers (using "%o %o" does not solve the problem).
This was deemed a problem to fix as the Judges’ remarks hinted that this was how
it used to be.
+Jump to: top
Winning entry: 1992/westley
Winning entry source code: westley.c
@@ -1874,9 +1950,11 @@ world or just the
USA, respectively, without enough
args (2). And not that we need the help or anything for this :-) but we
encourage you to try the original without two args :-)
+Jump to: top
+Jump to: top
Winning entry: 1993/ant
Winning entry source code: ant.c
@@ -1889,15 +1967,17 @@ This was put in as top
Winning entry: 1993/cmills
Winning entry source code: cmills.c
Yusuke suggested that with modern systems this goes too fast so he added a call
to usleep(3) in a patch he made. Cody made it configurable at compilation by
-using a macro. This is in the alternate
+using a macro. This is in the alternate
version which is the recommended one to try
first.
+Jump to: top
Winning entry: 1993/dgibson
Winning entry source code: dgibson.c
@@ -1906,11 +1986,13 @@ first.
which assumed that . is in the path.
Cody also added the try.sh script which runs the above
mentioned script on all the data files.
+Jump to: top
+Jump to: top
Winning entry: 1993/jonth
Winning entry source code: jonth.c
@@ -1924,23 +2006,26 @@ so that it would compile. It used to be that you could get away with code like:<
and expect G; to equate to int i, j; (though it’s now a long) and K to mean
case but that’s no longer the case so the offending lines had #define
prepended to them.
+Jump to: top
Cody fixed this to work with modern compilers. This involved different header
files for functions.
+Jump to: top
Winning entry: 1993/lmfjyh
Winning entry source code: lmfjyh.c
-Cody added an alternate
+Cody added an alternate
version which does what the program did
with gcc < 2.3.3. See the index.html file for details and for why this was made
the alternate version, not the actual entry.
Cody also made the Makefile delete the very unsafe filename that is compiled (or
would be compiled if gcc < 2.3.3) whether or not compilation succeeds (which is
highly unlikely).
+Jump to: top
Winning entry: 1993/plummer
Winning entry source code: plummer.c
@@ -1955,6 +2040,7 @@ one we recommend one try first. See the index.html files for details.
try.alt.sh scripts that correspond to the original
entry and the alt version, both allowing one to change the args (and in the case
of the alt one allowing one to change the amount to sleep).
+Jump to: top
Winning entry: 1993/rince
Winning entry source code: rince.c
@@ -1968,14 +2054,15 @@ the second one, to make movement keys (of the default game) more familiar to vi
users. The slowing down was based on our suggestion that it might be desired to
slow down but Cody did it in such a way that makes it easy to configure at
compile time. See the index.html for details.
+Jump to: top
Winning entry: 1993/schnitzi
Winning entry source code: schnitzi.c
-Cody made this use fgets(3) not gets(3).
-See the
+
Cody made this use fgets(3) not gets(3). See the
FAQ on “gets and fgets”
for why this was done.
+Jump to: top
Winning entry: 1993/vanb
Winning entry source code: vanb.c
@@ -1991,16 +2078,19 @@ arg (as it was 0 at file scope already this is perfectly fine and it means
there’s no need to cast it to an int in the function call though that would also
work).
Cody also added the alternate code, provided by the author, which is:
- ... a version of the program before it got formatted into the VIII,
- augmented with comments showing where each state begins. N1 and N2 are
- notes.
+
+… a version of the program before it got formatted into the VIII, augmented
+with comments showing where each state begins. N1 and N2 are notes.
+
but fixed to work with clang as well.
NOTE: the N1 and N2 are provided as notes in the index.html file describing
this code. Other code is also described there.
Cody also added the try.sh script.
+Jump to: top
+Jump to: top
Winning entry: 1994/dodsond2
Winning entry source code: 1994/dodsond2
@@ -2029,6 +2119,7 @@ reset so you could only get the arrows back once even if the robber stole more.
Now the counters are reset. The way this bug was fixed is that there is now a
counter for how many you have found and how many you shot in addition to the two
that already existed, how many you had and how many were stolen.
+Jump to: top
Winning entry: 1994/horton
Winning entry source code: 1994/horton
@@ -2044,6 +2135,7 @@ shouldn’t be.
try.alt.sh.
Finally he added the article (written by the entry’s author) cited in
login_sept92-pp28-31.pdf.
+Jump to: top
Winning entry: 1994/imc
Winning entry source code: imc.c
@@ -2053,6 +2145,7 @@ shouldn’t be.
this was not necessary (in multiple systems) it can sometimes be a problem and
as it was noticed it was changed (the only case this was done except in the
entries that actually did not work because of missing or incorrect prototypes).
+Jump to: top
Winning entry: 1994/ldb
Winning entry source code: ldb.c
@@ -2063,8 +2156,7 @@ comma operator was needed.
Cody also fixed it for clang under Linux which objected to incompatible pointer
type (because time(2) takes a time_t * which in some systems is a long *
but what was being passed to it is an int).
-Cody also changed the entry to use fgets(3) instead of gets(3).
-See the
+
Cody also changed the entry to use fgets(3) instead of gets(3). See the
FAQ on “gets and fgets”
for why this was done.
This one has
@@ -2078,6 +2170,7 @@ rather than an annoying warning. A subtlety about this fix: if a line is greater
than 231 in length if the program chooses that line it might print the first 231
characters or it might print (up to) the next 231 characters and so on.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 1994/schnitzi
Winning entry source code: schnitzi.c
@@ -2088,7 +2181,9 @@ generate code that compile and another 1994/schnitzi in
-bugs.html.
+bugs.html. See also the
+FAQ on “alternate code”
+for more details.
The purpose for these versions it both demonstrate how the magic works behind it
and to help others, should they wish, get the code to work with fgets(3), with
or without an increase in buffer size. Note that without this feeding longer
@@ -2098,6 +2193,7 @@ details. Later on, if nobody takes up the task, Cody might resume it, but for
now there is more important work to do so that the next contest can run.
Cody also added the try.sh and
try.alt.sh scripts.
+Jump to: top
Winning entry: 1994/shapiro
Winning entry source code: shapiro.c
@@ -2109,11 +2205,13 @@ assumed that getc() will return -1 on EOF or error, no
where EOF != -1 it could result in an infinite loop.
For an interesting problem that occurred here and what was done to solve it,
check 1994/shapiro in bugs.html.
+Jump to: top
+Jump to: top
Winning entry: 1994/tvr
Winning entry source code: 1994/tvr
@@ -2131,10 +2229,10 @@ each mode allowed with two sizes, 128 and 256, allowing one to quit or skip each
to be terminated but it was a pretty straightforward fix. gets() was defined
to use fgets() and the inclusion of stdio.h had to be added but to make it
more like the original entry this was done in the Makefile. The alternate code was
-also changed to use fgets(3).
-See the
+also changed to use fgets(3). See the
FAQ on “gets and fgets”
for why this was done.
+Jump to: top
Winning entry: 1994/weisberg
Winning entry source code: weisberg.c
@@ -2148,6 +2246,7 @@ number but rather a newline.
lines of the weisberg, feeding it to primes(1), showing those that are
primes. It only does the reversed output because the program actually prints
primes.
+Jump to: top
Winning entry: 1994/westley
Winning entry source code: westley.c
@@ -2159,17 +2258,20 @@ start to finish.
Cody also added the alternate version
that will look fine on terminals not set to 80 columns and the
try.alt.sh script to automate the play
-along the lines of the try.sh script.
+along the lines of the try.sh script. We
+recommend you use this version first, whether you use the script or not.
+Jump to: top
+Jump to: top
Cody fixed this so that it would work with macOS. Once it could compile it
additionally segfaulted under macOS which he also fixed.
-Cody also provided the alternate code for fun :-) ) (in
+
Cody also provided the alternate code for fun :-) ) (in
particular to make it easier to see the program do what it does in systems that
are too fast … if there is such a thing anyway :-) ). See the index.html for
details on this.
@@ -2178,21 +2280,23 @@ details on this.
type of args. In particular some versions supposedly only allow 0, 2 or 3 args.
It actually appears to allow 1 but if you specify 4 it says 0, 2 or 3 and it is
an error but it’s entirely possible that they will eventually make the defect
-function as the error message claims.
-See the
+function as the error message claims. See the
FAQ on “main function args”
for more details.
+Jump to: top
Winning entry: 1995/dodsond1
Winning entry source code: dodsond1.c
Cody added the try.sh script that uses the text file he
provided which is input we suggested one try with the entry.
+Jump to: top
+Jump to: top
Winning entry: 1995/garry
Winning entry source code: garry.c
@@ -2209,11 +2313,13 @@ alt version he also added the top
Winning entry: 1995/heathbar
Winning entry source code: 1995/heathbar
+Jump to: top
Winning entry: 1995/leo
Winning entry source code: leo.c
@@ -2222,6 +2328,7 @@ the garry.data file leading blank lines had to be added.
At our change in how to deal with spoilers, Cody also uudecoded the spoiler
information about the secret switch, provided by the author, putting it in
secret.html.
+Jump to: top
Winning entry: 1995/makarios
Winning entry source code: makarios.c
@@ -2230,16 +2337,19 @@ information about the secret switch, provided by the author, putting it in
which only allows main() to have 0, 2 or 3 args. This is done by a new
function (pain() as it’s annoying that clang is this way :-) ) that main()
calls which has the four args.
+Jump to: top
Winning entry: 1995/savastio
Winning entry source code: savastio.c
+Jump to: top
Winning entry: 1995/schnitzi
Winning entry source code: schnitzi.c
+Jump to: top
Winning entry: 1995/vanschnitz
Winning entry source code: vanschnitz.c
@@ -2247,12 +2357,14 @@ calls which has the four args.
Cody added the authors’ deobfuscation source code
as in 2023 we have decided that in most
cases all the code should be available for the wider audience, without having to
-extract it. The exception is when the files are created by the entry or the
-entry decrypts the text or something like that.
+extract it (the exception, of course, is when the files are created by the entry or the
+entry decrypts the text or something like that).
Cody also added the try.sh script.
+Jump to: top
+Jump to: top
Winning entry: 1996/august
Winning entry source code: august.c
@@ -2268,6 +2380,7 @@ problem existed in macOS.
Cody also added the try.sh script that runs all the
commands that were given by the judges in the try section, with the fix above
applied.
+Jump to: top
Winning entry: 1996/dalbec
Winning entry source code: dalbec.c
@@ -2284,6 +2397,7 @@ the fix was wrong.
number is printed on a line by itself rather than having a long string of
numbers on the same line.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 1996/eldby
Winning entry source code: eldby.c
@@ -2293,6 +2407,7 @@ numbers on the same line.
like back in 1996 with modern systems and importantly also for those who are sensitive to text
flashing by rapidly. We recommend that you try the alternate version first due to
these reasons.
+Jump to: top
Winning entry: 1996/gandalf
Winning entry source code: gandalf.c
@@ -2305,11 +2420,13 @@ really demonstrate the different ways of running the program ends up showing
either different output or the same output that we briefly pointed out.
BTW: it is perilous to try the patience of
Gandalf. Go ahead, try it! :-)
+Jump to: top
Winning entry: 1996/huffman
Winning entry source code: huffman.c
+Jump to: top
Winning entry: 1996/jonth
Winning entry source code: jonth.c
@@ -2318,11 +2435,13 @@ either different output or the same output that we briefly pointed out.
pointer w, which points to XCreateWindow(), did not specify the parameters of
the function in the pointer assignment.
NOTE: if there is no X server running this program will still crash.
+Jump to: top
+Jump to: top
Winning entry: 1996/schweikh1
Winning entry source code: schweikh1.c
@@ -2335,6 +2454,7 @@ working /usr/include/rrno.h is found first, which shouldn’t cause
on other systems (the other file is
gcc-lib/sparc-sun-solaris2.5/2.7.2/include/errno.h). Thus Cody also added this to
the Makefile for the (likely?) few who still use Solaris.
+Jump to: top
Winning entry: 1996/schweikh2
Winning entry source code: schweikh2.c
@@ -2344,6 +2464,7 @@ a few commands to try along with a shorter version of something the author
suggested one try (at the end of the script it prompts if you wish to run the
author’s idea, with a sleep and echo in between to help one distinguish the
output better, with the warning that it is an infinite loop).
+Jump to: top
Winning entry: 1996/schweikh3
Source code: schweikh3.c
@@ -2351,6 +2472,7 @@ output better, with the warning that it is an infinite loop).
Cody updated the Makefile so that if it fails to compile it will try the
method suggested for SunOS rather than having to update the Makefile manually or
running a more complicated command: now one can just run make.
+Jump to: top
Winning entry: 1996/westley
Winning entry source code: westley.c
@@ -2369,10 +2491,14 @@ index.html file.
try.alt.sh scripts to automate showing the different
clocks, both with the fixed version and the original (alt) version.
Also, to fix any potential problem with displaying in GitHub the scripts
-provided by the author, Cody added ‘.sh’ to the clock[1-3].sh scripts.
+provided by the author, Cody added ‘.sh’ to the clock[1-3].sh scripts (this
+was done before the displaying / downloading of files was devised but it helps
+to show that they are scripts anyway).
+Jump to: top
+Jump to: top
Winning entry: 1998/banks
Winning entry source code: banks.c
@@ -2387,6 +2513,7 @@ they do have page up and page down but this gives a default for those who don’
have them like with Macs. The alt build hard codes the page up and page down
alternatives because not doing so would overly complicate both builds and since
you can configure them all in both builds it shouldn’t matter.
+Jump to: top
Winning entry: 1998/bas1
Winning entry source code: bas1.c
@@ -2396,18 +2523,19 @@ versions of clang whine about the number of args on top of what typ
In particular some versions claim that they only allow 0, 2 or 3 args. It
appears that they do allow 1 but for instance 4 is not allowed. However as it’s
quite possible they will ‘fix’ this defect it would be better to have this not
-be a problem at such a time.
-See the
+be a problem at such a time. See the
FAQ on “main function args”
for more details.
Cody also added the bas1.sh script to simplify running the
program.
+Jump to: top
Cody added the try.sh script which runs some default actions
as well as allowing one to pass in different file names or strings.
+Jump to: top
Winning entry: 1998/chaos
Winning entry source code: chaos.c
@@ -2417,6 +2545,7 @@ exiting the program (in both versions).
Cody also added the try.sh script that runs the program on
all the data files, giving instructions on how to rotate and zoom in and out,
prior to each run.
+Jump to: top
Winning entry: 1998/df
Winning entry source code: df.c
@@ -2430,6 +2559,7 @@ for why this has to be done this way.
Cody also added the try.sh script which runs the program in a
loop until one hits q (or Q) or sends intr/ctrl-c. He also proposed there’s
a way to cheat very easily. Can you figure out how?
+Jump to: top
Winning entry: 1998/dlowe
Winning entry source code: dlowe.c
@@ -2442,18 +2572,23 @@ to be int (in both versions).
program, a local pootifier of web pages and a CGI pootifier. See historical
remarks for more details on the
pootify scripts.
+Jump to: top
Winning entry: 1998/dloweneil
Winning entry source code: dloweneil.c
Cody added alternate code which has vi(m) movement
(in addition to the other keys except for dropping it’s not d but j or
-space) keys as well as allowing one to quit the game.
+space) keys as well as allowing one to quit the game. See the
+FAQ on “alternate code”
+for more details.
+Jump to: top
Winning entry: 1998/dorssel
Winning entry source code: dorssel.c
+Jump to: top
Winning entry: 1998/fanf
Winning entry source code: fanf.c
@@ -2467,14 +2602,14 @@ versions of clang complain about the number of args to main()
claim that only 0, 2 or 3 are allowed but it does allow 1 anyway. It is quite
possible though that this will change so it is fixed in case this happens. As it
is mostly just through the C pre-processor Cody added a new macro to make the
-code look like the original with just an extra arg.
-See the
+code look like the original with just an extra arg. See the
FAQ on “main function args”
for more details.
In some versions of clang -Wno-int-conversion had to be added to the
CSILENCE variable of the Makefile.
Cody also added the try.sh script to show the output of some
of the expressions that we selected.
+Jump to: top
Winning entry: 1998/schnitzi
Winning entry source code: schnitzi.c
@@ -2494,6 +2629,7 @@ doing:
((V[1]&&((atoi(V[1])>0&&atoi(V[1])<27))||(exit(1),1)));
Cody also added the try.sh script to help users try the
commands that we recommended as well as some added by him.
+Jump to: top
Winning entry: 1998/schweikh1
Winning entry source code: 1998/schweikh1
@@ -2539,6 +2675,7 @@ the macros in the form of gcc -dM i.e., the lines are in the form <
Cody also added the perl script that the author provided that they used to
compute the character count in the code according to the contest rules of 1998
in the file charcount.pl.
+Jump to: top
Winning entry: 1998/schweikh2
Winning entry source code: schweikh2.c
@@ -2556,19 +2693,21 @@ index.html.
have a problem with that in the future which is not entirely out of the
question.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 1998/schweikh3
Winning entry source code: schweikh3.c
-Cody added the alternate
+Cody added the alternate
code which allows one
to reconfigure the size constant in the rare case that the author wrote about
-occurs.
+occurs. See the
+FAQ on “alternate code”
+for more details.
Cody made main() have two args out of an abundance of caution as some versions
of clang say that main() can only have 0, 2 or 3 args. These versions accept 1
arg but it is entirely possible that they fix this so this should prevent it
-from breaking if that happens.
-See the
+from breaking if that happens. See the
FAQ on “main function args”
for more details.
Cody added the try.sh script to make it easier to try
@@ -2577,15 +2716,16 @@ command.
Cody also made the Makefile rule all symlink the entry to samefile as that
is the name of the program.
The author stated that:
- In the remote event that the input has more than `8192` files with
- the same size (on systems where `sizeof (char *) == 4`, or `4096` when
- `sizeof (char *) == 8`), increase the manifest constant 32767 on line
- 31.
-so Cody changed the constant to a macro in the Makefile called SZ so one can
+
+In the remote event that the input has more than 8192 files with the same
+size (on systems where sizeof (char *) == 4, or 4096 when sizeof (char *) == 8), increase the manifest constant 32767 on line 31.
+
+… so Cody changed the constant to a macro in the Makefile called SZ so one can
more easily do this (though it indeed seems highly unlikely). See the index.html
for more details.
There actually is a web page for the tool and this was added to the author
information for the entry. It has not been added to any JSON file.
+Jump to: top
Winning entry: 1998/tomtorfs
Winning entry source code: tomtorfs.c
@@ -2599,19 +2739,21 @@ the EXIT_FAILURE change was done by redefining exit(3)
program had return 1).
Cody also added the try.sh script to try out a few
commands that we recommended.
+Jump to: top
+Jump to: top
Winning entry: 2000/anderson
Winning entry source code: anderson.c
Cody changed this entry to use fgets(3) instead of gets(3).
This involved changing the K arg to gets(3) to &K in fgets(3).
-Cody also added the try.sh script.
-See the
+Cody also added the try.sh script. See the
FAQ on “gets and fgets”
for why this was done.
+Jump to: top
Winning entry: 2000/bmeyer
Winning entry source code: bmeyer.c
@@ -2619,6 +2761,7 @@ for why this was done.
Cody added the try.sh script with some improvements to the
commands we recommended like not assuming the number of columns one has in their
terminal.
+Jump to: top
Winning entry: 2000/briddlebane
Winning entry source code: briddlebane.c
@@ -2627,12 +2770,14 @@ terminal.
libm.
Cody also added the try.sh script for those who are
feeling a bit too confident, cocky or even happy :-)
+Jump to: top
Winning entry: 2000/dhyang
Winning entry source code: dhyang.c
Cody made this more portable by changing the void main to int main.
He also added the try.sh script.
+Jump to: top
Winning entry: 2000/dlowe
Winning entry source code: dlowe.c
@@ -2640,12 +2785,14 @@ feeling a bit too confident, cocky or even happy :-)
Cody fixed this to compile with more recent perl versions; the symbol that’s now
PL_na was once na.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2000/jarijyrki
Winning entry source code: jarijyrki.c
Cody made it easier to compile this in some cases by adding X11/ to the
includes of Xlib.h and keysym.h.
+Jump to: top
Winning entry: 2000/natori
Winning entry source code: natori.c
@@ -2653,7 +2800,7 @@ includes of Xlib.h and keysym.h.
Cody fixed this for modern compilers. Depending on the compiler it would either
segfault when run or not compile at all (gcc and clang respectively). The
compiler fix is due to clang being more strict about arg types to main().
-Cody also provided alternate code that
+
Cody also provided alternate code that
supports the southern hemisphere, based on the author’s remarks.
Cody also provided the try.sh and
try.alt.sh scripts that show the Moon phase in
@@ -2669,33 +2816,40 @@ like the original entry but with the two fixes.
Finally Cody fixed the Makefile that had the -Wno-foo options in the CDEFINE
variable which although works it is incongruent with the other Makefiles and is
more confusing (though not really).
+Jump to: top
Cody made this more portable by changing the void main to int main.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2000/rince
Winning entry source code: rince.c
+Jump to: top
Winning entry: 2000/robison
Winning entry source code: robison.c
Cody fixed an infinite loop that occurred if invalid input was entered, flooding
the screen with:
- Black position and direction: illegal
+
+Black position and direction: illegal
+
This was fixed by having the scanf(3) read in a string and then use atoi(3)
on it to assign to the ints, much like with 1987/lievaart.
The strings are char[5] and the % specifier is %4s which is enough for the
game.
+Jump to: top
Winning entry: 2000/schneiderwent
Winning entry source code: schneiderwent.c
+Jump to: top
Winning entry: 2000/thadgavin
Winning entry source code: thadgavin.c
@@ -2712,14 +2866,15 @@ will impact the curses and the SDL versions as Cody does not have a DOS system
to test the other version in.
Due to a terrible design choice of the SDL1 developers something had to be
changed. As was noted in the log at the time:
- The SDL version did not work for a number of reasons. First of all the
- code requires that SDL is defined. Second the path[sic] wrong header file was
- included. Third the SDL1 developers thought it would be a great idea
- (but obviously it's a terrible idea) to redefine main() (!!) so that any
- program that uses SDL1 has to have the same args as their definition.
- This program had 'main()' so the error message was:
-
- thadgavin.c:60:1: error: conflicting types for 'SDL_main'
+
+The SDL version did not work for a number of reasons. First of all the
+code requires that SDL is defined. Second the path[sic] wrong header file was
+included. Third the SDL1 developers thought it would be a great idea
+(but obviously it’s a terrible idea) to redefine main() (!!) so that any
+program that uses SDL1 has to have the same args as their definition.
+This program had ‘main()’ so the error message was:
+
+ thadgavin.c:60:1: error: conflicting types for 'SDL_main'
main()
^
/opt/local/include/SDL/SDL_main.h:34:14: note: expanded from macro 'main'
@@ -2729,22 +2884,26 @@ changed. As was noted in the log at the time:
extern int SDL_main(int argc, char *argv[]);
^
1 warning and 1 error generated.
- make: *** [thadgavin_sdl] Error 1
-
- Thus main() was changed to 'int main(int argc, char **argv)'.
+ make: *** [thadgavin_sdl] Error 1
+
+Thus main() was changed to int main(int argc, char **argv).
+
+Jump to: top
-Cody added the alternate code based on the
-author’s remarks with a fix for modern systems and he also added the two
+
Cody added the alternate code based on the
+author’s remarks with a fix for modern systems, and he also added the two
scripts, try.sh and try.alt.sh for
the main code and the alternate code respectively.
And although the scripts do chmod +x on the source code (see the index.html for
details) the source code is now executable by default.
+Jump to: top
+Jump to: top
Winning entry: 2001/anonymous
Winning entry source code: anonymous.c
@@ -2807,6 +2966,7 @@ what the entry supports).
As well he added the try.sh script so that one can
attempt to use the program as it was designed but if compiling as 32-bit fails
it will at least run the supplementary program as a 64-bit program directly.
+Jump to: top
Winning entry: 2001/bellard
Winning entry source code: bellard.c
@@ -2835,6 +2995,7 @@ checked prior to running the function just like the author did for the factorial
(overflowing at >12). Either way unfortunately this entry seems to not work in
64-bit Linux or macOS. See below portability notes as well as another fix in
this entry by Yusuke.
+Jump to: top
Portability notes:
With a tip from Yusuke we rediscovered the author’s web page for this
program where it is stated that this will only work
@@ -2844,6 +3005,7 @@ used gcc 2.95.2 but we do not know if that’s relevant or not.
versions of clang it is. With gcc we can get away with -rdynamic -fno-pie -Wl,-z,execstack which solves the problem of execution in memory but any
compiler that does not support this would not work. Thus we use the modification
by Yusuke.
+Jump to: top
Winning entry: 2001/cheong
Winning entry source code: cheong.c
@@ -2854,6 +3016,7 @@ letter word that would match the format and because it’s pain that clang
this. :-) This fix makes a point of the author’s notes on portability no longer
valid, BTW.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2001/coupard
Winning entry source code: coupard.c
@@ -2873,7 +3036,9 @@ support implicit int:
or /dev/sound/dsp (which is most everyone nowadays, it seems, and especially
those with macOS) (to do with sound; see his
2013/endoh3/index.html entry where he also refers to
-sound devices in macOS).
+sound devices in macOS as well as our
+FAQ on “sound”).
+Jump to: top
Winning entry: 2001/ctk
Winning entry source code: ctk.c
@@ -2884,20 +3049,25 @@ the ANSI escape codes. This works with both Linux and macOS.
etc.) after exiting even if you don’t press ‘q’, if you crash or if you kill the
program prematurely. This was done by adding an explicit call to e() at the
end of main().
-Cody also added the alternate code that adds
-vi(m) movement keys.
+Cody also added the alternate
+code that adds
+vi(m) movement keys. See the
+FAQ on “alternate code”
+for more details.
+Jump to: top
Winning entry: 2001/dgbeards
Winning entry source code: dgbeards.c
The author provided two changes: one to speed it up and one to make it not crash
-on losing. Cody provided an alternate
+on losing. Cody provided an alternate
version which does the former but
not the latter as he he felt that the idea of crashing on losing (see the
index.html for details on why that might be) too good to get rid. The author
explains how to make this change, however.
Cody also points out that there is a way to get the computer to automatically lose
very quickly. Do you know what it is?
+Jump to: top
Winning entry: 2001/herrmann1
Winning entry source code: herrmann1.c
@@ -2910,10 +3080,13 @@ it’s also how you invoke the program.
author’s remarks.
He also fixed the script herrmann1.sh for
shellcheck. In particular there were quite a few:
- SC2086 (info): Double quote to prevent globbing and word splitting.
- SC2248 (style): Prefer double quoting even when variables don't contain special characters.
-errors/warnings.
+
+SC2086 (info): Double quote to prevent globbing and word splitting.
+SC2248 (style): Prefer double quoting even when variables don’t contain special characters.
+
+… errors/warnings.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2001/herrmann2
Winning entry source code: herrmann2.c
@@ -2927,6 +3100,7 @@ respectively, and changing specific references to the argv arg, cas
useful than any other place as the command to try is quite long with C code.
For some reason the original code was missing (presumingly because it had been
added to .gitignore by accident) but Cody restored it from the archive.
+Jump to: top
Winning entry: 2001/kev
Winning entry source code: kev.c
@@ -2936,27 +3110,32 @@ speed and socket(2) call that the author had set up.
Cody also slowed down the ball just a tad (it was already a -D macro that was used
in the code) as it went too fast for the speed at which the paddles move even
when holding down the movement keys (but see below).
-Cody also provided an alternate version which lets you use
-the arrow keys on your keyboard instead of the more awkward ‘,’ and ‘.’.
+Cody also provided an alternate version which lets you use
+the arrow keys on your keyboard instead of the more awkward ‘,’ and ‘.’. See the
+FAQ on “alternate code”
+for more details.
Cody updated both versions to have #ifndef..#endif pairs for the macros so one
can more easily configure different settings without having to specify all of
them (though this change became unnecessary with an improvement on how it was
done). The speed, SPEED, will be set to 50 if it’s not defined at the compiler
line as 50 is what it used to be set to. This way it’s more to the original but
without having to sacrifice playability by running make.
+Jump to: top
Winning entry: 2001/ollinger
Winning entry source code: ollinger.c
+Jump to: top
Winning entry: 2001/schweikh
Winning entry source code: schweikh.c
Cody fixed this to not crash if not enough args as this was not documented by
-the author. The other problems are documented so were not fixed. See
+the author. The other problems are documented so were not fixed. See the
index.html for details.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2001/westley
Winning entry source code: westley.c
@@ -2966,23 +3145,29 @@ automate a heap of commands that we, the IOCCC judges, suggested, as well as
some additional ones that he thought would be fun. He also provided the sort
and punch card versions, described in the index.html, based on the author’s
remarks, through Makefile rules that generate the files by default with make all.
+Jump to: top
+Jump to: top
Winning entry: 2004/anonymous
Winning entry source code: anonymous.c
+Jump to: top
Winning entry: 2004/arachnid
Winning entry source code: arachnid.c
-Cody added an alternate
+Cody added an alternate
version which
allows those like himself used to h, j, k and l movement keys to not get
lost. Non rogue players, vi users and Dvorak typists are invited to get lost (or
-use the original version)! :-)
+use the original version)! :-) See the
+FAQ on “alternate code”
+for more details.
+Jump to: top
Winning entry: 2004/burley
Winning entry source code: burley.c
@@ -3005,9 +3190,10 @@ unknown by Cody if this is because it used to be allowed to have binary
expression with void or if it is for some other reason).
longjmp(3) was being called with one arg which was an element
of an int[4][1000] which had to be changed to a jmp_buf p[4] (this due to
-the prototype being included).
+the addition of #include <setjmp.h>).
Finally the optimiser cannot be enabled so the compiler flags were changed for
this, forcing -O0.
+Jump to: top
Winning entry: 2004/gavare
Winning entry source code: gavare.c
@@ -3024,11 +3210,14 @@ and anti-alias setting at compile time. This is based on the author’s remarks.
that was used during development, found on their website about the
entry.
+See the
+FAQ on “alternate code”
+for more details.
Winning entry: 2004/gavin
Winning entry source code: gavin.c
-Cody provided the alternate code for
+
Cody provided the alternate code for
those who want to use QEMU. The most important part of this is the macro K has
to be defined as 1, not 0.
Yusuke provided the kernel and fs.tar files which can be used if
@@ -3037,6 +3226,7 @@ files provided, found under the top
Winning entry: 2004/hibachi
Winning entry source code: hibachi.c
@@ -3053,11 +3243,13 @@ unobfuscated version that Cody added in, with thanks to Anthony! This also
required a minor fix in the inclusion of ctype.h and various other fixes as
well, namely to get the program to work as alt rather than -spoiler (it is
not even known if it would work otherwise).
+Jump to: top
Winning entry: 2004/hoyle
Winning entry source code: hoyle.c
+Jump to: top
Winning entry: 2004/jdalbec
Winning entry source code: jdalbec.c
@@ -3082,12 +3274,15 @@ this ended up with a number of errors like:
and various other problems. However there does seem to be a problem at least
with some gcc versions in macOS but this appears to be due to errors in
/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/cdefs.h.
-Cody also added alternate code which allows
+
Cody also added alternate code which allows
one to control how many numbers after the : to print before printing a
newline, so that one can see the output a bit better (though for lines that have
-a lot of numbers this will be harder to see).
+a lot of numbers this will be harder to see). See the
+FAQ on “alternate code”
+for more details.
Finally Cody added try.sh and
try.alt.sh to demonstrate both versions.
+Jump to: top
Winning entry: 2004/kopczynski
Winning entry source code: kopczynski.c
@@ -3096,15 +3291,14 @@ a lot of numbers this will be harder to see).
discovered it will not work otherwise.
Cody, out of an abundance of caution for clang, added a second arg to main()
as some versions complain about the number of args and although they accept 1 it
-is entirely possible it will eventually be that they don’t.
-See the
-FAQ on “main function args”
-for more details.
+is entirely possible it will eventually be that they don’t. See the FAQ on
+“main function args” for more details.
Cody also added the try.sh script and various data
files: kopczynski-a to demonstrate what happens when art more
like a letter is fed to the program, and the kopczynski*-rev files which are
the data files reversed with rev(1). One had to be modified additionally to
get it to work, that being kopczynski-10-rev.
+Jump to: top
Winning entry: 2004/newbern
Winning entry source code: newbern.c
@@ -3113,23 +3307,25 @@ get it to work, that being kopczynski-10-rev.
Cody also added the try.sh script (with a hidden feature
that the author referred to and was documented by Yusuke though Cody
chose the word IOCCC instead of AAA).
+Jump to: top
Winning entry: 2004/omoikane
Winning entry source code: omoikane.c
+Jump to: top
Winning entry: 2004/schnitzi
Winning entry source code: schnitzi.c
-Cody made this use fgets(3).
-See the
+
Cody made this use fgets(3). See the
FAQ on “gets and fgets”
for why this was done.
He also changed the time factor in the data files as the animations went too
fast in modern systems, especially the scrolling text of
schnitzi.inp1.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2004/sds
Winning entry source code: sds.c
@@ -3138,6 +3334,7 @@ fast in modern systems, especially the scrolling text of
Also, after the README.md file had copyright changes, it broke the script so
Cody made a copy of the older README.md file into README_sds.txt and added that
to the repo for the script instead.
+Jump to: top
Winning entry: 2004/vik2
Winning entry source code: vik2.c
@@ -3191,9 +3388,11 @@ which used to be generated by the Makefile via cc -E.<
Cody also made it so that the FNAME is (for the entry file itself and
vik2_1.c - there are other places it should not be done) __FILE__
just to make it a bit easier to compile.
+Jump to: top
+Jump to: top
Winning entry: 2005/aidan
Winning entry source code: aidan.c
@@ -3201,14 +3400,19 @@ just to make it a bit easier to compile.
Cody fixed the test script, described by the author in their remarks, to refer
to the proper compiled program (it’s hardcoded). This had never been done and so
the script did not even work (at least modernly?).
-He also added the alternate code based on the
+
He also added the alternate code based on the
author’s remarks which is a different approach than the one used and which
-(according to the author) ‘is slower (particularly in worst-case or nearly so scenarios), inelegant, and not a good starting place for sudoku generation.’
+(according to the author):
+
+… is slower (particularly in worst-case or nearly so
+scenarios), inelegant, and not a good starting place for sudoku generation.
+
Cody added the try.sh and
try.alt.sh scripts that correspond to the entry and
alternate code respectively.
Cody added the make test and make test-n0 rules for easier use of the test
suite.
+Jump to: top
Winning entry: 2005/anon
Winning entry source code: anon.c
@@ -3218,8 +3422,11 @@ not work and end up causing a bus error. Instead of stty sane it us
The author noted that one can define NO_STTY to not use stty(1) at all
(either to prevent having to hit enter or to turn echo off/on) and this is
explained in the index.html.
-Cody added the alternate code with vi(m) like
-movements.
+Cody added the alternate code with vi(m) like
+movements. See the
+FAQ on “alternate code”
+for more details.
+Jump to: top
Winning entry: 2005/boutines
Winning entry source code: boutines.c
@@ -3227,6 +3434,7 @@ movements.
Cody added the input.txt data file based on suggested
input from the author, adapting it to a command to try out.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2005/giljade
Winning entry source code: giljade.c
@@ -3274,17 +3482,20 @@ temporary file the compilation including the ‘Line’ lines. After that is don
uses grep -c on the file to show that there are indeed as many versions the
program generates as the author states, 180. If it does not find 180 it is an
error; otherwise it is success. See test.sh.
+Jump to: top
Winning entry: 2005/jetro
Winning entry source code: jetro.c
Cody added explicit linking of libm (-lm) for systems like Linux that seem to
not do it implicitly (like macOS does).
+Jump to: top
Winning entry: 2005/klausler
Winning entry source code: klausler.c
+Jump to: top
Winning entry: 2005/mikeash
Winning entry source code: mikeash.c
@@ -3310,6 +3521,7 @@ what is supposed to happen. It is not known, however, if having to change the
\N to \n ended up breaking any LISP. The other examples given by the author
also show correct output though.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2005/mynx
Winning entry source code: mynx.c
@@ -3325,15 +3537,17 @@ does scan for https. Futile, maybe, based on how https
case just enjoy it for what it was, without it working with websites that do not
support http. But there might be some command line that will let it work that
way or perhaps someone wants to add the necessary code, updating the file.
+Jump to: top
Winning entry: 2005/persano
Winning entry source code: persano.c
-Cody added the (untested) alternate
+Cody added the (untested) alternate
code which should work for Windows as
it sets binary mode on stdout. This was based on the author’s remarks but it
is untested as Cody has no Windows system to test it on.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2005/sykes
Winning entry source code: sykes.c
@@ -3362,6 +3576,7 @@ run the test suite. The program will enter an infinite loop after it runs so you
have to hit ctrl-c to end it which the script tells you.
The scripts note every time that one will have to send ctrl-c or whatever their
interrupt is set to in order to exit the program.
+Jump to: top
Winning entry: 2005/timwi
Winning entry source code: timwi.c
@@ -3369,6 +3584,7 @@ interrupt is set to in order to exit the program.
Cody added try.sh. It only has one command as he doesn’t
want to knacker his brain any more than it might or might not already be :-) and
he doesn’t want to damage anyone else’s brain either. :-)
+Jump to: top
Winning entry: 2005/toledo
Winning entry source code: toledo.c
@@ -3378,6 +3594,7 @@ defect where main() can only have 0, 2 or 3 args (it was 4). It now
another function that takes 4 args and which is what used to be main().
The alternate versions that the author
provided were also fixed.
+Jump to: top
Winning entry: 2005/vince
Winning entry source code: vince.c
@@ -3389,9 +3606,11 @@ to concatenate to it .c. But this assumes that the executable is th
as the source file which isn’t always true. The author even stated: ‘as long as the source is in the same directory as the executable it should be able to find it’ but the source code file name is not always the same as the executable
with the appropriate extension so this might be called a bug fix as well though
if one runs it from another directory, specifying the directory, it’ll not catch it.
+Jump to: top
+Jump to: top
Winning entry: 2006/birken
Winning entry source code: birken.c
@@ -3400,6 +3619,7 @@ if one runs it from another directory, specifying the directory, it’ll not cat
The problem was a missing +1 for strlen(3) with malloc(3). This prevented
it from working.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2006/borsanyi
Winning entry source code: borsanyi.c
@@ -3407,39 +3627,44 @@ it from working.
Cody fixed the Makefile to work in systems where the lpthread is not
implicitly linked in.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2006/grothe
Winning entry source code: grothe.c
+Jump to: top
Winning entry: 2006/hamre
Winning entry source code: hamre.c
-Cody also added the try.sh script.
+Cody added the try.sh script.
+Jump to: top
Winning entry: 2006/monge
Winning entry source code: monge.c
-Cody added the alternate code that lets
-one resize the image and redefine the number of iterations.
+Cody added the alternate code that lets
+one resize the image and redefine the number of iterations. See the
+FAQ on “alternate code”
+for more details.
Cody also added the try.sh and
try.alt.sh scripts.
-Cody also fixed the Makefile to use sdl-config (which is what the author
-stated too though that was noticed later), not sdl2-config as two functions
-that are used were removed from SDL2,
-thus making it not link. Since SDL2 is still available and since changing the
-code to use SDL2 is much more complicated and also makes the entry less like
-the original it was simply made to link in SDL1.
-Nevertheless this entry does require x86/x86_64 CPUS. This is a documented
-feature but one which we will accept fixes to. See 2006/monge in
-bugs.html.
+Cody also fixed the Makefile to use sdl-config, not sdl2-config, as two
+functions that are used were removed from SDL2, thus
+making it not link.
+Nevertheless this entry does require x86/x86_64 CPUS (this is a documented
+feature).
+Jump to: top
Winning entry: 2006/night
Winning entry source code: night.c
As Cody is a lost :-) vim user he took the author’s remarks to add support
-back for arrow keys in the alternate version.
+back for arrow keys in the alternate
+version. See the
+FAQ on “alternate code” for more details.
+Jump to: top
Winning entry: 2006/sloane
Winning entry source code: sloane.c
@@ -3455,12 +3680,6 @@ some versions do allow only one arg. This was done at first because it’s not
used but Cody discovered that later versions of clang have an additional defect
where it does not allow only one arg so the second arg to main() was added
back.
-This was an unfortunate problem for the alternate code as he has been using Z
-for alternate code usleep() (for sleep) but in this case unfortunately the
-original entry used Z in main() (though unused) so to make it more like the
-original Cody renamed the macro Z for usleep() to S instead which can
-stand for sleep and also it is kind of like a backwards Z. That way Z could
-be in main().
Cody also made sure that the Makefile links in libm as not all systems do this
by default.
Since the author suggested that the lack of certain #includes might break the
@@ -3470,33 +3689,36 @@ program in some systems he also added -include ... to the Mak
Winning entry source code: stewart.c
+Jump to: top
Winning entry: 2006/sykes1
Winning entry source code: sykes1.c
-Cody provided the alternate
+Cody provided the alternate
code based on the
author’s remarks.
Cody also added the try.sh script.
Cody also provided the bedlam-cubes.pdf file,
obtained from the Internet Wayback Machine, as the file was no longer available.
+Jump to: top
Winning entry: 2006/sykes2
Winning entry source code: sykes2.c
Cody, out of an abundance of caution for clang’s defects, made main() have
2 args instead of 1 as some versions report that main() must have 0, 2 or 3
-args, even though at least one of those versions allows 1 arg only.
-See the
+args, even though at least one of those versions allows 1 arg only. See the
FAQ on “main function args”
for more details.
-Cody also added the try.sh script for easier use of the
-entry to show the clock update in real time.
+Cody also added the try.sh script for easier
+use of the entry to show the clock update in real time.
+Jump to: top
Winning entry: 2006/toledo1
Winning entry source code: toledo1.c
+Jump to: top
Winning entry: 2006/toledo2
Winning entry source code: toledo2.c
@@ -3505,7 +3727,7 @@ entry to show the clock update in real time.
macOS - it did not seem to be a problem under Linux, at least not fedora. The
problem was wrong variable types - implicit ints instead of FILE *s. It now
works with both macOS and Linux.
-Cody also added the (untested) alternate
+Cody also added the (untested) alternate
code that is based on the author’s remarks to
port this to systems that have the non-standard kbhit() and getch() (not the
one from curses) which is typically (always?) in conio.h.
@@ -3514,6 +3736,7 @@ the program and modified the fread(3)/fwrite(3) sectio
FILE *e (that Cody changed) instead of int y, making it to work on x86_64
(perhaps Cody’s fix was for arm64 only?). Also, he added a note to clarify from
where appears the IMPORT.COM and HALT.COM files.
+Jump to: top
Winning entry: 2006/toledo3
Winning entry source code: toledo3.c
@@ -3523,33 +3746,38 @@ modern (64-bit) systems. The crash appears to only occur in macOS but the fix
lets it work in both Linux and macOS. The problem was that it relied on 32-bits
so some ints were changed to longs. The display problem might or might not
have been a problem in Linux with the old ints but this is no longer known.
-Cody also added the code that should work for Windows,
-toledo3.alt.c, based on the author’s remarks.
-We’re not able to test this.
+Cody also added the code that should work for Windows (it was tested by the
+author), toledo3.alt.c, based on the
+author’s remarks; see Alternate code in
+2006/toledo3/index.html.
+Jump to: top
+Jump to: top
Winning entry: 2011/akari
Winning entry source code: akari.c
+Jump to: top
Winning entry: 2011/blakely
Winning entry source code: blakely.c
+Jump to: top
Winning entry: 2011/borsanyi
Winning entry source code: borsanyi.c
Cody, out of an abundance of caution, added a second arg to main() as some
versions of clang complain about not only the type of each arg to main() but
-the number of args as well.
-See the
+the number of args as well. See the
FAQ on “main function args”
for more details.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2011/dlowe
Winning entry source code: dlowe.c
@@ -3567,11 +3795,13 @@ The file could have been named to that but it is not POSIX safe so the []<
were removed. At the same time, for the same reason (though the link worked),
the file 2011/dlowe/dlowe-aux-data/png-1/image_thumb[40].png was renamed to
image_thumb.png.
+Jump to: top
Winning entry: 2011/fredriksson
Winning entry source code: fredriksson.c
+Jump to: top
Winning entry: 2011/goren
Winning entry source code: goren.c
@@ -3582,7 +3812,12 @@ for 64-bit so it was then tested as a 32-bit binary (Linux) and 64-bit binary
(Linux, macOS) and both work. It was fixed by changing some ints to longs
and now it does work with 64-bit systems as well as 32-bit systems.
Cody also added the try.sh script.
-Cody added the following words of wisdom: '"this" is not a pipe but "|" is'.
+Cody added the following words of wisdom:
+
+“this” is not a pipe but “|” is
+
+:-).
+Jump to: top
Winning entry: 2011/hamaji
Winning entry source code: hamaji.c
@@ -3595,16 +3830,19 @@ and now it does work with 64-bit systems as well as 32-bit systems.
The latter two .nono files were taken from
https://web.archive.org/web/20130218055139/http://codegolf.com/paint-by-numbers
and the others were from the authors’ remarks.
+Jump to: top
+Jump to: top
Winning entry: 2011/konno
Winning entry source code: konno.c
Cody added the try.sh script.
+Jump to: top
Winning entry: 2011/richards
Winning entry source code: richards.c
@@ -3623,6 +3861,7 @@ not be worth, as it is a possible starting point that Cody added.
try.alt.sh scripts. The try.alt.sh script will be
helpful to test any fixes for Apple silicon chips (see 2011/richards in
bugs.html for more details).
+Jump to: top
Winning entry: 2011/toledo
Winning entry source code: toledo.c
@@ -3633,28 +3872,33 @@ version that should work in Windows, based on the author’s remarks and support
file, layer.c.
The Makefile was also modified by Cody to make it simpler to redefine the
controls, width and height.
+Jump to: top
-Cody also added an alternate version for Windows
+
Cody also added an alternate version for Windows
based on the author’s comments (along with looking up the function for the right
header files). To build try the alt rule of the Makefile.
+Jump to: top
Winning entry: 2011/zucker
Winning entry source code: zucker.c
-Cody also added alternate code that should work on
+
Cody also added alternate
+code that should work on
Windows, based on the author’s remarks that if the system distinguishes binary
and text then stdout needs to be set to binary mode.
Cody also added the PDF file
sphere-tracing.pdf in case the link
eventually dies.
+Jump to: top
+Jump to: top
Winning entry: 2012/blakely
Winning entry source code: blakely.c
@@ -3662,11 +3906,13 @@ eventually dies.
Cody added explicit linking of libm (-lm) as not all systems do this
implicitly (Linux doesn’t seem to but macOS does).
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2012/deckmyn
Winning entry source code: deckmyn.c
+Jump to: top
Winning entry: 2012/endoh1
Winning entry source code: endoh1.c
@@ -3678,7 +3924,9 @@ let one control how fast the fluid moves (how long to sleep in between writes)
and also the gravity factor, the pressure factor and the viscosity factor as
well as an alarm that lets one run it in a loop without having to hit
ctrl-c/intr in between (the alarm can be disabled, however). The Makefile allows
-one to easily do this with variable names rather than redefining CDEFINE.
+one to easily do this with variable names rather than redefining CDEFINE. See the
+FAQ on “alternate code”
+for more details.
The two different alt versions is because there are two versions: the original
and the colour version added by the author, Yusuke, at the request of
the judges.
@@ -3686,7 +3934,9 @@ the judges.
the alternate code in two ways, one with setting the gravity factor to I and another
with the default, and which is run on the source file and each of the text files
supplied by the author. This code has an alarm set at 10 seconds so that one
-need not hit ctrl-c/intr in between .. say to make it more fluid :-)
+need not hit ctrl-c/intr in between .. say to make it more fluid :-) See the
+FAQ on “alternate code”
+for more details.
Cody also added the try.alt.bw.sh which is the
same as the try.alt.sh except it does not use the coloured version.
Finally Cody added the try.sh and
@@ -3695,6 +3945,7 @@ same as the try.alt.sh except it does not use the coloured version.
version without colour, endoh1.c.
The endoh1.alt2.c was provided by the author,
Yusuke, at the time of the contest as a de-obfuscated version.
+Jump to: top
Winning entry: 2012/endoh2
Winning entry source code: endoh2.c
@@ -3703,6 +3954,7 @@ version without colour, find-font-table.rb.
+Jump to: top
Winning entry: 2012/grothe
Winning entry source code: grothe.c
@@ -3711,8 +3963,7 @@ everything, filtered through less.
Cody also changed argv to be not const char ** but char **, mostly out of an
abundance of caution in case clang, which already imposes restrictions on the
types of args to main() including to do with char **, decides to further
-restrict them.
-See the
+restrict them. See the
FAQ on “main function args”
for more details.
Cody also restored the original code from the archive.
@@ -3722,6 +3973,7 @@ to, in case the other domain ends up expiring or stops redirecting to the more
recent domain. For historical purposes the old link was
http://recipes.stevex.net/ but it redirects to https://www.mealsteps.com
which the recipe file now links to.
+Jump to: top
Winning entry: 2012/hamano
Winning entry source code: hamano.c
@@ -3729,6 +3981,7 @@ which the recipe file now links to.
Cody added the try.sh script and the helper
Makefile rules hint.pdf, hint, hello.pdf and hello to simplify the
procedure for both hint.pdf and hello.pdf as well as compiling them as C.
+Jump to: top
Winning entry: 2012/hou
Winning entry source code: hou.c
@@ -3738,6 +3991,7 @@ markdown file as the changes made when converting to a GitHub
index.html made the generated html not look correct; it did not have a title, a
stylesheet etc. due to the fact that there is no # header (which specified
title and stylesheet) and other formatting changes.
+Jump to: top
Winning entry: 2012/kang
Winning entry source code: kang.c
@@ -3748,11 +4002,13 @@ title and stylesheet) and other formatting changes.
In the German script it uses the umlaut for five (fünf) and also does it
without the umlaut (add an ‘e’ i.e. fuenf). Notice how the program picks up on
this!
+Jump to: top
Winning entry: 2012/konno
Winning entry source code: konno.c
+Jump to: top
Winning entry: 2012/omoikane
Winning entry source code: omoikane.c
@@ -3767,19 +4023,22 @@ on stdin and stdout which should theoretically make it
comes from the author’s remarks.
Cody also added the try.sh and
try.alt.sh scripts.
+Jump to: top
Winning entry: 2012/tromp
Winning entry source code: tromp.c
+Jump to: top
Based on the author’s description it should be possible to get this entry to work
-for Windows. With his instructions Cody also added the alternate
+for Windows. With his instructions Cody also added the alternate
version that does this.
+Jump to: top
Winning entry: 2012/zeitak
Winning entry source code: zeitak.c
@@ -3789,7 +4048,7 @@ version that does this.
correctly be flagged as incorrect (including a text file and a Java file, with a
joke, to show that it’s not that it parses C but rather just matching pairs
though that’s probably obvious) and some correctly nested files were also added
-including 1984/anonymous (as the
+including 1984/anonymous (as the
author explicitly mentioned it), both the original
version (.alt.c) and the
modified version that works with macOS
@@ -3802,6 +4061,7 @@ variable that prevented compilation.
look at the program source with tab space of 4 characters so Cody added the
command to do this in vim for those who use it, in the judges’ remarks, to make
it easier for those who do not know how, and to make it more obvious to try it.
+Jump to: top
@@ -3821,16 +4081,19 @@ recommendations, except that Cody made it configurable at compile time. The
compile time.
Cody also added the try.sh script for the entry and the
try.alt.sh script for the alternate code.
+Jump to: top
Winning entry: 2013/cable1
Winning entry source code: cable1.c
+Jump to: top
Winning entry: 2013/cable2
Winning entry source code: cable2.c
+Jump to: top
Winning entry: 2013/cable3
Winning entry source code: cable3.c
@@ -3852,7 +4115,7 @@ entirely to solve the problem.
cable3.sh for consistency with other entries that have
wrapper scripts) to not assume that the program has been compiled by running
make clobber all || exit 1 and he also made it pass shellcheck (using [[ .. ]] over [ .. ]).
-As well, based on the author’s remarks, Cody added the alternate
+As well, based on the author’s remarks, Cody added the alternate
code which should be compilable for Windows/MS Visual
Studio. This is done by in the compile line undefining KB (-UKB) and then in
the source code defining KB to what the author suggested,
@@ -3862,6 +4125,7 @@ this will not link in Unix systems (including macOS).
referred to, found at the GitHub repo for the
entry, and the ready-made 40MB hard disk image containing a whole bunch of software in hd.img that the
author linked to at https://bitly.com/1bU8URK.
+Jump to: top
Winning entry: 2013/dlowe
Winning entry source code: dlowe.c
@@ -3882,11 +4146,13 @@ the symlink as it uses it, even though it runs make clobber all.
He also added the diff.sh script which is based on some
commands to try that he suggested to see how different lengths look.
+Jump to: top
Winning entry: 2013/endoh1
Winning entry source code: endoh1.c
+Jump to: top
Winning entry: 2013/endoh2
Winning entry source code: endoh2.c
@@ -3903,16 +4169,17 @@ checking these requirements it will exit if either is not found.
where it comes from it will appear to be an error in the Ruby script (it might
also appear to be an issue with the script even if you know of convert).
The entry can still be enjoyed if you do not have these tools, however.
+Jump to: top
Winning entry: 2013/endoh3
Winning entry source code: endoh3.c
Cody also (out of an abundance of caution for clang(1) which is strict with
-arg type and count to main()) added a second (unused) arg to main().
-See the
+arg type and count to main()) added a second (unused) arg to main(). See the
FAQ on “main function args”
for more details.
+Jump to: top
Winning entry: 2013/endoh4
Winning entry source code: endoh4.c
@@ -3926,6 +4193,7 @@ pass more than one file to the script.
Cody also made it easier to redefine the size at compilation time (see the
author’s remarks for more details on what this means). The endoh4.sh script
allows one to redefine it as well.
+Jump to: top
Winning entry: 2013/hou
Winning entry source code: hou.c
@@ -3949,9 +4217,10 @@ does not).
rule in the Makefile was originally removed as part of the above but it was
restored so that one can see what the author is talking about.
Further, after the file 2013/hou/doc/example.markdown was moved to
-2013/hou/doc/example.md to match the rest of the repo
-this broke make which Cody also fixed.
+2013/hou/doc/example.md by us, to match
+the rest of the repo, make was broken, which Cody fixed.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2013/mills
Source code: mills.c
@@ -3962,11 +4231,13 @@ after the first call to close(2). The problem was that because the
The backlog was changed to 10 and this solves the problem. It is not known if
this was specific to macOS but it was not specific to a browser as Safari and
Firefox both had the problem.
+Jump to: top
Winning entry: 2013/misaka
Winning entry source code: misaka.c
+Jump to: top
Winning entry: 2013/morgan1
Winning entry source code: morgan1.c
@@ -3974,26 +4245,30 @@ Firefox both had the problem.
Cody added explicit linking of libm (-lm) as not all systems do this
implicitly (Linux doesn’t seem to but macOS does).
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2013/robison
Winning entry source code: robison.c
+Jump to: top
Yusuke added the missing rules.txt, iocccsize.c and iocccsize.mk files.
+Jump to: top
Winning entry: 2014/birken
Winning entry source code: prog.c
-Cody provided the alternate
+Cody provided the alternate
code that lets one redefine the port to
bind to in case there is a firewall issue or there is some other reason to not
have the default port. Remember that ports < 1024 are privileged. It also lets
you redefine the timing constant STARDATE (see the author’s remarks for more
details on this macro). The Makefile was made to use variables so it’s easier to
redefine the port and timing constant.
+Jump to: top
Winning entry: 2014/deak
Winning entry source code: prog.c
@@ -4006,12 +4281,15 @@ be what the program would look like if, as the author put it:
The usage of recognizable elements from the C programming language in the
application source code is intentionally kept to a bare minimum.
-.. was not true.
+.. was not true. See the
+FAQ on “alternate code”
+for more details.
This alternate version did not originally compile because a value was left off the
return statement (this might have been fixed in the index.html file too) so
that was fixed and it also has #include <stdio.h> for putchar(3). The
#ifndef..#define..#endif was not part of the original alternate code, of course.
Cody also added the try.alt.sh script.
+Jump to: top
Winning entry: 2014/endoh1
Winning entry source code: prog.c
@@ -4025,17 +4303,17 @@ install gem. Then it tells you how to install rake. If
then it tells you to install a specific gem and then to try again. Finally if
rake succeeds it will verify that prog is executable and if it is it will
run it.
-After more work on the manifest was done Cody had to update the clobber rule
-to remove some text files so as to not cause problems with an invalid manifest.
Cody also added the try.sh script.
To silence the annoying misleading indentation warning and to prevent debug
symbols from being built with rake Cody also updated the
Rakefile slightly.
+Jump to: top
Winning entry: 2014/endoh2
Winning entry source code: prog.c
+Jump to: top
Winning entry: 2014/maffiodo1
Winning entry source code: prog.c
@@ -4047,18 +4325,21 @@ symbols from being built with rake Cody also updated the
Mario Bros and one of The
Great Giana Sisters, but
which let one configure the width and height of the game.
+Jump to: top
Winning entry: 2014/maffiodo2
Winning entry source code: prog.c
-Cody also added the alternate code
+
Cody also added the alternate code
provided by the author.
+Jump to: top
Winning entry: 2014/morgan
Winning entry source code: prog.c
+Jump to: top
Winning entry: 2014/sinon
Winning entry source code: prog.c
@@ -4074,6 +4355,7 @@ which overwrites it with output that is not code.
is installed) run the demo mode and then after that it will run the above noted
scripts in a loop until the user says they do not want to try again (or they
kill it). This is done this way in case it jams (see index.html for details).
+Jump to: top
Winning entry: 2014/skeggs
Winning entry source code: prog.c
@@ -4089,6 +4371,7 @@ originally done because it seemed to work but since it uses dlsym()
added later to make it more portable.
The program creates files in the working directory as part of how it works (see
the index.html file for details) so Cody made sure that make clobber (via make clean) removes those files and so that they are ignored by .gitignore.
+Jump to: top
Winning entry: 2014/vik
Winning entry source code: prog.c
@@ -4100,6 +4383,7 @@ translation of the raw audio to text is buggy in some cases.
theoretically work for Microsoft Windows compilers (if anything works in Windows
:-) ). We have no way of testing this and if anything has changed since 2014
that would break it we do not know.
+Jump to: top
Winning entry: 2014/wiedijk
Winning entry source code: prog.c
@@ -4110,9 +4394,11 @@ specify what indent tool they want to use and also change which less(1) as it’s longer than a page worth of
output.
+Jump to: top
+Jump to: top
Winning entry: 2015/burton
Winning entry source code: prog.c
@@ -4142,25 +4428,29 @@ to not have to maintain two copies of the same text.
calc.alt. ecalc and ecalc.alt also work. This is because the program is
called calc and is in documentation including the man page. Thus one only need
add a ./ to the commands in the man page/index.html.
+Jump to: top
Winning entry: 2015/dogon
Winning entry source code: prog.c
Cody improved the Makefile so that one can easily change the dimensions
at compilation time via make(1).
-Cody also added alternate code that is
+
Cody also added alternate code that is
based on the author’s remarks, suggesting that one change the value of q to a
different number, in order to see a bug that they avoided.
+Jump to: top
Winning entry: 2015/duble
Winning entry source code: prog.c
+Jump to: top
Winning entry: 2015/endoh2
Winning entry source code: prog.c
+Jump to: top
Winning entry: 2015/endoh3
Winning entry source code: prog.c
@@ -4173,11 +4463,13 @@ use of the make rule he added (to enjoy the theme of the entry, 1984/mullender.c.
+Jump to: top
Winning entry: 2015/endoh4
Winning entry source code: prog.c
+Jump to: top
Winning entry: 2015/hou
Winning entry source code: prog.c
@@ -4189,6 +4481,7 @@ which the try.sh script uses.
Cody also added the RFC 1321 text file, rfc1321.txt to
the directory, to make it so one need not download it, and which the index.html
file now links to.
+Jump to: top
Winning entry: 2015/howe
Winning entry source code: prog.c
@@ -4206,22 +4499,26 @@ addition prompted the prog.alt-test.sh which Cody added as
well.
+Jump to: top
Winning entry: 2015/mills1
Winning entry source code: prog.c
Cody added the try.sh script which changes the
parameters to what we had in the judges’ remarks to make it easier.
+Jump to: top
Winning entry: 2015/mills2
Winning entry source code: prog.c
+Jump to: top
+Jump to: top
Winning entry: 2015/schweikhardt
Winning entry source code: prog.c
@@ -4231,6 +4528,7 @@ this. It was decided by Cody to do -UEOF -DEOF=-1 so as to not have
the code any with C preprocessor directives (the preferred way) or changing
EOF to -1.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2015/yang
Winning entry source code: prog.c
@@ -4240,22 +4538,26 @@ files from compiling properly, trying instead to compile already compiled code.<
He also added explicit linking of libm (-lm) for systems that do not do this
(Linux seems to not but macOS does).
He also added the try.sh script.
+Jump to: top
Cody added the missing README.md file from the winner archive back to
the repo.
+Jump to: top
Winning entry: 2018/anderson
Winning entry source code: prog.c
Cody added the try.sh and
try.alt.sh scripts.
+Jump to: top
Winning entry: 2018/algmyr
Winning entry source code: prog.c
+Jump to: top
Winning entry: 2018/bellard
Winning entry source code: prog.c
@@ -4265,16 +4567,16 @@ the repo.
some versions of clang object to the number of args of main(), saying that it
must be 0, 2 or 3. The version this has been observed in does not actually
object to 1 arg but it is entirely possible that this changes so a second arg
-(that’s not needed and is unused) has been added just in case.
-See the
+(that’s not needed and is unused) has been added just in case. See the
FAQ on “main function args”
for more details.
Cody also added explicit linking of libm (-lm) for systems that do not do this
(Linux doesn’t seem to but macOS does).
-Cody also added alternate code that should
+
Cody also added alternate code that should
work for Windows, based on the author’s remarks. The same thing with the number
of args to main() that was done in the original entry was done with this
version as well.
+Jump to: top
Winning entry: 2018/burton1
Winning entry source code: prog.c
@@ -4283,6 +4585,7 @@ version as well.
script (it referred to prog not ./prog).
Cody also added the try.sh script which also uses
scripthd.sh to show how it differs from prog itself.
+Jump to: top
Winning entry: 2018/burton2
Winning entry source code: prog.c
@@ -4295,6 +4598,7 @@ file tac.1.
Cody also added the tokcount.sh script which was
included in the remarks of the author but not an included file.
Finally Cody added the try.sh script.
+Jump to: top
Winning entry: 2018/ciura
Winning entry source code: prog.c
@@ -4303,6 +4607,7 @@ included in the remarks of the author but not an included file.
try.alt.sh scripts and the PDF file,
lexicon.pdf, that was a dead link, restored from the
Internet Wayback Machine.
+Jump to: top
Winning entry: 2018/endoh1
Winning entry source code: prog.c
@@ -4314,6 +4619,7 @@ the user they should open it in a GIF viewer that can show animation in animated
GIF files. It offers an example command for macOS like the judges did in their
remarks. The input files offered includes the prog.c as the author,
Yusuke, suggested that it too has a secret.
+Jump to: top
Winning entry: 2018/endoh2
Winning entry source code: prog.c
@@ -4326,6 +4632,7 @@ three of the other scripts but each allows one to send an interrupt in the loops
and still continue to the next script (if one does it when not in a loop it will
exit the script). The make python and make python3 rules in the Makefile now
run the respective scripts.
+Jump to: top
Winning entry: 2018/hou
Winning entry source code: prog.c
@@ -4333,6 +4640,7 @@ run the respective scripts.
Cody added explicit linking of libm (-lm) for systems that do not do this
(Linux doesn’t seem to but macOS does).
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2018/mills
Winning entry source code: prog.c
@@ -4345,6 +4653,7 @@ run) enter and then exit and then start the program again. Also if you do add a
file you should run sync prior to exiting or else the file might not exist or
it might be corrupt. See 2018/mills in bugs.html for more
details on the bug.
+Jump to: top
Winning entry: 2018/poikola
Winning entry source code: prog.c
@@ -4356,11 +4665,13 @@ file. The rule requires the tool pdflatex.
problem where the macOS Terminal.app does not work properly for this program.
We added some additional notes on what might happen (it varies depending on
configuration).
+Jump to: top
Winning entry: 2018/vokes
Winning entry source code: prog.c
+Jump to: top
Winning entry: 2018/yang
Winning entry source code: prog.c
@@ -4368,9 +4679,11 @@ configuration).
Cody added the try.sh script. This script will ask
if the user wants to see some of the deobfuscation information and only show them if they type
y or Y.
+Jump to: top
+Jump to: top
Winning entry: 2019/adamovsky
Winning entry source code: prog.c
@@ -4378,6 +4691,7 @@ if the user wants to see some of the deobfuscation information and only show the
Cody added the try.sh script and the Unlambda
file crash.unl which is in the judges’ remarks as
to what can crash it - but it’s not a bug, it’s a feature.
+Jump to: top
Winning entry: 2019/burton
Winning entry source code: prog.c
@@ -4389,10 +4703,13 @@ side-by-side comparison on several files of the entry and wc(1) as
running make test.
Cody also fixed the script check.sh in case
x is specified and is not executable and also made it satisfy ShellCheck.
-ShellCheck was fixed to not be a
-cow and/or (to use Bart
-Simpson‘s advice :-) )’not have a cow’ about certain things (including one thing it was wrong about)
-in cow.sh mootoo.
+ShellCheck was fixed to not be a cow
+and/or (to use Bart Simpson‘s
+advice :-) )’not have a
+cow’ about certain things
+(including one thing it was wrong about) in
+cow.sh mootoo.
+Jump to: top
Winning entry: 2019/ciura
Winning entry source code: prog.c
@@ -4411,6 +4728,7 @@ website.
Finally he added the scripts for the different languages that use the alternate
version but with the caveat that only English appears to work. Again, see 2019/ciura in
bugs.html for more details.
+Jump to: top
Winning entry: 2019/diels-grabsch1
Winning entry source code: prog.c
@@ -4418,9 +4736,9 @@ bugs.html for more details.
Cody also added the file Shakespeare.txt
from 2019/mills (after running make) so that one can
-not worry about having the entire IOCCC winning entry tree (or at least the 2019 tree each
-entry in a subdirectory). This was important as we now have tarballs for each
-entry by themselves.
+not worry about having the entire IOCCC winning entry tree (or at least the 2019
+tree). This was important as we now have tarballs for each entry by themselves.
+Jump to: top
Winning entry: 2019/diels-grabsch2
Winning entry source code: prog.c
@@ -4430,6 +4748,7 @@ script. This script will try and show the difference (i.e. the same output)
between the program and the result of sha512sum or shasum -a 512, if these
tools can be found, or otherwise just run the program itself, showing its own
sha512 value.
+Jump to: top
Winning entry: 2019/dogon
Winning entry source code: prog.c
@@ -4444,6 +4763,7 @@ time by improving the Makefile.
that this was done (some typos were fixed as well but only some - the purpose
was to only correct spelling and only some, not to change wording or anything
else).
+Jump to: top
Winning entry: 2019/duble
Winning entry source code: prog.c
@@ -4457,6 +4777,7 @@ an easy way to tell the user how to compile it, assuming that the environmental
variables LINES and COLUMNS are set. But even if they’re not set it explains
how to easily compile the program to a specific size. Note that LINES and
COLUMNS is not available to scripts so it can’t make use of them that way.
+Jump to: top
Winning entry: 2019/endoh
Winning entry source code: prog.c
@@ -4470,11 +4791,13 @@ arg) prints out the character of the ASCII value (uses isascii(3) f
combined with the try.sh script that he added allows one
to easily reconstruct the source code through GDB by the fact it’s a backtrace
quine.
+Jump to: top
Winning entry: 2019/giles
Winning entry source code: prog.c
+Jump to: top
Winning entry: 2019/karns
Winning entry source code: prog.c
@@ -4485,6 +4808,7 @@ that the author reported where it sometimes segfaults but Cody did not try
debugging it since it works with -O0.)
He also added the script try.sh to showcase the entry a
bit more easily.
+Jump to: top
Winning entry: 2019/lynn
Winning entry source code: prog.c
@@ -4494,11 +4818,13 @@ bit more easily.
example-2.txt text files from
2018/vokes so that the entry does not rely on any other
entry existing.
+Jump to: top
Winning entry: 2019/mills
Winning entry source code: prog.c
+Jump to: top
Winning entry: 2019/poikola
Winning entry source code: prog.c
@@ -4506,8 +4832,10 @@ entry existing.
Cody added the missing docs rule to the Makefile that forms a PDF
file. The rule requires the tool
pdflatex.
-Cody also added the alternate code which
-adds a newline after each number for parsing in additional ways.
+Cody also added the alternate code which
+adds a newline after each number for parsing in additional ways. See the
+FAQ on “alternate code”
+for more details.
Cody also added the try.sh and
try.alt.sh scripts.
Cody also disabled the optimiser because the author stated that for clang the
@@ -4516,6 +4844,7 @@ suggesting that with some versions of GCC it might not be correct w
0 and since 0 works with clang that’s okay. Similarly, the same for C standards
tested: gnu17 was not tested but gnu11 was so the standard was set to
gnu11.
+Jump to: top
Winning entry: 2019/yang
Winning entry source code: prog.c
@@ -4524,9 +4853,11 @@ tested: gnu17 was not tested but gnu11 was so the stan
slightly updating the sample_input.txt file
(removed trailing newlines as it resulted in diff showing differences when it
shouldn’t) and adding the ioccc.txt file.
+Jump to: top
+Jump to: top
Winning entry: 2020/burton
Winning entry source code: prog.c
@@ -4538,6 +4869,7 @@ assumed that prog_be was in PATH which is unlikely so
Endian counterpart) so that it shows that the files are identical rather than
showing nothing at all.
Cody also added the try.sh script.
+Jump to: top
Winning entry: 2020/carlini
Winning entry source code: prog.c
@@ -4546,6 +4878,7 @@ showing nothing at all.
first glance might not appear to have a point, it actually does, namely showing
how you can automate play and then reminding you to actually play for real, with
a friend, whether that’s real or imagined.
+Jump to: top
Winning entry: 2020/endoh2
Winning entry source code: prog.c
@@ -4556,6 +4889,7 @@ longer known (but fortunately was already extracted). These files, originally
put in spoiler/ were moved to
obfuscation/.
He also added the try.sh script.
+Jump to: top
Winning entry: 2020/endoh3
Winning entry source code: prog.c
@@ -4581,16 +4915,10 @@ problem in any system).
Cody also added the run_clock.alt.sh script
which is analogous to the run_clock.sh but for the
alternate code provided by the author, Yusuke.
-
-Winning entry: 2020/ferguson1
-Winning entry source code: prog.c
-
-Just for awareness: Cody made some corrections to the vital Double
-layered chocolate fudge cake recipe :-)
-Other fixes were made but as it’s his entry it’s not worth noting.
+Jump to: top
Cody added the try.sh script. This script does
the conversion of pi.wav (showing the digits) and also converts the number for
@@ -4601,14 +4929,16 @@ perfect.
neither are installed it warns the user about this, linking to the FAQ about it,
and tells them they will have to play the WAV files manually. Otherwise it’ll
use the program to play the WAV files (and in one case stdout).
+Jump to: top
Winning entry: 2020/kurdyukov1
-Winning entry source code: prog.c
+Winning entry source code: prog.c
+Jump to: top
Winning entry: 2020/kurdyukov2
-Winning entry source code: prog.c
+Winning entry source code: prog.c
Cody also added -L/-I paths to the Makefile to let this compile more easily if
@@ -4620,17 +4950,18 @@ of ways: shellcheck(1), make sure the program is compiled first (al
specify which compiler to use with CC=foo ./makegif.sh ...), checking that
convert(1) is found and that it worked properly (linking to the proper FAQ
entry if not installed or it fails).
+Jump to: top
Winning entry: 2020/kurdyukov3
-Winning entry source code: prog.c
+Winning entry source code: prog.c
He also added a link that has much more details about this phenomenon to the
-index.html. Naturally he’s one of the ones who can read text even if it’s even
-more jumbled but we know of others too.
+index.html.
+Jump to: top
Winning entry: 2020/kurdyukov4
-Winning entry source code: prog.c
+Winning entry source code: prog.c
Cody also added from 2019/mills the text file
@@ -4645,9 +4976,10 @@ to us Tolkienists as HoMe), which he naturally :-) has, by the late
Christopher Tolkien, son
and literary executor and heir to J.R.R.
Tolkien.
+Jump to: top
Cody added the MIDI files cvikl.mid and
entertainer.mid from the URLs we suggested so
@@ -4657,24 +4989,30 @@ even if the domain or link goes dead.
try.alt.sh script for the author’s
unobfuscated version that Cody added as
prog.alt.c.
+Jump to: top
Cody added alternate code that will feel
more at home for vi users. One might still end up cursing (see the index.html
-file) but probably a lot less :-)
+file) but probably a lot less :-) See the
+FAQ on “alternate code”
+for more details.
+Jump to: top
Cody also added a make rule (make cppp) for the author’s provided C++ code
-that can preprocess the generated output to make them more acceptable to typical
+that can pre-process the generated output to make them more acceptable to typical
compilers. See the index.html for more details.
+Jump to: top
General thanks
+Jump to: top
Makefiles fixes and improvements
@@ -4722,11 +5060,12 @@ variables.
this, along with many other fixes and changes to the Makefiles were made by
Cody’s sgit tool but many other changes he did
manually.
+Jump to: top
Consistency improvements
Cody, being the IOCCC’s resident corrections officer :-) (and a fine one at
-that, we think :-) ), made many, many typ0 (… :-) ) fixes throughout the
+that, we think :-) ), made many, many typo fixes throughout the
README.md files, scripts, other data files, Makefiles (see above) etc.
He also updated the formatting of the README.md files, used to generate the
index.html files, after renaming the old files to README.md, as well as changing
@@ -4738,23 +5077,46 @@ be made consistent but adding markdown where necessary in the remarks is).
Some of these fixes were done with his sgit
tool as well but the vast majority were done
manually.
-
-Manifest improvements
+Jump to: top
+
+Try script system
-Cody greatly improved the manifest of the winning entries so that the
-links to the files in the index.html files make sense and are consistent,
-although some might not make as much sense unless one looks into the entry.
+Cody devised the try script system and added the many try.sh,
+try.alt.sh and various other forms, as well as a number of wrapper scripts to
+more easily run programs. It is not always useful but these scripts do a variety
+of things to really show off the entries, so this really helps with the
+presentation of the winning entries.
+Jump to: top
+
+Website and manifest improvements
+
+Cody helped in many ways to make the website much more presentable by:
+
+- converting old hints files to README.md files (fixing problems in the process)
+- converting other files to markdown
+- extending the stylesheet for a few improvements
+- fixing many different kinds of problems in many files
+- writing a few website scripts, improving a few others as
+well as identifying and/or fixing bugs in others
+- greatly improving the manifest of the winning entries so that the links to the
+files in the index.html files make more sense and are consistent (although it
+might be said that some of them will not make sense if you don’t understand the
+entry or at least do not read the index.html file)
+
+Jump to: top
FAQ improvements
Cody greatly extended the FAQ to include much more information and he
-helped reorganise it as well, from the new faq.md file.
+helped reorganise it as well, from the new faq.md file that he started.
+Jump to: top
Thank you honor roll
There are a number of people who have contributed to many many
changes, fixes and many important improvements that we
wish to especially thank.
+Jump to: top
Authors
A good number of the winning entries of the
IOCCC tested, identified and helped correct
@@ -4762,6 +5124,7 @@ and/or improve the write-ups of fellow IOCCC entries for the year that they won.
The list of those entries is too long to mention: nevertheless the IOCCC
judges VERY MUCH APPRECIATE those who
helped improve the presentation of their fellow IOCCC entries.
+Jump to: top
Cody Boone Ferguson
@@ -4806,6 +5169,7 @@ bug fixed others.
THANK YOU VERY MUCH for your extensive efforts in helping improve the IOCCC
presentation of past IOCCC entries and fixing almost all past entries for modern
systems!
+Jump to: top
Yusuke Endoh
@@ -4818,6 +5182,7 @@ fixes were EXTREMELY TECHNICALLY CHALLENGING, such as
1992/lush and
2001/ctk. THANK YOU VERY MUCH for
your help!
+Jump to: top
Did we neglect to credit you?
@@ -4827,6 +5192,7 @@ to add you to this thanks for the help file.<
If you believe we incorporated one of your fixes to an IOCCC winning entry (that you
are not the author of) for which we neglected to mention in this file, please
contact the IOCCC so that we may correct the record.
+Jump to: top
thadgavin.c:60:1: error: conflicting types for 'SDL_main'
main()
^
@@ -3313,9 +3682,12 @@ changed. As was noted in the log at the time:
^
1 warning and 1 error generated.
make: *** [thadgavin_sdl] Error 1
-
- Thus main() was changed to 'int main(int argc, char **argv)'.
```
+>
+> Thus `main()` was changed to `int main(int argc, char **argv)`.
+
+
+Jump to: [top](#)
@@ -3323,8 +3695,8 @@ changed. As was noted in the log at the time:
### Winning entry source code: [tomx.c](%%REPO_URL%%/2000/tomx//tomx.c)
-[Cody](#cody) added the [alternate code](%%REPO_URL%%/2000/tomx/tomx.alt.c) based on the
-author's remarks with a fix for modern systems and he also added the two
+[Cody](#cody) added the [alternate code](2000/tomx/index.html#alternate-code) based on the
+author's remarks with a fix for modern systems, and he also added the two
scripts, [try.sh](%%REPO_URL%%/2000/tomx/try.sh) and [try.alt.sh](%%REPO_URL%%/2000/tomx/try.alt.sh) for
the main code and the alternate code respectively.
@@ -3332,11 +3704,17 @@ And although the scripts do `chmod +x` on the source code (see the index.html fo
details) the source code is now executable by default.
+Jump to: [top](#)
+
+
# [2001 - The 16th IOCCC](2001/index.html)
+Jump to: [top](#)
+
+
## Winning entry: [2001/anonymous](2001/anonymous/index.html)
### Winning entry source code: [anonymous.c](%%REPO_URL%%/2001/anonymous//anonymous.c)
@@ -3428,6 +3806,9 @@ attempt to use the program as it was designed but if compiling as 32-bit fails
it will at least run the supplementary program as a 64-bit program directly.
+Jump to: [top](#)
+
+
## Winning entry: [2001/bellard](2001/bellard/index.html)
### Winning entry source code: [bellard.c](%%REPO_URL%%/2001/bellard//bellard.c)
@@ -3463,6 +3844,9 @@ checked prior to running the function just like the author did for the factorial
this entry by Yusuke.
+Jump to: [top](#)
+
+
## Portability notes:
With a tip from Yusuke we rediscovered the author's [web page for this
@@ -3477,6 +3861,9 @@ compiler that does not support this would not work. Thus we use the modification
by Yusuke.
+Jump to: [top](#)
+
+
## Winning entry: [2001/cheong](2001/cheong/index.html)
### Winning entry source code: [cheong.c](%%REPO_URL%%/2001/cheong//cheong.c)
@@ -3491,6 +3878,9 @@ valid, BTW.
Cody also added the [try.sh](%%REPO_URL%%/2001/cheong/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2001/coupard](2001/coupard/index.html)
### Winning entry source code: [coupard.c](%%REPO_URL%%/2001/coupard//coupard.c)
@@ -3518,7 +3908,11 @@ Cody also added the [try.sh](%%REPO_URL%%/2001/coupard/try.sh) script.
or `/dev/sound/dsp` (which is most everyone nowadays, it seems, and especially
those with macOS) (to do with sound; see his
[2013/endoh3/index.html](2013/endoh3/index.html) entry where he also refers to
-sound devices in macOS).
+sound devices in macOS as well as our
+FAQ on "[sound](faq.html#sound)").
+
+
+Jump to: [top](#)
@@ -3535,8 +3929,14 @@ etc.) after exiting even if you don't press 'q', if you crash or if you kill the
program prematurely. This was done by adding an explicit call to `e()` at the
end of `main()`.
-Cody also added the [alternate code](%%REPO_URL%%/2001/ctk/ctk.alt.c) that adds
-vi(m) movement keys.
+Cody also added the [alternate
+code](2001/ctk/index.html#alternate-code) that adds
+vi(m) movement keys. See the
+FAQ on "[alternate code](faq.html#alt_code)"
+for more details.
+
+
+Jump to: [top](#)
@@ -3546,7 +3946,7 @@ vi(m) movement keys.
The author provided two changes: one to speed it up and one to make it not crash
on losing. [Cody](#cody) provided an [alternate
-version](%%REPO_URL%%/2001/dgbeards/dgbeards.alt.c) which does the former but
+version](2001/dgbeards/index.html#alternate-code) which does the former but
not the latter as he he felt that the idea of crashing on losing (see the
index.html for details on why that might be) too good to get rid. The author
explains how to make this change, however.
@@ -3555,6 +3955,9 @@ Cody also points out that there is a way to get the computer to automatically lo
very quickly. Do you know what it is?
+Jump to: [top](#)
+
+
## Winning entry: [2001/herrmann1](2001/herrmann1/index.html)
### Winning entry source code: [herrmann1.c](%%REPO_URL%%/2001/herrmann1//herrmann1.c)
@@ -3572,16 +3975,17 @@ He also fixed the [script herrmann1.sh](%%REPO_URL%%/2001/herrmann1/herrmann1.sh
shellcheck. In particular there were quite a few:
-```
- SC2086 (info): Double quote to prevent globbing and word splitting.
- SC2248 (style): Prefer double quoting even when variables don't contain special characters.
-```
+> SC2086 (info): Double quote to prevent globbing and word splitting.
+> SC2248 (style): Prefer double quoting even when variables don't contain special characters.
-errors/warnings.
+... errors/warnings.
Cody also added the [try.sh](%%REPO_URL%%/2001/herrmann1/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2001/herrmann2](2001/herrmann2/index.html)
### Winning entry source code: [herrmann2.c](%%REPO_URL%%/2001/herrmann2//herrmann2.c)
@@ -3600,6 +4004,9 @@ For some reason the original code was missing (presumingly because it had been
added to `.gitignore` by accident) but Cody restored it from the archive.
+Jump to: [top](#)
+
+
## Winning entry: [2001/kev](2001/kev/index.html)
### Winning entry source code: [kev.c](%%REPO_URL%%/2001/kev//kev.c)
@@ -3612,8 +4019,10 @@ Cody also slowed down the ball just a tad (it was already a `-D` macro that was
in the code) as it went too fast for the speed at which the paddles move even
when holding down the movement keys (but see below).
-Cody also provided an [alternate version](%%REPO_URL%%/2001/kev/kev.alt.c) which lets you use
-the arrow keys on your keyboard instead of the more awkward '`,`' and '`.`'.
+Cody also provided an [alternate version](2001/kev/index.html#alternate-code) which lets you use
+the arrow keys on your keyboard instead of the more awkward '`,`' and '`.`'. See the
+FAQ on "[alternate code](faq.html#alt_code)"
+for more details.
Cody updated both versions to have `#ifndef..#endif` pairs for the macros so one
can more easily configure different settings without having to specify all of
@@ -3623,6 +4032,9 @@ line as `50` is what it used to be set to. This way it's more to the original bu
without having to sacrifice playability by running `make`.
+Jump to: [top](#)
+
+
## Winning entry: [2001/ollinger](2001/ollinger/index.html)
### Winning entry source code: [ollinger.c](%%REPO_URL%%/2001/ollinger//ollinger.c)
@@ -3632,18 +4044,24 @@ without having to sacrifice playability by running `make`.
+Jump to: [top](#)
+
+
## Winning entry: [2001/schweikh](2001/schweikh/index.html)
### Winning entry source code: [schweikh.c](%%REPO_URL%%/2001/schweikh//schweikh.c)
[Cody](#cody) fixed this to not crash if not enough args as this was not documented by
-the author. The other problems are documented so were not fixed. See
+the author. The other problems are documented so were not fixed. See the
index.html for details.
Cody also added the [try.sh](%%REPO_URL%%/2001/schweikh/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2001/westley](2001/westley/index.html)
### Winning entry source code: [westley.c](%%REPO_URL%%/2001/westley//westley.c)
@@ -3657,11 +4075,17 @@ remarks, through `Makefile` rules that generate the files by default with `make
all`.
+Jump to: [top](#)
+
+
# [2004 - The 17th IOCCC](2004/index.html)
+Jump to: [top](#)
+
+
## Winning entry: [2004/anonymous](2004/anonymous/index.html)
### Winning entry source code: [anonymous.c](%%REPO_URL%%/2004/anonymous//anonymous.c)
@@ -3670,16 +4094,25 @@ all`.
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2004/anonymous/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2004/arachnid](2004/arachnid/index.html)
### Winning entry source code: [arachnid.c](%%REPO_URL%%/2004/arachnid//arachnid.c)
[Cody](#cody) added an [alternate
-version](%%REPO_URL%%/2004/arachnid/arachnid.alt.c) which
+version](2004/arachnid/index.html#alternate-code) which
allows those like himself used to `h`, `j`, `k` and `l` movement keys to not get
lost. Non rogue players, vi users and Dvorak typists are invited to get lost (or
-use the original version)! :-)
+use the original version)! :-) See the
+FAQ on "[alternate code](faq.html#alt_code)"
+for more details.
+
+
+
+Jump to: [top](#)
@@ -3709,12 +4142,15 @@ expression with `void` or if it is for some other reason).
`longjmp(3)` was being called with one arg which was an element
of an `int[4][1000]` which had to be changed to a `jmp_buf p[4]` (this due to
-the prototype being included).
+the addition of `#include `).
Finally the optimiser cannot be enabled so the compiler flags were changed for
this, forcing `-O0`.
+Jump to: [top](#)
+
+
## Winning entry: [2004/gavare](2004/gavare/index.html)
### Winning entry source code: [gavare.c](%%REPO_URL%%/2004/gavare//gavare.c)
@@ -3732,13 +4168,18 @@ and anti-alias setting at compile time. This is based on the author's remarks.
that was used during development, found on their [website about the
entry](https://gavare.se/ioccc/ioccc_gavare.c.html).
+See the
+FAQ on "[alternate code](faq.html#alt_code)"
+for more details.
+
+
## Winning entry: [2004/gavin](2004/gavin/index.html)
### Winning entry source code: [gavin.c](%%REPO_URL%%/2004/gavin//gavin.c)
-[Cody](#cody) provided the [alternate code](%%REPO_URL%%/2004/gavin/gavin.alt.c) for
+[Cody](#cody) provided the [alternate code](2004/gavin/index.html#alternate-code) for
those who want to use QEMU. The most important part of this is the macro `K` has
to be defined as `1`, not `0`.
@@ -3750,6 +4191,9 @@ is done this way to prevent extraction from the entry directory overwriting the
files and causing `make clobber` to wipe some of them out.
+Jump to: [top](#)
+
+
## Winning entry: [2004/hibachi](2004/hibachi/index.html)
### Winning entry source code: [hibachi.c](%%REPO_URL%%/2004/hibachi//hibachi.c)
@@ -3771,6 +4215,9 @@ well, namely to get the program to work as `alt` rather than `-spoiler` (it is
not even known if it would work otherwise).
+Jump to: [top](#)
+
+
## Winning entry: [2004/hoyle](2004/hoyle/index.html)
### Winning entry source code: [hoyle.c](%%REPO_URL%%/2004/hoyle//hoyle.c)
@@ -3779,6 +4226,9 @@ not even known if it would work otherwise).
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2004/hoyle/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2004/jdalbec](2004/jdalbec/index.html)
### Winning entry source code: [jdalbec.c](%%REPO_URL%%/2004/jdalbec//jdalbec.c)
@@ -3810,15 +4260,20 @@ and various other problems. However there does seem to be a problem at least
with some `gcc` versions in macOS but this appears to be due to errors in
`/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/cdefs.h`.
-Cody also added [alternate code](%%REPO_URL%%/2004/jdalbec/jdalbec.alt.c) which allows
+Cody also added [alternate code](2004/jdalbec/index.html#alternate-code) which allows
one to control how many numbers after the `:` to print before printing a
newline, so that one can see the output a bit better (though for lines that have
-a lot of numbers this will be harder to see).
+a lot of numbers this will be harder to see). See the
+FAQ on "[alternate code](faq.html#alt_code)"
+for more details.
Finally Cody added [try.sh](%%REPO_URL%%/2004/jdalbec/try.sh) and
[try.alt.sh](%%REPO_URL%%/2004/jdalbec/try.alt.sh) to demonstrate both versions.
+Jump to: [top](#)
+
+
## Winning entry: [2004/kopczynski](2004/kopczynski/index.html)
### Winning entry source code: [kopczynski.c](%%REPO_URL%%/2004/kopczynski//kopczynski.c)
@@ -3829,11 +4284,8 @@ discovered it will not work otherwise.
Cody, out of an abundance of caution for `clang`, added a second arg to `main()`
as some versions complain about the number of args and although they accept 1 it
-is entirely possible it will eventually be that they don't.
-
-See the
-FAQ on "[main function args](faq.html#arg_count)"
-for more details.
+is entirely possible it will eventually be that they don't. See the FAQ on
+"[main function args](faq.html#arg_count)" for more details.
Cody also added the [try.sh](%%REPO_URL%%/2004/kopczynski/try.sh) script and various data
files: [kopczynski-a](%%REPO_URL%%/2004/kopczynski/kopczynski-a) to demonstrate what happens when art more
@@ -3842,6 +4294,9 @@ the data files reversed with `rev(1)`. One had to be modified additionally to
get it to work, that being `kopczynski-10-rev`.
+Jump to: [top](#)
+
+
## Winning entry: [2004/newbern](2004/newbern/index.html)
### Winning entry source code: [newbern.c](%%REPO_URL%%/2004/newbern//newbern.c)
@@ -3854,6 +4309,9 @@ that the author referred to and was documented by [Yusuke](#yusuke) though Cody
chose the word `IOCCC` instead of `AAA`).
+Jump to: [top](#)
+
+
## Winning entry: [2004/omoikane](2004/omoikane/index.html)
### Winning entry source code: [omoikane.c](%%REPO_URL%%/2004/omoikane//omoikane.c)
@@ -3862,14 +4320,15 @@ chose the word `IOCCC` instead of `AAA`).
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2004/omoikane/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2004/schnitzi](2004/schnitzi/index.html)
### Winning entry source code: [schnitzi.c](%%REPO_URL%%/2004/schnitzi//schnitzi.c)
-[Cody](#cody) made this use `fgets(3)`.
-
-See the
+[Cody](#cody) made this use `fgets(3)`. See the
FAQ on "[gets and fgets](faq.html#gets)"
for why this was done.
@@ -3880,6 +4339,8 @@ fast in modern systems, especially the scrolling text of
Cody also added the [try.sh](%%REPO_URL%%/2004/schnitzi/try.sh) script.
+Jump to: [top](#)
+
## Winning entry: [2004/sds](2004/sds/index.html)
@@ -3892,6 +4353,9 @@ Also, after the `README.md` file had copyright changes, it broke the script so
Cody made a copy of the older `README.md` file into `README_sds.txt` and added that
to the repo for the script instead.
+Jump to: [top](#)
+
+
## Winning entry: [2004/vik2](2004/vik2/index.html)
@@ -3955,11 +4419,17 @@ Cody also made it so that the `FNAME` is (for the entry file itself and
just to make it a bit easier to compile.
+Jump to: [top](#)
+
+
# [2005 - The 18th IOCCC](2005/index.html)
+Jump to: [top](#)
+
+
## Winning entry: [2005/aidan](2005/aidan/index.html)
### Winning entry source code: [aidan.c](%%REPO_URL%%/2005/aidan//aidan.c)
@@ -3969,10 +4439,12 @@ just to make it a bit easier to compile.
to the proper compiled program (it's hardcoded). This had never been done and so
the script did not even work (at least modernly?).
-He also added the [alternate code](%%REPO_URL%%/2005/aidan/aidan.alt.c) based on the
+He also added the [alternate code](2005/aidan/index.html#alternate-code) based on the
author's remarks which is a different approach than the one used and which
-(according to the author) '`is slower (particularly in worst-case or nearly so
-scenarios), inelegant, and not a good starting place for sudoku generation.`'
+(according to the author):
+
+> ... is slower (particularly in worst-case or nearly so
+scenarios), inelegant, and not a good starting place for sudoku generation.
Cody added the [try.sh](%%REPO_URL%%/2005/aidan/try.sh) and
[try.alt.sh](%%REPO_URL%%/2005/aidan/try.alt.sh) scripts that correspond to the entry and
@@ -3982,6 +4454,9 @@ Cody added the `make test` and `make test-n0` rules for easier use of the test
suite.
+Jump to: [top](#)
+
+
## Winning entry: [2005/anon](2005/anon/index.html)
### Winning entry source code: [anon.c](%%REPO_URL%%/2005/anon//anon.c)
@@ -3995,8 +4470,13 @@ The author noted that one can define `NO_STTY` to not use `stty(1)` at all
(either to prevent having to hit enter or to turn echo off/on) and this is
explained in the index.html.
-Cody added the [alternate code](%%REPO_URL%%/2005/anon/anon.alt.c) with vi(m) like
-movements.
+Cody added the [alternate code](2005/anon/index.html#alternate-code) with vi(m) like
+movements. See the
+FAQ on "[alternate code](faq.html#alt_code)"
+for more details.
+
+
+Jump to: [top](#)
@@ -4010,6 +4490,9 @@ input from the author, adapting it to a command to try out.
Cody also added the [try.sh](%%REPO_URL%%/2005/boutines/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2005/giljade](2005/giljade/index.html)
### Winning entry source code: [giljade.c](%%REPO_URL%%/2005/giljade//giljade.c)
@@ -4081,6 +4564,9 @@ program generates as the author states, 180. If it does not find 180 it is an
error; otherwise it is success. See [test.sh](%%REPO_URL%%/2005/giljade/test.sh).
+Jump to: [top](#)
+
+
## Winning entry: [2005/jetro](2005/jetro/index.html)
### Winning entry source code: [jetro.c](%%REPO_URL%%/2005/jetro//jetro.c)
@@ -4091,6 +4577,9 @@ not do it implicitly (like macOS does).
+Jump to: [top](#)
+
+
## Winning entry: [2005/klausler](2005/klausler/index.html)
### Winning entry source code: [klausler.c](%%REPO_URL%%/2005/klausler//klausler.c)
@@ -4099,6 +4588,9 @@ not do it implicitly (like macOS does).
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2005/klausler/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2005/mikeash](2005/mikeash/index.html)
### Winning entry source code: [mikeash.c](%%REPO_URL%%/2005/mikeash//mikeash.c)
@@ -4134,6 +4626,9 @@ also show correct output though.
Cody also added the [try.sh](%%REPO_URL%%/2005/mikeash/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2005/mynx](2005/mynx/index.html)
### Winning entry source code: [mynx.c](%%REPO_URL%%/2005/mynx//mynx.c)
@@ -4154,19 +4649,25 @@ support `http`. But there might be some command line that will let it work that
way or perhaps someone wants to add the necessary code, updating the file.
+Jump to: [top](#)
+
+
## Winning entry: [2005/persano](2005/persano/index.html)
### Winning entry source code: [persano.c](%%REPO_URL%%/2005/persano//persano.c)
[Cody](#cody) added the (untested) [alternate
-code](%%REPO_URL%%/2005/persano/persano.alt.c) which should work for Windows as
+code](2005/persano/index.html#alternate-code) which should work for Windows as
it sets binary mode on `stdout`. This was based on the author's remarks but it
is untested as Cody has no Windows system to test it on.
Cody also added the [try.sh](%%REPO_URL%%/2005/persano/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2005/sykes](2005/sykes/index.html)
### Winning entry source code: [sykes.c](%%REPO_URL%%/2005/sykes//sykes.c)
@@ -4209,6 +4710,9 @@ The scripts note every time that one will have to send ctrl-c or whatever their
interrupt is set to in order to exit the program.
+Jump to: [top](#)
+
+
## Winning entry: [2005/timwi](2005/timwi/index.html)
### Winning entry source code: [timwi.c](%%REPO_URL%%/2005/timwi//timwi.c)
@@ -4219,6 +4723,9 @@ want to knacker his brain any more than it might or might not already be :-) and
he doesn't want to damage anyone else's brain either. :-)
+Jump to: [top](#)
+
+
## Winning entry: [2005/toledo](2005/toledo/index.html)
### Winning entry source code: [toledo.c](%%REPO_URL%%/2005/toledo//toledo.c)
@@ -4232,6 +4739,9 @@ The [alternate versions](2005/toledo/index.html#alternate-code) that the author
provided were also fixed.
+Jump to: [top](#)
+
+
## Winning entry: [2005/vince](2005/vince/index.html)
### Winning entry source code: [vince.c](%%REPO_URL%%/2005/vince//vince.c)
@@ -4248,11 +4758,17 @@ with the appropriate extension so this might be called a bug fix as well though
if one runs it from another directory, specifying the directory, it'll not catch it.
+Jump to: [top](#)
+
+
# [2006 - The 19th IOCCC](2006/index.html)
+Jump to: [top](#)
+
+
## Winning entry: [2006/birken](2006/birken/index.html)
### Winning entry source code: [birken.c](%%REPO_URL%%/2006/birken//birken.c)
@@ -4265,6 +4781,9 @@ it from working.
Cody also added the [try.sh](%%REPO_URL%%/2006/birken/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2006/borsanyi](2006/borsanyi/index.html)
### Winning entry source code: [borsanyi.c](%%REPO_URL%%/2006/borsanyi//borsanyi.c)
@@ -4276,6 +4795,9 @@ implicitly linked in.
Cody also added the [try.sh](%%REPO_URL%%/2006/borsanyi/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2006/grothe](2006/grothe/index.html)
### Winning entry source code: [grothe.c](%%REPO_URL%%/2006/grothe//grothe.c)
@@ -4284,12 +4806,18 @@ Cody also added the [try.sh](%%REPO_URL%%/2006/borsanyi/try.sh) script.
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2006/grothe/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2006/hamre](2006/hamre/index.html)
### Winning entry source code: [hamre.c](%%REPO_URL%%/2006/hamre//hamre.c)
-Cody also added the [try.sh](%%REPO_URL%%/2006/hamre/try.sh) script.
+Cody added the [try.sh](%%REPO_URL%%/2006/hamre/try.sh) script.
+
+
+Jump to: [top](#)
@@ -4297,22 +4825,22 @@ Cody also added the [try.sh](%%REPO_URL%%/2006/hamre/try.sh) script.
### Winning entry source code: [monge.c](%%REPO_URL%%/2006/monge//monge.c)
-[Cody](#cody) added the [alternate code](%%REPO_URL%%/2006/monge/monge.alt.c) that lets
-one resize the image and redefine the number of iterations.
+[Cody](#cody) added the [alternate code](2006/monge/index.html#alternate-code) that lets
+one resize the image and redefine the number of iterations. See the
+FAQ on "[alternate code](faq.html#alt_code)"
+for more details.
Cody also added the [try.sh](%%REPO_URL%%/2006/monge/try.sh) and
[try.alt.sh](%%REPO_URL%%/2006/monge/try.alt.sh) scripts.
-Cody also fixed the `Makefile` to use `sdl-config` (which is what the author
-stated too though that was noticed later), not `sdl2-config` as two functions
-that are used were removed from [SDL2](https://www.libsdl.org),
-thus making it not link. Since SDL2 is still available and since changing the
-code to use SDL2 is much more complicated and also makes the entry less like
-the original it was simply made to link in SDL1.
+Cody also fixed the `Makefile` to use `sdl-config`, not `sdl2-config`, as two
+functions that are used were removed from [SDL2](https://www.libsdl.org), thus
+making it not link.
-Nevertheless this entry does require x86/x86_64 CPUS. This is a documented
-feature but one which we will accept fixes to. See [2006/monge in
-bugs.html](bugs.html#2006_monge).
+Nevertheless this entry does require x86/x86_64 CPUS (this is a documented
+feature).
+
+Jump to: [top](#)
@@ -4321,8 +4849,11 @@ bugs.html](bugs.html#2006_monge).
As [Cody](#cody) is a lost :-) `vim` user he took the author's remarks to add support
-back for arrow keys in the [alternate version](%%REPO_URL%%/2006/night/night.alt.c).
+back for arrow keys in the [alternate
+version](2006/night/index.html#alternate-code). See the
+FAQ on "[alternate code](faq.html#alt_code)" for more details.
+Jump to: [top](#)
## Winning entry: [2006/sloane](2006/sloane/index.html)
@@ -4343,13 +4874,6 @@ used but Cody discovered that later versions of `clang` have an additional defec
where it does not allow only one arg so the second arg to `main()` was added
back.
-This was an unfortunate problem for the alternate code as he has been using `Z`
-for alternate code `usleep()` (for sleep) but in this case unfortunately the
-original entry used `Z` in `main()` (though unused) so to make it more like the
-original Cody renamed the macro `Z` for `usleep()` to `S` instead which can
-stand for sleep and also it is kind of like a backwards `Z`. That way `Z` could
-be in `main()`.
-
Cody also made sure that the `Makefile` links in `libm` as not all systems do this
by default.
@@ -4365,13 +4889,16 @@ program in some systems he also added `-include ...` to the `Makefile` as well.
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2006/stewart/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2006/sykes1](2006/sykes1/index.html)
### Winning entry source code: [sykes1.c](%%REPO_URL%%/2006/sykes1//sykes1.c)
[Cody](#cody) provided the [alternate
-code](%%REPO_URL%%/2006/sykes1/sykes1.alt.c) based on the
+code](2006/sykes1/index.html#alternate-code) based on the
author's remarks.
Cody also added the [try.sh](%%REPO_URL%%/2006/sykes1/try.sh) script.
@@ -4379,6 +4906,9 @@ Cody also added the [try.sh](%%REPO_URL%%/2006/sykes1/try.sh) script.
Cody also provided the [bedlam-cubes.pdf](2006/sykes1/bedlam-cubes.pdf) file,
obtained from the Internet Wayback Machine, as the file was no longer available.
+Jump to: [top](#)
+
+
## Winning entry: [2006/sykes2](2006/sykes2/index.html)
@@ -4387,15 +4917,14 @@ obtained from the Internet Wayback Machine, as the file was no longer available.
[Cody](#cody), out of an abundance of caution for `clang`'s defects, made `main()` have
2 args instead of 1 as some versions report that `main()` must have 0, 2 or 3
-args, even though at least one of those versions allows 1 arg only.
-
-See the
+args, even though at least one of those versions allows 1 arg only. See the
FAQ on "[main function args](faq.html#arg_count)"
for more details.
+Cody also added the [try.sh](%%REPO_URL%%/2006/sykes2/try.sh) script for easier
+use of the entry to show the clock update in real time.
-Cody also added the [try.sh](%%REPO_URL%%/2006/sykes2/try.sh) script for easier use of the
-entry to show the clock update in real time.
+Jump to: [top](#)
@@ -4405,6 +4934,9 @@ entry to show the clock update in real time.
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2006/toledo1/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2006/toledo2](2006/toledo2/index.html)
@@ -4417,7 +4949,7 @@ problem was wrong variable types - implicit `int`s instead of `FILE *`s. It now
works with both macOS and Linux.
Cody also added the (untested) [alternate
-code](%%REPO_URL%%/2006/toledo2/toledo2.alt.c) that is based on the author's remarks to
+code](2006/toledo2/index.html#alternate-code) that is based on the author's remarks to
port this to systems that have the non-standard `kbhit()` and `getch()` (not the
one from curses) which is typically (always?) in `conio.h`.
@@ -4427,6 +4959,9 @@ the program and modified the `fread(3)`/`fwrite(3)` section to use the variable
(perhaps Cody's fix was for arm64 only?). Also, he added a note to clarify from
where appears the `IMPORT.COM` and `HALT.COM` files.
+Jump to: [top](#)
+
+
@@ -4440,9 +4975,13 @@ lets it work in both Linux and macOS. The problem was that it relied on 32-bits
so some `int`s were changed to `long`s. The display problem might or might not
have been a problem in Linux with the old `int`s but this is no longer known.
-Cody also added the code that _should_ work for Windows,
-[toledo3.alt.c](%%REPO_URL%%/2006/toledo3/toledo3.alt.c), based on the author's remarks.
-We're not able to test this.
+Cody also added the code that should work for Windows (it was tested by the
+author), [toledo3.alt.c](%%REPO_URL%%/2006/toledo3/toledo3.alt.c), based on the
+author's remarks; see [Alternate code in
+2006/toledo3/index.html](2006/toledo3/index.html#alternate-code).
+
+
+Jump to: [top](#)
@@ -4450,6 +4989,9 @@ We're not able to test this.
+Jump to: [top](#)
+
+
## Winning entry: [2011/akari](2011/akari/index.html)
### Winning entry source code: [akari.c](%%REPO_URL%%/2011/akari//akari.c)
@@ -4458,6 +5000,9 @@ We're not able to test this.
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2011/akari/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2011/blakely](2011/blakely/index.html)
### Winning entry source code: [blakely.c](%%REPO_URL%%/2011/blakely//blakely.c)
@@ -4466,6 +5011,9 @@ We're not able to test this.
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2011/blakely/try.sh) script.
+Jump to: [top](#)
+
+
## Winning entry: [2011/borsanyi](2011/borsanyi/index.html)
### Winning entry source code: [borsanyi.c](%%REPO_URL%%/2011/borsanyi//borsanyi.c)
@@ -4473,9 +5021,7 @@ We're not able to test this.
[Cody](#cody), out of an abundance of caution, added a second arg to `main()` as some
versions of `clang` complain about not only the type of each arg to `main()` but
-the number of args as well.
-
-See the
+the number of args as well. See the
FAQ on "[main function args](faq.html#arg_count)"
for more details.
@@ -4483,6 +5029,9 @@ for more details.
Cody also added the [try.sh](%%REPO_URL%%/2011/borsanyi/try.sh) script.
+Jump to: [top](#)
+
+