diff --git a/bugs.html b/bugs.html
index 079e5eb18..29867d7bd 100644
--- a/bugs.html
+++ b/bugs.html
@@ -2780,23 +2780,29 @@ touched either.
The author stated the following:
-
-
-- The program must be ran in a terminal that supports ANSI escape codes for
-moving the cursor and changing colors.
-- Segfaults happen sometimes.
-- I don’t know what memory management there is, if any.
-- The program will not compile by an ANSI C compiler: it uses for loops, and
-it uses C++ style comments. It should compile cleanly using a C99 standard.
-- Breadth first search is slow (and very slow on certain maps), but my A star
-version of this program is too big.
-- Lots of extra whitespace may be needed if you want to feed in an arbitrary
-file.
-- It fails to compile on GCC sometimes (according to a friend of mine, I’ve
-not encountered this myself).
-- The program could be obfuscated much further.
-- The program contains some unused code and data.
-
+ - The program must be ran in a terminal that supports ANSI escape
+ codes for moving the cursor and changing colors.
+
+ - Segfaults happen sometimes.
+
+ - I don't know what memory management there is, if any.
+
+ - The program will not compile by an ANSI C compiler: it uses
+ for loops, and it uses C++ style comments. It should compile
+ cleanly using a C99 standard.
+
+ - Breadth first search is slow (and very slow on certain maps),
+ but my A star version of this program is too big.
+
+ - Lots of extra whitespace may be needed if you want to feed in
+ an arbitrary file.
+
+ - It fails to compile on GCC sometimes (according to a friend
+ of mine, I've not encountered this myself).
+
+ - The program could be obfuscated much further.
+
+ - The program contains some unused code and data.
2019/lynn
@@ -2818,17 +2824,15 @@ file you should delete all the checkpoint files because the format depends on
both the network and the input – using the wrong checkpoint is likely to cause
a crash.
The author also wrote:
-
-IMPORTANT NOTE: Since OMLET uses the system stack for network storage,
-larger networks may cause OMLET to crash (typically with a message like
-Segmentation fault) unless the system stack size is first increased.
-The exact command for doing so depends on your shell and your system’s
-hard limits. On sh/ksh/bash shells, you can view the hard limit
-with ulimit -Hs and set it with ulimit -s 65532 (replacing 65532
-with the actual hard limit). On csh/tcsh shells, you can view
-the hard limit with limit -h stacksize and set it with
-limit stacksize 65532 (replacing 65532 with the actual hard limit).
-
+ IMPORTANT NOTE: Since OMLET uses the system stack for network storage,
+ larger networks may cause OMLET to crash (typically with a message like
+ Segmentation fault) unless the system stack size is first increased.
+ The exact command for doing so depends on your shell and your system's
+ hard limits. On sh/ksh/bash shells, you can view the hard limit
+ with ulimit -Hs and set it with ulimit -s 65532 (replacing 65532
+ with the actual hard limit). On csh/tcsh shells, you can view
+ the hard limit with limit -h stacksize and set it with
+ limit stacksize 65532 (replacing 65532 with the actual hard limit).
2019/poikola
diff --git a/bugs.md b/bugs.md
index b7185c25f..18dbd88e8 100644
--- a/bugs.md
+++ b/bugs.md
@@ -3872,22 +3872,31 @@ touched either.
The author stated the following:
----
+```
+ - The program must be ran in a terminal that supports ANSI
+ escape codes for moving the cursor and changing colors.
-- The program must be ran in a terminal that supports ANSI escape codes for
-moving the cursor and changing colors.
-- Segfaults happen sometimes.
-- I don't know what memory management there is, if any.
-- The program will not compile by an ANSI C compiler: it uses for loops, and
-it uses C++ style comments. It should compile cleanly using a C99 standard.
-- Breadth first search is slow (and very slow on certain maps), but my A star
-version of this program is too big.
-- Lots of extra whitespace may be needed if you want to feed in an arbitrary
-file.
-- It fails to compile on GCC sometimes (according to a friend of mine, I've
-not encountered this myself).
-- The program could be obfuscated much further.
-- The program contains some unused code and data.
+ - Segfaults happen sometimes.
+
+ - I don't know what memory management there is, if any.
+
+ - The program will not compile by an ANSI C compiler: it uses
+ for loops, and it uses C++ style comments. It should compile
+ cleanly using a C99 standard.
+
+ - Breadth first search is slow (and very slow on certain maps),
+ but my A star version of this program is too big.
+
+ - Lots of extra whitespace may be needed if you want to feed in
+ an arbitrary file.
+
+ - It fails to compile on GCC sometimes (according to a friend
+ of mine, I've not encountered this myself).
+
+ - The program could be obfuscated much further.
+
+ - The program contains some unused code and data.
+```
@@ -3919,20 +3928,17 @@ a crash.
The author also wrote:
----
-
-**IMPORTANT NOTE**: Since OMLET uses the system stack for network storage,
-larger networks may cause OMLET to crash (typically with a message like
-`Segmentation fault`) unless the system stack size is first increased.
-The exact command for doing so depends on your shell and your system's
-hard limits. On `sh`/`ksh`/`bash` shells, you can view the hard limit
-with `ulimit -Hs` and set it with `ulimit -s 65532` (replacing `65532`
-with the actual hard limit). On `csh`/`tcsh` shells, you can view
-the hard limit with `limit -h stacksize` and set it with
-`limit stacksize 65532` (replacing `65532` with the actual hard limit).
-
----
-
+```
+ IMPORTANT NOTE: Since OMLET uses the system stack for network storage,
+ larger networks may cause OMLET to crash (typically with a message like
+ Segmentation fault) unless the system stack size is first increased.
+ The exact command for doing so depends on your shell and your system's
+ hard limits. On sh/ksh/bash shells, you can view the hard limit
+ with ulimit -Hs and set it with ulimit -s 65532 (replacing 65532
+ with the actual hard limit). On csh/tcsh shells, you can view
+ the hard limit with limit -h stacksize and set it with
+ limit stacksize 65532 (replacing 65532 with the actual hard limit).
+```
## 2019/poikola
diff --git a/thanks-for-help.html b/thanks-for-help.html
index 23a445002..7c5ed42c2 100644
--- a/thanks-for-help.html
+++ b/thanks-for-help.html
@@ -155,13 +155,11 @@ on a IOCCC entry by entry basis.
Thank you honor roll
Did we neglect to credit you?
-#
-1984
+
1984
-##
Cody fixed this to work for macOS.
The problem was to do with the way that the read(2) function was redefined.
@@ -180,9 +178,8 @@ the famous tattoo which we also include here:
…which was done in 2005 by Thomas
Scovell.
-##
Cody fixed this to not require -traditional-cpp which some compilers like
clang do not support. Fixing -traditional-cpp is, as noted later on, very
@@ -230,18 +227,16 @@ seem possible) it is easy to fix but it is hoped that this won’t happen.
but not clang - or at least some versions.
To see the difference from start to fixed:
cd 1984/decot ; make diff_orig_prog
-##
Cody added the try.sh script.
Cody also fixed this to not crash when no arg is specified. Note that if the arg
is not a positive number it will not do anything useful or anything at all.
This was fixed on 30 October 2023 after the bug status was changed from INABIAF
(it’s not a bug it’s a feature) to bug.
-##
Cody provided an alternate version,
an improved version of the judges, so that everyone can enjoy it with systems
@@ -260,13 +255,11 @@ header file 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.
-#
-1985
+
1985
-##
Both Cody and Yusuke fixed this; Yusuke got this to not crash and Cody fixed it
to work with macOS.
@@ -284,9 +277,8 @@ Ironically this fix was discovered through Linux!
shell, after the output (despite having
\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.
-##
Cody, out of abundance of caution, added a second arg to main() because some
versions of clang object to the number of args of main(), saying that it must
@@ -301,9 +293,8 @@ way.
Cody also added the try.sh script (which calls primes.sh
whether primes(6) is installed or not, but it only does it once with the
default value).
-##
Cody fixed this to compile with modern compilers. In the past one could get away
with defining some macro to #define and then use #foo to have the same
@@ -312,9 +303,8 @@ changed the #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.
-##
Cody added the alt code which allows one to resize the maze and he also added
the try.alt.sh script that randomly selects sizes
@@ -322,9 +312,8 @@ the try.alt.sh script that randomly select
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).
-##
Cody fixed this very twisted entry to not require -traditional-cpp. Fixing
-traditional-cpp is, as noted later on, very complicated, but Cody would like
@@ -411,30 +400,25 @@ fails to compile it will be built as sicherman as part of the
Cody also added the try.sh and
try.alt.sh scripts.
-#
-1986
+
1986
-##
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.
-##
Cody added the try.sh script.
-##
Cody made this use fgets().
Cody also added the try.sh script which also feeds to the
program the added input.txt file.
-##
Cody fixed this to compile and work with clang (it already worked with gcc).
The problem was that clang is more strict about the type of second arg to
@@ -442,9 +426,8 @@ The problem was that clang is more strict about the type of second arg to
caused a segfault. By adding a new variable, char *t, initialising it to s
and then using t instead of s it compiles and runs successfully under clang
and gcc.
-##
Cody got this to compile and work with clang and gcc. He noted that he tried to
keep the ASCII art as close to the original as possible. The line lengths are
@@ -482,16 +465,14 @@ was possible to silence it. In particular:
1 warning generated.
which can be disabled. It results in the same behaviour but this way no warnings
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.
-##
Cody restored the original entry which was a single line. The code
being longer (in 1986 a one liner could be longer) was split to three lines to
@@ -499,9 +480,8 @@ avoid problems with news and mail but as it was the ‘Best one liner’ it is n
one line.
Cody also added the stein.sh script which runs the two
commands that we suggest in order to get it to show clean output.
-##
Cody fixed this so that it does not require -traditional-cpp. This took a fair
bit of tinkering as this entry very twisted; fixing -traditional-cpp is, as
@@ -564,18 +544,15 @@ 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.
-#
-1987
+
1987
-##
Cody added the try.sh script.
-##
Cody made this look more like the original entry by restoring the #define of
define. It’s not used but it now looks closer to the original.
@@ -585,17 +562,15 @@ 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.
-##
Cody added the try.sh script and the C file
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.
-##
Cody added back the documented checks for invalid input which no longer worked
and instead resulted in either accepting the level, whether or not it was a
@@ -631,15 +606,13 @@ 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).
-##
Cody made this use fgets(3).
Cody also added the try.sh script.
-##
Cody fixed this for modern systems. The problem was 'assignment to cast is illegal, lvalue casts are not supported'. For the original file see the
index.html file. Unfortunately this ruins some symmetry. To try and resolve this
@@ -650,13 +623,11 @@ commented out it’s probably not a big deal to have it removed instead as it do
look more symmetrical now.
Cody also added to the Makefile -include stdio.h in the nowadays very
unlikely(?) but nevertheless suggested case that putchar() is not available.
-#
-1988
+
1988
-##
Cody fixed this twisted entry (as we called it :-) ) for modern compilers,
including making it no longer require -traditional-cpp. Fixing
@@ -710,23 +681,20 @@ macro in place it’s just no longer used.
See the index.html file for details on the original code, provided as an alt
version in case you have an older compiler or wish to try -traditional-cpp.
Cody also provided the try.sh script.
-##
Cody fixed this to work for modern systems. The problem was that the important
function, a redefinition of exit(), was not being called in main(). The
original version is in 1988/isaak/isaak.alt.c. See the
index.html file for more details.
-##
Cody added the alt code which is code that we suggested at the time of
publication, in the remarks, to help understand the entry, and for fun.
-##
Cody fixed this for modern systems. It did not compile with clang because it
requires the second and third args of main() to be `char ** but even before
@@ -741,14 +709,12 @@ K&R style functions, and trying to match the format as best as possible of w
once did. The format of pain() is exactly like how main() was as it’s the
same code. Additionally, main() returns !pain(...) like main() used to do
to itself and pain() does now.
-##
Cody made this use fgets(3).
-##
Cody provided an alternate version so that
this will work with compilers like clang. An alternate version had to be
@@ -760,9 +726,8 @@ 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! :-)
-##
The original version, provided as alternate code,
was fixed by Misha Dynin, based on the judges’ remarks, so that this would work
@@ -772,13 +737,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.
-#
-1989
+
1989
-##
Cody got this to work with modern systems. The main issues were that an
#include had to be added along with fixing the path (due to . not being in
@@ -804,9 +767,8 @@ 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.
-##
To prevent annoying output to /dev/tty we changed the code to simulate the
output via strings(1) but Cody removed the ill-famed useless use of cat to
@@ -820,9 +782,8 @@ most certainly do have a personality and they can be very sociable.
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 alt code) anyway, it works out well.
-##
Cody fixed this to work with modern compilers. Modern compilers do not allow
code like:
@@ -848,9 +809,8 @@ result in:
shell returned 2
because the alt rule had what normally is in the ${PROG}.alt rule.
-##
Cody fixed an infinite loop where the program would print the same thing over
and over again, flooding the screen. The problem is that there was a for loop
@@ -866,9 +826,8 @@ the author’s remarks and the try.alt.sh
uses the alt code, allowing one to configure the alt build. See the index.html
for details. The fix described above was fixed in this version too, after it was
discovered and fixed.
-##
Cody fixed a segfault under macOS that prevented it from working. The problem
was that the int (from #define f) should be a long. This became apparent when
@@ -876,18 +835,16 @@ 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.
-##
Yusuke Endoh fixed this to compile under modern systems. To see the changes
made, try:
cd 1989/robison ; make diff_orig_prog
(It adds the C token pasting operator ## instead of /**/.)
Cody also added the try.sh script.
-##
Cody and Yusuke fixed this entry: Yusuke fixed this to compile with gcc and Cody
fixed it for clang and made some other fixes as well.
@@ -909,14 +866,12 @@ 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 :-) )
-##
Cody added the try.sh script.
-##
Cody fixed this for clang, except that two versions generated by the program
cannot be compiled by clang due to inherent defects in the compiler and how the
@@ -968,13 +923,11 @@ will work for compilers like gcc and one can then use the
try.sh script to see example input and output.
The compile.sh script allows one to specify the compiler with the CC
environmental variable; see the index.html for details.
-#
-1990
+
1990
-##
Cody added the try.sh script.
Cody also added an alternate version which allows Turbo-C
@@ -989,16 +942,14 @@ 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.
-##
Yusuke got this to work in modern systems (it previously resulted in a bus
error).
Cody made this use fgets(3).
-##
Yusuke and Cody in conjunction fixed this for modern systems (both fixed a
different compiler error but more fixes were also made).
@@ -1009,9 +960,8 @@ operator itself.
Cody fixed another compiler error by removing the erroneous prototype to
fopen(). 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).
-##
Cody fixed this for modern systems. There were two problems to be resolved.
One can no longer do:
@@ -1025,9 +975,8 @@ 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.
-##
Cody fixed the script to work properly in modern environments including writing
to and extracting from stdout and relying on the exit code in the commands to
@@ -1039,24 +988,21 @@ the time.
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 from invalid
input but which now works.
-##
Cody added the alt 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.
-##
Yusuke suggested -ansi to get the entry to compile due to trigraphs and Cody
suggested -trigraphs. Both work but we used Yusuke’s idea.
Cody added the try.sh script to show exactly what the
entry does.
-##
Cody fixed this to work with modern compilers; exit(3) returns void but the
function was used in a binary expression so this wouldn’t even compile.
@@ -1070,9 +1016,8 @@ it look more like the original by redefining
exit and also redefini
to be
fgets() in the same way that the original entry is. This way the
alt
version is equivalent in function, like the
author intended, but more compact.
-##
Cody fixed this to compile with modern systems.
He also fixed some bugs that impacted the usability of this program including some
@@ -1100,17 +1045,15 @@ original program and some of the programs it generates.
Yusuke pointed out that atof nowadays needs #include <stdlib.h> which was
used in order to get this to work initially (prior to this output was there but
incomplete).
-##
Cody fixed the paths in the Makefile so that this would build in Linux (it
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.
-##
Cody fixed this for modern systems. It had 1s 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,
@@ -1122,13 +1065,11 @@ and to not crash if no arg is specified.
Cody also added the try.sh script.
The alt code did NOT have arg checks added as it is actually a copy of the
original code.
-#
-1991
+
1991
-##
Cody added alt code that will be a bit easier to use for
those familiar with vim in the following ways:
@@ -1141,9 +1082,8 @@ those familiar with vim in the following ways:
Use q to exit.
The other keys were left unchanged.
-##
Cody fixed this for modern systems. There were two invalid operands to binary
expression (char * and void and int and void) to resolve and
@@ -1155,9 +1095,8 @@ invalid operands to binary expressions were resolved with the comma operator.
Cody also added the try.sh script and
try.txt which the script uses.
-##
Cody fixed this so that the coordinates being specified would not crash the
program. This happened because the function that calls atoi(3) took an arg
@@ -1171,17 +1110,15 @@ home with those familiar with vi(m) (it certainly does feel more at home with
him): 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 or killing the program.
-##
As some systems like macOS can be particular about not declaring functions Cody
added to the Makefile some -include options. These appear to not be strictly
necessary but it was done due to other syscalls being a problem not being
declared first.
-##
Cody fixed a segfault that prevented this entry from working in any condition
and he also made it work for clang. He also added checks for NULL FILE *s.
@@ -1255,9 +1192,8 @@ 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.
-##
Cody made it look much more like the original entry even after the fix that
increased the count in characters from 80 to 106, getting it back down to just
@@ -1274,9 +1210,8 @@ the Makefile which now has a -DB=(int)b so that B can
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? :-) )
-##
Cody fixed it so that the messages that show if you won or lost will be seen
after the end of the game. The reason it did not work before is curses was ended
@@ -1288,9 +1223,8 @@ added a newline at the end of the screen to be more user friendly.
remove the maximum number of moves you may make and another to let you configure
the maximum number of moves, even if that is making it harder to win. Naturally
the above fix was applied to these versions too.
-##
Cody fixed a segfault in this program which prevented it from working. The
problem was that the read-only char array char *z[] was being written to. The
@@ -1307,13 +1241,11 @@ ruins the experience. Finally he made it pass
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.
-#
-1992
+
1992
-##
Cody fixed the code so that it will try opening the file the code was compiled
from (__FILE__), not adgrep.c, as the latter does not exist: adgrep is
@@ -1362,9 +1294,8 @@ 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.
-##
Cody fixed this to compile with modern systems. Note that in 1996 a bug fix was
applied to the code, provided as the alt code as that version is not obfuscated.
@@ -1375,9 +1306,8 @@ return void.
Cody also added the try.sh and
try.alt.sh scripts that correspond to the entry and
the alt code.
-##
Cody fixed the Makefile so that the program will actually work with it (or at
least the rule to clobber files and link am to ant). The issue was that the
@@ -1394,9 +1324,8 @@ rule where a line was not ended with a \ but should have been.
necessary to include
time.h so Cody did this as well as this exists in other
systems too.
Cody also added the try.sh script.
-##
Cody added a check for the right number of args, exiting 1 if not enough (2)
used. This was not originally done but at a time it was changed to be considered
@@ -1404,18 +1333,16 @@ 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.
-##
Cody fixed the alt code to compile. The problem was it assumed that
exit(3) returns a value, not void. This was fixed with a ,0.
Cody also added the try.sh and
try.alt.sh scripts that correspond to the entry
and its alt code.
-##
Cody fixed a crash that prevented this entry from working in some cases in some
systems (like macOS) by disabling the optimiser in the Makefile.
@@ -1430,9 +1357,8 @@ MODERNISE IT.
from
stdin after starting the program). Ideally
fgets(3) would be used but this
is a more problematic. See
1992/gson in bugs.html for more
details if you’re interested in trying to understand it (or fix?).
-##
Cody provided the try.sh script.
The original code, imc.orig.c, assumed that exit(3)
@@ -1440,9 +1366,8 @@ 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.
-##
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
@@ -1462,9 +1387,8 @@ caution as it’s quite possible that clang or the ANSI C committee end up furth
changing this.
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.
-##
Yusuke supplied a patch which makes this work with gcc. Due to how it works (see
Judges’ remarks in the index.html file) this will not work with clang.
@@ -1473,14 +1397,12 @@ demonstrate it as using make was problematic.
Cody made it use fgets() instead of gets().
NOTE: this entry cannot work with clang due to different compiler messages (it
will compile fine but it won’t work). See bugs.html for details.
-##
Cody made this more portable by changing the void main() to be int main().
-##
Cody added the original file back as it was deemed that the export restrictions
should no longer be a cause of concern for this entry. Doing this did require a
@@ -1490,9 +1412,8 @@ referenced.
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.
-##
Cody fixed an infinite loop if one were to input numbers < 0 or > 077. The
problem was that it tried to use scanf(3) with the format specifier "%o %o" in a
@@ -1503,9 +1424,8 @@ processed or some error occurs) or a function it called returned non-zero.
new char arrays (always cleared in the beginning of the loop) and then using
strtol(3) with a base of
8 (as it’s octal), checking for
< 0 || > 077 on
both numbers (using
"%o %o" does not solve the problem).
-##
Cody fixed this to work for clang by changing the third and fourth arg of
main() to be char ** insidemain(); clang requires args 2 - 4 to bechar
@@ -1542,40 +1462,34 @@ 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 :-)
-#
-1993
+
1993
-##
Cody added the try.sh script and a data file,
ants.txt, full of ants for the script.
-##
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 alt version which is the recommended one to try
first.
-##
Cody fixed the dgibson.sh script to work
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.
-##
Cody added the try.sh script.
-##
Both Cody and Yusuke fixed this so that it will work with modern systems. Yusuke
provided some fixes of the X code and Cody fixed the C pre-processor directives
@@ -1585,15 +1499,13 @@ 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.
-##
Cody fixed this to work with modern compilers. This involved different header
files for functions.
-##
Cody added an alternate
version which does what the program did
@@ -1602,9 +1514,8 @@ 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).
-##
Cody added check for two args.
Cody also added an alternate version which uses
@@ -1615,9 +1526,8 @@ 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).
-##
Yusuke supplied a patch to get this to work in modern systems. This fix also
applies the compatibility issue of select(2) described in the index.html file.
@@ -1628,14 +1538,12 @@ 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.
-##
Cody made this use fgets(3) not gets(3).
-##
Cody fixed this to work with clang. The problem was that the third arg to main()
was not a char **. InsteadO5()(which wasmain()via-DO5=main`) is now
@@ -1655,13 +1563,11 @@ work).
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.
-#
-1994
+
1994
-##
Cody fixed an infinite loop that could happen when you shoot an arrow
and end up having no arrows, thus making one force quit the game. The problem
@@ -1687,9 +1593,8 @@ 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.
-##
Cody fixed this to check that four args were specified. With the use of the C
pre-processor macro and inclusion of stdlib.h in the Makefile the layout of the
@@ -1707,18 +1612,16 @@ shorter PDF file,
login_sept92-pp28-31.pdf. The full
newsletter was found on the Internet Wayback Machine and the article was
extracted as a PDF in the macOS Preview.app (File -> Print feature).
-##
Cody added the try.sh script.
Cody also added inclusion of unistd.h for getpid(2). While strictly speaking
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).
-##
Cody fixed this so it would compile and work with modern compilers. The problem
was that srand() returns void but it was used in a || expression. Thus the
@@ -1737,9 +1640,8 @@ 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.
-##
Cody added two alt versions, one which uses
fgets() but when fed its own source code cannot
@@ -1757,9 +1659,8 @@ 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.
-##
Cody fixed a bug on systems where EOF != -1. The problem is that getc() and
the related functions do not return -1 on EOF or error but rather EOF.
@@ -1768,14 +1669,12 @@ 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 the bugs.html file.
-##
Cody added the try.sh script.
-##
Cody added the try scripts, four total, colour and black and white
pairs for the original entry and the alt code. These scripts are
@@ -1789,9 +1688,8 @@ to be terminated but it was a pretty straightforward fix. gets() wa
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 alt code was
also changed to use fgets(3).
-##
Cody changed the Makefile to make this program more user friendly and easier to
use with other tools as well by making the program output not a space after each
@@ -1802,9 +1700,8 @@ 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.
-##
Cody converted the spoiler compiler options (provided by the author) to be
compiler commands and added a script try.sh to
@@ -1813,13 +1710,11 @@ 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.
-#
-1995
+
1995
-##
Cody fixed this so that it would work with macOS. Once it could compile it
additionally segfaulted under macOS which he also fixed.
@@ -1833,20 +1728,17 @@ 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.
-##
Cody added the try.sh script that uses the text file he
provided which is input we suggested one try with the entry.
-##
Cody added the try.sh script.
-##
Cody fixed the alt code so that it will compile with modern compilers. The
problem was a missing int for the f variable. He felt it was even more
@@ -1859,39 +1751,33 @@ adding a few enhancements. For the alt version he also added the
alt version is not as important as alt code in other entries. In order to get
the paging to work right for the garry.data file leading blank lines had to be
added.
-##
Cody added the try.sh script.
-##
Cody added the try.sh script.
At our change in how to deal with spoilers, Cody also uudecoded the spoiler provided
by the author, putting it in spoiler1.html.
-##
Cody fixed this so that it will compile with versions of clang that has a defect
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.
-##
Cody added the try.sh script.
-##
Cody added the try.sh script.
-##
Cody added the authors’ spoiler as a C
file as in 2023 we have decided that in most
@@ -1899,13 +1785,11 @@ 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.
Cody also added the try.sh script.
-#
-1996
+
1996
-##
Cody fixed a segfault in this program that prevented it from working right and
also fixed an infinite loop in the try commands.
@@ -1917,9 +1801,8 @@ 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.
-##
Cody proposed a fix for this to compile with clang and Landon implemented it
after some discussion (though Cody changed the function name). The reason Cody
@@ -1934,9 +1817,8 @@ number is printed on a line by itself rather than having a long string of
numbers on the same line. This was not put in an alternate version but perhaps
it should be.
Cody also added the try.sh script.
-##
Cody provided an alternate version which uses
usleep() in between writing the output to make it easier to see what is going
@@ -1944,9 +1826,8 @@ on with faster systems and importantly also for those who are sensitive to text
flashing by rapidly (it affects him too but he also thinks it moves too fast
nowadays anyway). We recommend that you try the alternate version first due to
these reasons.
-##
Cody fixed this to compile and work with modern systems. As he loved the
references in the code that could not compile he just commented out as little as
@@ -1956,27 +1837,23 @@ 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! :-)
-##
Cody added the try.sh script.
-##
Cody fixed this to not segfault under macOS. The problem was that the function
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.
-##
Cody added the try.sh script.
-##
Cody added the try.sh script.
The author stated that -I/usr/include is needed by gcc in Solaris because
@@ -1986,24 +1863,21 @@ 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 despite the fact that very few probably use Solaris nowadays.
-##
Cody added the try.sh script with a few commands to try
along with a shorter version of something the author suggested one try (it is
suggested that one try the longer version too but it will run in an infinite
loop so having it in a script is less desired).
-##
Cody updated the Makefile so that if it fails to compile it will try he
method suggested for SunOS rather than having to update the Makefile manually or
running a more complicated command: now one can just run make.
-##
Cody fixed a segfault in this entry as well as it displaying environmental
variables. Although the scripts showed correct output, it somewhat lessened the
@@ -2020,13 +1894,11 @@ index.html file.
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.
-#
-1998
+
1998
-##
Cody improved the Makefile to allow for easier redefining the control
keys and time step that the author set up.
@@ -2038,9 +1910,8 @@ 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.
-##
Cody, out of an abundance of caution, added a second arg to main() as some
versions of clang whine about the number of args on top of what type they are
@@ -2050,24 +1921,21 @@ quite possible they will ‘fix’ this defect it would be better to have this n
be a problem at such a time.
Cody also added the bas1.sh script to simplify running the
program.
-##
Cody added the try.sh script which runs some default actions
as well as allowing one to pass in different file names or strings.
-##
Cody added a call to endwin() to restore terminal sanity (echo etc.) when
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.
-##
Cody changed a int * used for fopen(3) to be a FILE * to be more correct
and prevent any possible problems in some systems (which has happened).
@@ -2078,9 +1946,8 @@ 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?
-##
Cody made the program more portable by changing the void return type of main()
to be int (in both versions).
@@ -2090,21 +1957,18 @@ 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.
-##
Cody added alt 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.
-##
Cody added the try.sh script.
-##
Cody fixed this to compile. The problem was the intermediate steps to get to the
final code that is compiled. The code is now what it essentially becomes when
@@ -2120,9 +1984,8 @@ code look like the original with just an extra arg.
CSILENCE variable of the Makefile.
Cody also added the try.sh script to show the output of some
of the expressions that we selected.
-##
Cody fixed invalid data types which prevented this entry from working, causing a
segfault. This showed itself in two parts which required two fixes, one for
@@ -2139,9 +2002,8 @@ 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.
-##
Cody fixed this for modern systems (it did not work at all) and added an
alternate version that works with macOS. Cody also made it ever so slightly more
@@ -2184,9 +2046,8 @@ 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.
-##
Cody fixed the code to not trigger an internal compiler error in gcc:
:10:16: warning: type defaults to 'int' in declaration of 'zero' [-Wimplicit-int]
@@ -2201,9 +2062,8 @@ 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.
-##
Cody added the alternate code which allows one
to reconfigure the size constant in the rare case that the author wrote about
@@ -2227,9 +2087,8 @@ 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.
-##
Cody fixed the assumption that EOF is -1 (the author noted that it assumes
it is -1 and it’s indeed a valid concern as the standard only guarantees that
@@ -2240,55 +2099,47 @@ 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.
-#
-2000
+
2000
-##
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.
-##
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.
-##
Cody fixed this to compile in systems that require one to explicitly link in
libm.
Cody also added the try.sh script for those who are
feeling a bit too confident, cocky or even happy :-)
-##
Cody made this more portable by changing the void main to int main.
He also added the try.sh script.
-##
Cody fixed this to compile with more recent perl versions; the symbol that’s now
PL_na was once na. He notes that this entry crashes under macOS but it works
under Linux after this change.
Cody also added the try.sh script.
-##
Cody made it easier to compile this in some cases by adding X11/ to the
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).
@@ -2307,20 +2158,17 @@ 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 (even if not confusing).
-##
Cody made this more portable by changing the void main to int main.
Cody also added the try.sh script.
-##
Cody added the try.sh script.
-##
Cody fixed an infinite loop that occurred if invalid input was entered, flooding
the screen with:
@@ -2328,14 +2176,12 @@ the screen with:
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.
-##
Cody added the try.sh script.
-##
Cody fixed the code and added an appropriate make rule so that the
SDL version works independent from the curses version
@@ -2370,9 +2216,8 @@ systems and in case you’re sensitive to rapidly moving swirling. See the
index.html for details on that. Note that this alternate version only will impact
the curses and the SDL versions as Cody does not have a DOS system to test the
other version in.
-##
Cody added the alt code based on the
author’s remarks with a fix for modern systems and he also added the two
@@ -2380,13 +2225,11 @@ scripts, try.sh and
-2001
+2001
-##
Cody fixed both the supplementary program and the program itself (both of which
segfaulted and once that was fixed only the binary was modified; it was not run
@@ -2443,9 +2286,8 @@ sings Ten in the Bed
As well he added the try.sh 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.
-##
Cody fixed this to compile with clang but according to the author this will not
work without i386 Linux. It generates i386 32-bit code (not bytecode) but
@@ -2480,9 +2322,8 @@ we don’t 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.
-##
Cody fixed this to work with clang by adding another function that is allowed to
have a third arg as an int, not a char **. He chosepain()` because it’s a four
@@ -2491,9 +2332,8 @@ this. :-) This fix makes a point of the author’s notes on portability no longe
valid, BTW.
Cody also added the try.sh script.
He also fixed it to check the number of args.
-##
Cody added a value to return in main() to make it more portable.
Cody fixed this to compile with clang in Linux. The problem was C99 does not
@@ -2514,9 +2354,8 @@ those with macOS) (to do with sound; see his
/2013/endoh3/index.html entry where he also refers to
sound devices in macOS).
Cody added the try.sh.
-##
The ANSI escape codes were no longer valid but Yusuke provided a patch to fix
the ANSI escape codes. This works with both Linux and macOS.
@@ -2526,9 +2365,8 @@ program prematurely. This was done by adding an explicit call to
e()main().
Cody also added the alt code that adds
vi(m) movement keys.
-##
The author provided two changes: one to speed it up and one to make it not crash
on losing. Cody provided an alternate version which does the former but he felt
@@ -2536,9 +2374,8 @@ that the idea of crashing on losing (see the index.html for details on why that
might be) too good to get rid of so he kept that in.
He also points out that there is a way to get the computer to automatically lose
very quickly. Do you know what it is?
-##
Cody fixed this so that the when compiling the code the program is not executed
itself by itself which just showed the usage string and exited. The script
@@ -2552,9 +2389,8 @@ shellcheck. In particular there were quite a few:
SC2248 (style): Prefer double quoting even when variables don't contain special characters.
errors/warnings.
Cody also added the try.sh script.
-##
Cody fixed this to work with both 64-bit and 32-bit compilers by changing most
of the ints (all but that in main(int ...)) to longs. He also fixed it to
@@ -2563,9 +2399,8 @@ compile with clang by changing the args of main to be int and
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.
-##
Cody improved the Makefile to allow one to more easily set up the port,
speed and socket(2) call that the author had set up.
@@ -2580,42 +2415,36 @@ 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.
-##
Cody added the try.sh script.
Cody also fixed it to not crash if not enough args, exiting 1 instead. This was
done at a time where it was said to be a bug that should be fixed, for better or
worse.
-##
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
index.html for details.
Cody also added the try.sh script.
-##
Cody added the script try.sh to 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.
-#
-2004
+
2004
-##
Cody added the try.sh script.
-##
Cody added an alternate version which
allows those like himself used to h, j, k and l movement keys to not get
@@ -2625,9 +2454,8 @@ use the original version)! :-)
arachnid.txt as it’s not really an informative
file but a maze file. The extension
.maz was not chosen to help with (some?)
browsers knowing what to do with it.
-##
Cody fixed this to compile with clang and to work with both gcc and
clang (even after fixing it to compile with clang it did not work properly).
@@ -2654,9 +2482,8 @@ nowadays and other entries had to have this same kind of change,
2001/anonymous being a good example).
Finally the optimiser cannot be enabled so the compiler flags were changed for
this, forcing -O0.
-##
Cody added three different alternate
versions:
@@ -2670,9 +2497,8 @@ and anti-alias setting at compile time.
that was used during development, found on their
website about the
entry.
-##
Cody provided the alt code for
those who want to use QEMU. The most important part of this is the macro K has
@@ -2683,23 +2509,20 @@ files provided, found under the img/ directory. No
the img/fs.tar extracts into fs/ so you will have to fix the tarball; this
is done this way to prevent extraction from the entry directory overwriting the
files and causing make clobber to wipe some of them out.
-##
Cody fixed a bunch of links in the index.html provided with the entry
(web server) that no longer exist or have changed in some other way (https
instead of http for instance). In most cases a new link or change to https was
all that was necessary but at least one or two URLs required the Internet
Wayback Machine.
-##
Cody added the try.sh script.
-##
Cody fixed this to compile with gcc (it worked with clang). The problem was the
cpp being unable to parse the generated code (see the index.html for details) and
@@ -2725,9 +2548,8 @@ 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).
Finally Cody added try.sh and
try.alt.sh to demonstrate both versions.
-##
Cody reported that this entry cannot be optimised by the compiler as otherwise
it will not work.
@@ -2739,39 +2561,34 @@ files:
kopczynski-a to demonstrate what happens when
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.
-##
Cody and Landon individually fixed this to work with clang.
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).
-##
Cody added the try.sh script.
-##
Cody made this use fgets(3).
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.
-##
Cody added the try.sh script.
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.
-##
Cody fixed this to compile in Linux. Although it compiled cleanly in macOS (and
BSD?) the code failed to compile at all in Linux due to:
@@ -2823,13 +2640,11 @@ which used to be generated by the Makefile via
cc -E.
vik2_1.c: it shouldn’t be done for
vik2.possible.cat.death.c!)
__FILE__
just to make it a bit easier to compile.
-#
-2005
+
2005
-##
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
@@ -2843,9 +2658,8 @@ scenarios), inelegant, and not a good starting place for sudoku generation.’
alt code respectively.
Cody added the make test and make test-n0 rules for easier use of the test
suite.
-##
Cody fixed a problem where in some systems (like macOS) the stty sane would
not work and end up causing a bus error. Instead of stty sane it uses stty echo which is what it was trying to accomplish.
@@ -2854,16 +2668,14 @@ not work and end up causing a bus error. Instead of
stty sane it us
explained in the index.html.
Cody added the alt code with vi(m) like
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.
-##
After Landon fixed the entry to compile with clang Cody noticed this
does not work at all in modern systems (see below). He fixed this to work and
@@ -2908,20 +2720,17 @@ 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. It uses test.sh.
-##
Cody added explicit linking of libm (-lm) for systems like Linux that seem to
not do it implicitly (like macOS does).
-##
Cody added the try.sh script.
-##
Cody fixed this to work in Linux. The problem was an unknown escape sequence,
\N, which caused a funny compiler error:
@@ -2944,9 +2753,8 @@ 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.
-##
Cody fixed this so that the configure script (which is not
needed but part of the entry) would work with compilers that have by default
@@ -2955,18 +2763,16 @@ needed but part of the entry) would work with compilers that have by default
how https is set up, in which case just enjoy it for what it was. But there
might be some command line that will let it work that way or perhaps someone
wants to add the necessary code.
-##
Cody added the (untested) alternate
code which should work for Windows as it
sets binary mode on stdout. It is untested as Cody has no Windows system to
test it on.
Cody also added the try.sh script.
-##
Cody added the saved (with the SAVE command) BASIC program PET which was:
10 PRINT "2005'S IOCCC BEST EMULATOR"
@@ -2992,24 +2798,21 @@ 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.
-##
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. :-)
-##
Cody fixed this to compile with some versions of clang which have an additional
defect where main() can only have 0, 2 or 3 args (it was 4). It now calls
another function that takes 4 args and which is what used to be main().
The alternate versions were also fixed.
-##
Cody fixed this in the case that the program is compiled or linked/copies to
another file name: the code constructed the source code file name in a clever
@@ -3020,39 +2823,33 @@ 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.
-#
-2006
+
2006
-##
Cody fixed a segfault in macOS with this entry. The problem was a missing +1
for strlen() with malloc(). This prevented it from working.
Cody also added the try.sh script.
-##
Cody fixed the Makefile to work in systems where the lpthread is not
implicitly linked in.
Cody also added the try.sh script.
-##
Cody added the try.sh script.
-##
Cody fixed this so that it will not crash without an arg after it was suggested
this should be fixed.
Cody also added the try.sh script.
-##
Cody added the alternate code that lets
one resize the image and redefine the number of iterations.
@@ -3067,15 +2864,13 @@ 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.
-##
As Cody is a lost :-) vim user he took the author’s remarks to add support
back for arrow keys in the alternate version.
-##
Cody fixed this entry to work with clang which has a defect with the args to
main(): it requires specific types: int and `char ** for the first and
@@ -3097,17 +2892,15 @@ and also it is kind of like a backwards Z. That way Z
by default.
Since the author suggested that the lack of certain #includes might break the
program in some systems he also added -include ... to the Makefile as well.
-##
Cody added the try.sh script.
Cody also fixed it so that if the file cannot be opened it exits rather than trying
to read from the file. This was done at a time when it was considered to be a
bug to fix.
-##
Cody provided the alt code based on the
author’s remarks.
@@ -3116,23 +2909,20 @@ author’s remarks.
obtained from the Internet Wayback Machine, as the file was no longer available.
The video was also no longer available but Cody found an alternative and added
it to the repo as well.
-##
Cody, out of an abundance of caution for clang’s defects, made main() have
to 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.
Cody also added the try.sh script for easier use of the
entry to show the clock update in real time.
-##
Cody added the try.sh script.
-##
Cody fixed a segfault in this program which was making it fail to work under
macOS - it did not seem to be a problem under Linux, at least not fedora. The
@@ -3146,9 +2936,8 @@ 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.
-##
Cody fixed a crash and a display problem in this entry so that it now works in
modern (64-bit) systems. The crash appears to only occur in macOS but the fix
@@ -3158,47 +2947,39 @@ have been a problem in Linux with the old ints but this is no longe
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.
-#
-2011
+
2011
-##
Cody added the try.sh script.
-##
Cody added the try.sh script.
-##
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.
Cody also added the try.sh script.
-##
Cody added the try.sh script.
-##
Cody added the video file boing-ball.mp4 which is the demo the
author referred to.
-##
Cody added the try.sh script.
-##
Cody fixed this for macOS. Before the fix it segfaulted. It worked fine under
Linux. After fixing it it was noticed that the author stated it does not work
@@ -3207,9 +2988,8 @@ for 64-bit so it was then tested as a 32-bit binary (Linux) and 64-bit binary
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 try.sh script and the .nono files
conway-game-of-life.nono,
@@ -3219,21 +2999,18 @@ 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.
-##
Cody added the try.sh script.
-##
Cody fixed the program to not crash if no arg was specified as this was not a
documented feature.
Cody also added the try.sh script.
-##
Cody fixed a minor problem that showed up in both Linux and macOS. He notes
however that as of this time this entry does not work properly with macOS at
@@ -3249,9 +3026,8 @@ 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).
-##
Cody added two alternate versions: one that
lets one reconfigure the controls and also the size of the game and another
@@ -3259,17 +3035,15 @@ 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.
-##
Cody added the try.sh script.
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.
-##
Cody added the try.sh script.
Cody also added alt code that should work on
@@ -3278,25 +3052,21 @@ 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.
-#
-2012
+
2012
-##
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.
-##
Cody added the try.sh script.
-##
Cody added explicit linking of libm (-lm) as not all systems do this
implicitly (Linux doesn’t seem to but macOS does).
@@ -3322,17 +3092,15 @@ 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.
-##
Cody added the try.sh script that runs
everything, filtered through less.
Cody also fixed a typo in the ruby script
find-font-table.rb.
-##
Cody added the try.sh script.
Cody also changed argv to be not const char ** butchar , mostly out of an
@@ -3346,25 +3114,22 @@ 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.
-##
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.
-##
Cody added the try.sh script and restored the original hint
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.
-##
Cody added alt code that fixes a problem where in German ‘v’ sounds like ‘f’
which the program has as ‘f’: with the original version it would translate
@@ -3388,14 +3153,12 @@ the other defaults to the submitted entry. See the index.html for details.
try.alt.sh, run a sequence of commands to
show different languages and numbers with the submitted and alternate version
respectively. Notice how a single letter changes so much!
-##
Cody added the try.sh script.
-##
Cody added the alternate versions
which will, if no arg is specified, read in the program itself, rather than
@@ -3405,22 +3168,19 @@ except that it also sets binary mode on stdin and stdout
Cody also added the try.sh and
try.alt.sh scripts.
-##
Cody added the try.sh script.
-##
Cody added the try.sh script.
Based on the author’s description it should be able to get this entry to work
for Windows. With his instructions Cody also added the alternate version that
does this for the few who might use Windows.
-##
Cody test.sh script and the make test rule
that uses the script along with a number of files that will correctly be flagged
@@ -3433,13 +3193,11 @@ it) and a java file as well with another joke.
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.
-#
-2013
+
2013
-##
Cody changed the return 0; at the end of the program to be return system("reset"); (via redefining exit(3) so that the column ending would be
the same) so that as long as it runs to completion the terminal will be sane and
@@ -3452,20 +3210,17 @@ configurable at compile time. The Makefile was modified in such a way as to make
it very easy to redefine it at compile time.
Cody also added the try.sh script for the entry and the
try.alt.sh script for the alt code.
-##
Cody added the try.sh script which also has an
joke Easter egg in it based on the judges’ remarks.
-##
Cody added the try.sh script.
-##
Cody fixed this to compile with modern systems. The problems were that
localtime() is used differently and time.h being included (with
@@ -3495,9 +3250,8 @@ referred to, found at the
-2013/dlowe (index.html)
+
Cody added the source code that we suggested one should compile and run with
different compilers as fun.c. He modified the Makefile so
@@ -3515,14 +3269,12 @@ 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.
-##
Cody added the try.sh script.
-##
Cody fixed the Makefile check rule so that it checks :-) that both
Ruby and ImageMagick are
@@ -3539,16 +3291,14 @@ Pro even though in the past it had been and is indeed now).
not installed, and after checking these requirements it will exit if either is
not found.
The entry can still be enjoyed if you do not have these tools, however.
-##
Cody added the try.sh script.
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().
-##
Cody added the endoh4.sh script which temporarily
turns off the cursor as suggested by the author, with the addition that if no
@@ -3559,9 +3309,8 @@ 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.
-##
Cody fixed the Makefile so that this would work properly. Before this
the use of the program just did what the judges’ remarks said as far as how it
@@ -3582,9 +3331,8 @@ does not).
2013/hou/doc/example.html to match the rest of the repo
this broke make which Cody also fixed.
Cody also added the try.sh script.
-##
Cody fixed this so that the server would not refuse the connection
after the first call to close(2). The problem was that because the backlog to
@@ -3592,30 +3340,25 @@ 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.
-##
Cody added the try.sh script.
-##
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.
-##
Cody added the try.sh script.
-#
-2014
+
2014
-##
Cody provided the alternate
code that lets one redefine the port to
@@ -3624,9 +3367,8 @@ have the default port. Remember that ports < 1024 are privileged. It also let
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.
-##
Cody added alt code that lets
one (via the Makefile) reconfigure the coordinates but instead of being a
@@ -3642,9 +3384,8 @@ application source code is intentionally kept to a bare minimum.
that was fixed and it also has #include <stdio.h> for putchar(3). The
#ifndef..#define..#endif was not part of the original alt code, of course.
Cody also added the try.alt.sh script.
-##
Cody added the rake.sh script and make rake
rule that runs the script. This script will check that rake is installed and
@@ -3659,14 +3400,12 @@ run it.
Barely worth noting but done nonetheless, Cody renamed the read_me.html
file to spoilers.html to be clearer in its purpose as
it is a file with spoilers (and too close to index.html?).
-##
Cody added the try.sh script.
-##
Cody fixed the build for this entry: it does not require
SDL2 but SDL1 so there were linking errors.
@@ -3675,21 +3414,18 @@ it is a file with spoilers (and too close to index.html?).
Mario Bros and one of The
Great Giana Sisters, but
which let one configure the width and height of the game.
-##
Cody added the try.sh script.
He also added the alternate code
provided by the author.
-##
Cody added the try.sh script.
-##
Cody fixed the code so that the game can play automatically like it
once did. The problem is that it expects a certain file name which was
@@ -3702,9 +3438,8 @@ 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).
-##
Cody fixed the Makefile to compile this entry in modern systems. The problem was
that the CDEFINE variable in the Makefile was missing 's: the #define CC
@@ -3717,9 +3452,8 @@ 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.
-##
Cody added the try.sh script. Cody notes that there
is a bug that will show itself as one of the features does not work right. The
@@ -3728,9 +3462,8 @@ 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.
-##
Cody added the try.sh script which is based on
the command to try in the ‘try’ section but improved so one can more easily
@@ -3738,13 +3471,11 @@ specify what ident tool they want to use and also change which sed to use,
should they want to. It also checks that both of these two tools exist and are
executable and it pipes it through less as it’s longer than a page worth of
output.
-#
-2015
+
2015
-##
Cody fixed the code so one can make use of the echo feature, where the
first character of the filename starts with e. The only way it would work
@@ -3771,28 +3502,24 @@ 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.
-##
Cody improved the Makefile so that one can easily change the dimensions
at compilation time via make(1).
Cody also added alt 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.
-##
Cody added the try.sh script.
-##
Cody added the try.sh script.
-##
Cody fixed this to compile with Linux which was having a problem with duplicate
symbols of main(). The fix is through the compiler option -fcommon which
@@ -3802,14 +3529,12 @@ make rule he added (to enjoy the theme of the entry, 1984/mullender.c.
-##
Cody added the try.sh script.
-##
Cody added explicit linking of libm (-lm) for systems that do not do this
(Linux doesn’t seem to but macOS does).
@@ -3818,18 +3543,16 @@ 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.
-##
Cody added the try.sh script, downloaded the War
and Peace text file, fixed the avgtime.sh script (it
resulted in standard input errors in piping to bc(1)) and added the
cc.1 man page as not all systems have it (in fact it’s
gcc(1) from Rocky Linux).
-##
Cody added the try.sh script which changes the
parameters to what we had in the judges’ remarks to make it easier (he only died
@@ -3837,52 +3560,44 @@ when he tried to mark a reminder complete on the other side of the screen at the
same time and he almost survived that, scoring at that point over 90 - but this
also involves good eye-hand coordination and playing games like this in the
past).
-##
Cody added the try.sh script.
-##
Cody added the try.sh script.
-##
Cody fixed the build so that EOF will be -1 as the program assumes
this. It was decided by Cody to do -UEOF -DEOF=-1 so as to not have to modify
the code any with C preprocessor directives (the preferred way) or changing
EOF to -1.
Cody also added the try.sh script.
-##
Cody fixed an unfortunate typo in the Makefile that was preventing some of the
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.
-#
-2018
+
2018
-##
Cody added the try.sh and
try.alt.sh scripts.
-##
Cody added the try.sh script.
-##
Cody added the try.sh script.
Cody also, out of abundance of caution, added a second arg to main() because
@@ -3896,18 +3611,16 @@ object to 1 arg but it is entirely possible that this changes so a second arg
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.
-##
Cody fixed the scripthd script (referred to prog not ./prog) and
renamed it to scripthd.sh to help browsers and
GitHub as far as downloading/displaying goes.
Cody also added the try.sh script which also uses
scripthd.sh to show how it differs from prog itself.
-##
Cody fixed the make test rule: it tried to run tac(1) (in systems
that have that command) rather than the entry itself which is called tac and
@@ -3924,17 +3637,15 @@ format.
Cody 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.
-##
Cody added the try.sh and
try.alt.sh scripts and the PDF file,
lexicon.pdf, that was a dead link, restored from the
Internet Wayback Machine.
-##
Cody added the try.sh script which shows the
input files one at a time and after each one is shown, it feeds it to the
@@ -3943,9 +3654,8 @@ 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.
-##
Cody fixed the run.sh script (had commands that didn’t
exist and also didn’t work even after that was addressed) and added the
@@ -3955,9 +3665,8 @@ 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.
-##
Cody, with irony well intended :-), fixed the test.sh
script for portability, shellcheck, making it executable
@@ -3967,16 +3676,14 @@ and try.alt.sh scripts).
Landon notes that Cody will probably never finish changes in his entries and
that’s probably true: let’s just say that for the IOCCC I’m (Cody) a weasel! :-)
(but isn’t that kind of the point ? :-) )
-##
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.
-##
Cody, based on the author’s remarks, made it possible to save state
between runs of the program so that one can resume where they left off. It
@@ -3986,9 +3693,8 @@ 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.
-##
Cody added the missing docs rule to the Makefile that forms a PDF
file. The rule requires the tool pdflatex.
@@ -3997,32 +3703,27 @@ 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).
-##
Cody added the try.sh script.
-##
Cody added the try.sh script. This script will ask
if the user wants to see some of the spoilers and only show them if they type
y or Y.
-#
-2019
+
2019
-##
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.
-##
Cody fixed the Makefile which had a bad character, a ‘%’ instead of a ‘$’ which
caused a rule to fail.
@@ -4038,9 +3739,8 @@ wrong about) in cow.sh (which was renamed from
Cody also renamed the file on.one.liners to
on.one.liners.txt to help with
browsers/GitHub.
-##
Cody fixed an invalid bytes error in tr in the scripts. This does not
mean that they will produce any output, though, as they provide expect all
@@ -4056,9 +3756,8 @@ website.
Finally he added the scripts for the different languages that use the alt
version but with the caveat that only English appears to work. See the entry in
bugs.html for more details.
-##
Cody added the try.sh script.
Cody also added the file Shakespeare.txt
@@ -4066,18 +3765,16 @@ from 2019/mills (after running make
-##
Cody added the try.sh 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 either of those
tools can be found but otherwise it’ll just run the program itself, showing its
own sha512sum value.
-##
Cody added explicit linking of libm (-lm) for systems that do not do this
(Linux does not seem to but macOS does).
@@ -4089,9 +3786,8 @@ time by modifying 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).
-##
Cody made the make fullscreen more portable by not relying on
stty(1) and sed(1) but rather it just uses tput(1). He also made it so
@@ -4102,9 +3798,8 @@ 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.
-##
As this is a backtrace quine having the optimiser enabled is not a good idea so
Cody disabled it. For this same reason he also added the -g flag to the
@@ -4115,14 +3810,12 @@ 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.
-##
Cody added the try.sh script.
-##
Cody reported that with -O level > 0 this program segfaults (sometimes?). He’s
not sure why as it worked fine before on the same systems tested but -O0
@@ -4131,23 +3824,20 @@ 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.
-##
Cody added the try.sh script.
Cody also added the example-1.txt and
example-2.txt text files from
2018/vokes so that the entry does not rely on any other
entry existing.
-##
Cody added the try.sh script.
-##
Cody added the missing docs rule to the Makefile that forms a PDF
file. The rule requires the tool
@@ -4161,21 +3851,18 @@ suggesting that with some versions of GCC it might not be correct with levels !=
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.
-##
Cody added the try.sh script which also involved
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.
-#
-2020
+
2020
-##
Cody fixed the script check_be.sh: it
assumed that prog_be was in PATH which is unlikely so it was changed to
@@ -4184,25 +3871,22 @@ 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.
-##
Cody added the try.sh script which although at
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.
-##
Cody copied the files from the spoiler.zip file (from his copy during
the preview period) that was password protected with a password that was no
longer known.
He also added the try.sh script.
-##
Cody fixed the script run_clock.sh which gave a
funny error when running it:
@@ -4230,9 +3914,8 @@ knows it so he might be called unusual (and he argues, with pride, eccentric :-)
Cody also added the run_clock.alt.sh script
which is analogous to the run_clock.sh but for the
alt code provided by the author, Yusuke.
-##
Cody, with intentional irony here :-), fixed formatting, links and typos in
various files.
@@ -4247,9 +3930,8 @@ layered chocolate fudge cake recipe :-)
how rich it is? If not and you like chocolate I (that is Cody :-) ) highly
recommend you give it a go! :-) You’re welcome to ask me questions if you wish
and I encourage you to do so as the cake is quite picky!
-##
Cody, with intentional irony here :-), fixed formatting, links and typos in
various files.
@@ -4269,9 +3951,8 @@ enciphered though it is :-)
how rich it is? If not and you like chocolate I (that is Cody :-) ) highly
recommend you give it a go! :-) You’re welcome to ask me questions if you wish
and I encourage you to do so as the cake is quite picky!
-##
Cody added the try.sh script. This script does
the conversion of pi.wav (showing the digits) and also converts the number for
@@ -4282,14 +3963,12 @@ 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).
-##
Cody added the try.sh script.
-##
Cody added the try.sh script.
Cody also added -L/-I paths to the Makefile to let this compile more easily if
@@ -4301,17 +3980,15 @@ of ways: shellcheck(1), make sure the program is compiled first (allowing one to
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).
-##
Cody added the try.sh script.
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.
-##
Cody added the try.sh script.
Cody also added from 2019/mills the text file
@@ -4322,37 +3999,32 @@ translation of lámatyávë, which comes from History of Middle-ear
volume X, Morgoth’s Ring, which he also has (and which is part of the 12 volume
set by the late Christopher Tolkien, son and literary executor and heir to
J.R.R. Tolkien).
-##
Cody added the MIDI files cvikl.mid and
entertainer.mid from the URLs we suggested so
that one need not download them and to make sure they can always be obtained
even if the domain or link goes dead.
Cody also added the try.sh script.
-##
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 :-)
-##
Cody added the try.sh script.
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
compilers. See the index.html for more details.
-#
-General thanks
+
General thanks
-##
-Makefiles fixes and improvements
+
Makefiles fixes and improvements
Cody fixed the top level Makefile all rule which had a stray fi;
without an if so the rule failed entirely.
@@ -4398,9 +4070,8 @@ 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.
-##
-Consistency improvements
+
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
@@ -4415,9 +4086,8 @@ 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.
-##
-Thank you honor roll
+
Thank you honor roll
There are a number of people who have contributed to several thousand changes,
fixes and important improvements and one who has literally (or numerically :-) )
@@ -4429,9 +4099,8 @@ 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.
-###
-Cody Boone Ferguson
+
Cody Boone Ferguson
We call out the extensive contributions of Cody Boone
Ferguson who is
@@ -4468,9 +4137,8 @@ from the SQL file).
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!
-###
-Yusuke Endoh
+
Yusuke Endoh
Yusuke Endoh supplied a
number of important bug fixes to a number of past IOCCC entries. Some of those
@@ -4480,9 +4148,8 @@ fixes were EXTREMELY TECHNICALLY CHALLENGING such as
1992/lush and
2001/ctk. THANK YOU VERY MUCH for
your help!
-##
-Did we neglect to credit you?
+
Did we neglect to credit you?
If you submitted a fix to an entry for which you are not the author,
and your fix is accepted (in part or as a whole), we would be happy
diff --git a/thanks-for-help.md b/thanks-for-help.md
index 689fa8117..a612426fb 100644
--- a/thanks-for-help.md
+++ b/thanks-for-help.md
@@ -28,10 +28,14 @@ on a IOCCC entry by entry basis.
- [Did we neglect to credit you?](#neglect)
-#
1984
+
+# 1984
+
-## [1984/anonymous](1984/anonymous/anonymous.c) ([index.html](1984/anonymous/index.html))
+
+## [1984/anonymous](1984/anonymous/anonymous.c) ([index.html](1984/anonymous/index.html))
+
[Cody](#cody) fixed this to work for macOS.
@@ -54,7 +58,9 @@ the famous tattoo which we also include here:
Scovell](https://web.archive.org/web/20070120220721/https://thomasscovell.com/tattoo.php).
-## [1984/decot](1984/decot/decot.c) ([index.html](1984/decot/index.html]))
+
+## [1984/decot](1984/decot/decot.c) ([index.html](1984/decot/index.html]))
+
[Cody](#cody) fixed this to not require `-traditional-cpp` which some compilers like
clang do not support. Fixing `-traditional-cpp` is, as noted later on, very
@@ -119,7 +125,9 @@ To see the difference from start to fixed:
```
-## [1984/laman](1984/laman/laman.c) ([index.html](1984/laman/index.html]))
+
+## [1984/laman](1984/laman/laman.c) ([index.html](1984/laman/index.html]))
+
[Cody](#cody) added the [try.sh](1984/laman/try.sh) script.
@@ -129,7 +137,9 @@ This was fixed on 30 October 2023 after the bug status was changed from INABIAF
(it's not a bug it's a feature) to bug.
-## [1984/mullender](1984/mullender/mullender.c) ([index.html](1984/mullender/index.html]))
+
+## [1984/mullender](1984/mullender/mullender.c) ([index.html](1984/mullender/index.html]))
+
[Cody](#cody) provided an [alternate version](1984/mullender/mullender.alt.c),
an improved version of the judges, so that everyone can enjoy it with systems
@@ -151,10 +161,14 @@ History
Repo](https://github.com/dspinellis/unix-history-repo/tree/Research-Release).
-# 1985
+
+# 1985
+
-## [1985/applin](1985/applin/applin.c) ([index.html](1985/applin/index.html]))
+
+## [1985/applin](1985/applin/applin.c) ([index.html](1985/applin/index.html]))
+
Both [Cody](#cody) and [Yusuke](#yusuke) fixed this; Yusuke got this to not crash and Cody fixed it
to work with macOS.
@@ -178,7 +192,9 @@ 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.
-## [1985/august](1985/august/august.c) ([index.html](1985/august/index.html))
+
+## [1985/august](1985/august/august.c) ([index.html](1985/august/index.html))
+
[Cody](#cody), out of abundance of caution, added a second arg to `main()` because some
versions of clang object to the number of args of `main()`, saying that it must
@@ -197,7 +213,9 @@ whether `primes(6)` is installed or not, but it only does it once with the
default value).
-## [1985/lycklama](1985/lycklama/lycklama.c) ([index.html](1985/lycklama/index.html]))
+
+## [1985/lycklama](1985/lycklama/lycklama.c) ([index.html](1985/lycklama/index.html]))
+
[Cody](#cody) fixed this to compile with modern compilers. In the past one could get away
with defining some macro to `#define` and then use `#foo` to have the same
@@ -210,7 +228,9 @@ that Cody added. See the index.html for details.
Cody also provided the [try.alt.sh](1985/lycklama/try.alt.sh) script.
-## [1985/shapiro](1985/shapiro/shapiro.c) ([index.html](1985/shapiro/index.html]))
+
+## [1985/shapiro](1985/shapiro/shapiro.c) ([index.html](1985/shapiro/index.html]))
+
[Cody](#cody) added the alt code which allows one to resize the maze and he also added
the [try.alt.sh](1985/shapiro/try.alt.sh) script that randomly selects sizes
@@ -220,7 +240,9 @@ enter a number, in an infinite loop, exiting if any non-digits are in input
the default).
-## [1985/sicherman](1985/sicherman/sicherman.c) ([index.html](1985/sicherman/index.html]))
+
+## [1985/sicherman](1985/sicherman/sicherman.c) ([index.html](1985/sicherman/index.html]))
+
[Cody](#cody) fixed this _very twisted entry_ to not require `-traditional-cpp`. Fixing
`-traditional-cpp` is, as noted later on, very complicated, but Cody would like
@@ -337,21 +359,29 @@ Cody also added the [try.sh](1985/sicherman/try.sh) and
[try.alt.sh](1985/sicherman/try.alt.sh) scripts.
-# 1986
+
+# 1986
+
-## [1986/applin](1986/applin/applin.c) ([index.html](1986/applin/index.html]))
+
+## [1986/applin](1986/applin/applin.c) ([index.html](1986/applin/index.html]))
+
[Cody](#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`.
-## [1986/bright](1986/bright/bright.c) ([index.html](1986/bright/index.html]))
+
+## [1986/bright](1986/bright/bright.c) ([index.html](1986/bright/index.html]))
+
[Cody](#cody) added the [try.sh](1986/bright/try.sh) script.
-## [1986/hague](1986/hague/hague.c) ([index.html](1986/hague/index.html]))
+
+## [1986/hague](1986/hague/hague.c) ([index.html](1986/hague/index.html]))
+
[Cody](#cody) made this use `fgets()`.
@@ -359,7 +389,9 @@ Cody also added the [try.sh](1986/hague/try.sh) script which also feeds to the
program the added `input.txt` file.
-## [1986/holloway](1986/holloway/holloway.c) ([index.html](1986/holloway/index.html]))
+
+## [1986/holloway](1986/holloway/holloway.c) ([index.html](1986/holloway/index.html]))
+
[Cody](#cody) fixed this to compile and work with clang (it already worked with gcc).
The problem was that clang is more strict about the type of second arg to
@@ -369,7 +401,9 @@ and then using `t` instead of `s` it compiles and runs successfully under clang
and gcc.
-## [1986/marshall](1986/marshall/marshall.c) ([index.html](1986/marshall/index.html]))
+
+## [1986/marshall](1986/marshall/marshall.c) ([index.html](1986/marshall/index.html]))
+
[Cody](#cody) got this to compile and work with clang and gcc. He noted that he tried to
keep the ASCII art as close to the original as possible. The line lengths are
@@ -429,14 +463,18 @@ which can be disabled. It results in the same behaviour but this way no warnings
are produced.
-## [1986/pawka](1986/pawka/pawka.c) ([index.html](1986/pawka/index.html))
+
+## [1986/pawka](1986/pawka/pawka.c) ([index.html](1986/pawka/index.html))
+
[Cody](#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.
-## [1986/stein](1986/stein/stein.c) ([index.html](1986/stein/index.html]))
+
+## [1986/stein](1986/stein/stein.c) ([index.html](1986/stein/index.html]))
+
[Cody](#cody) restored the original entry which was a single line. The code
being longer (in 1986 a one liner could be longer) was split to three lines to
@@ -447,7 +485,9 @@ Cody also added the [stein.sh](1986/stein/stein.sh) script which runs the two
commands that we suggest in order to get it to show clean output.
-## [1986/wall](1986/wall/wall.c) ([index.html](1986/wall/index.html]))
+
+## [1986/wall](1986/wall/wall.c) ([index.html](1986/wall/index.html]))
+
[Cody](#cody) fixed this so that it does not require `-traditional-cpp`. This took a fair
bit of tinkering as this entry *very twisted*; fixing `-traditional-cpp` is, as
@@ -556,15 +596,21 @@ Some of the changes required:
There might have been other changes as well.
-# 1987
+
+# 1987
+
-## [1987/biggar](1987/biggar/biggar.c) ([index.html](1987/biggar/index.html))
+
+## [1987/biggar](1987/biggar/biggar.c) ([index.html](1987/biggar/index.html))
+
[Cody](#cody) added the [try.sh](1987/biggar/try.sh) script.
-## [1987/heckbert](1987/heckbert/heckbert.c) ([index.html](1987/heckbert/index.html))
+
+## [1987/heckbert](1987/heckbert/heckbert.c) ([index.html](1987/heckbert/index.html))
+
[Cody](#cody) made this look more like the original entry by restoring the `#define` of
`define`. It's not used but it now looks closer to the original.
@@ -578,7 +624,9 @@ that for System V we had to do this) Cody added to the Makefile
`-Dindex=strchr`.
-## [1987/hines](1987/hines/hines.c) ([index.html](1987/hines/index.html))
+
+## [1987/hines](1987/hines/hines.c) ([index.html](1987/hines/index.html))
+
[Cody](#cody) added the [try.sh](1987/hines/try.sh) script and the C file
[goto.c](1987/hines/goto.c) and the text file [goto.txt](1987/hines/goto.txt)
@@ -586,7 +634,9 @@ for demonstration purposes. Notice that the program is case sensitive which
running the program on the text file demonstrates.
-## [1987/lievaart](1987/lievaart/lievaart.c) ([index.html](1987/lievaart/index.html))
+
+## [1987/lievaart](1987/lievaart/lievaart.c) ([index.html](1987/lievaart/index.html))
+
[Cody](#cody) added back the documented checks for invalid input which no longer worked
and instead resulted in either accepting the level, whether or not it was a
@@ -631,14 +681,18 @@ well (the one with the board and the one without, the entry itself with the
size constraints of the contest).
-## [1987/wall](1987/wall/wall.c) ([index.html](1987/wall/index.html]))
+
+## [1987/wall](1987/wall/wall.c) ([index.html](1987/wall/index.html]))
+
[Cody](#cody) made this use `fgets(3)`.
Cody also added the [try.sh](1987/wall/try.sh) script.
-## [1987/westley](1987/westley/westley.c) ([index.html](1987/westley/index.html]))
+
+## [1987/westley](1987/westley/westley.c) ([index.html](1987/westley/index.html]))
+
[Cody](#cody) fixed this for modern systems. The problem was `'assignment to cast is
illegal, lvalue casts are not supported'`. For the original file see the
@@ -653,10 +707,14 @@ Cody also added to the Makefile `-include stdio.h` in the nowadays very
unlikely(?) but nevertheless suggested case that `putchar()` is not available.
-# 1988
+
+# 1988
+
-## [1988/dale](1988/dale/dale.c) ([index.html](1988/dale/index.html]))
+
+## [1988/dale](1988/dale/dale.c) ([index.html](1988/dale/index.html]))
+
[Cody](#cody) fixed this twisted entry (as we called it :-) ) for modern compilers,
including making it no longer require `-traditional-cpp`. Fixing
@@ -736,7 +794,9 @@ version in case you have an older compiler or wish to try `-traditional-cpp`.
Cody also provided the [try.sh](1988/dale/try.sh) script.
-## [1988/isaak](1988/isaak/isaak.c) ([index.html](1988/isaak/index.html]))
+
+## [1988/isaak](1988/isaak/isaak.c) ([index.html](1988/isaak/index.html]))
+
[Cody](#cody) fixed this to work for modern systems. The problem was that the important
function, a redefinition of `exit()`, was not being called in `main()`. The
@@ -744,13 +804,17 @@ original version is in [1988/isaak/isaak.alt.c](1988/isaak/isaak.alt.c). See the
index.html file for more details.
-## [1988/litmaath](1988/litmaath/litmaath.c) ([index.html](1988/litmaath/index.html))
+
+## [1988/litmaath](1988/litmaath/litmaath.c) ([index.html](1988/litmaath/index.html))
+
[Cody](#cody) added the alt code which is code that we suggested at the time of
publication, in the remarks, to help understand the entry, and for fun.
-## [1988/phillipps](1988/phillipps/phillipps.c) ([index.html](1988/phillipps/index.html]))
+
+## [1988/phillipps](1988/phillipps/phillipps.c) ([index.html](1988/phillipps/index.html]))
+
[Cody](#cody) fixed this for modern systems. It did not compile with clang because it
requires the second and third args of `main()` to be `char ** but even before
@@ -769,12 +833,16 @@ same code. Additionally, `main()` returns `!pain(...)` like `main()` used to do
to itself and `pain()` does now.
-## [1988/reddy](1988/reddy/reddy.c) ([index.html](1988/reddy/index.html))
+
+## [1988/reddy](1988/reddy/reddy.c) ([index.html](1988/reddy/index.html))
+
[Cody](#cody) made this use `fgets(3)`.
-## [1988/spinellis](1988/spinellis/spinellis.c) ([index.html](1988/spinellis/index.html]))
+
+## [1988/spinellis](1988/spinellis/spinellis.c) ([index.html](1988/spinellis/index.html]))
+
[Cody](#cody) provided an [alternate version](1988/spinellis/spinellis.alt.c) so that
this will work with compilers like clang. An alternate version had to be
@@ -790,7 +858,9 @@ doing this) that with a slight modification this entry can be C++ instead. We do
thank him for this ghastly point! :-)
-## [1988/westley](1988/westley/westley.c) ([index.html](1988/westley/index.html]))
+
+## [1988/westley](1988/westley/westley.c) ([index.html](1988/westley/index.html]))
+
The [original version](1988/westley/westley.alt.c), provided as alternate code,
was fixed by Misha Dynin, based on the judges' remarks, so that this would work
@@ -806,10 +876,14 @@ not strictly necessary but nonetheless more correct, even if not warned against.
-# 1989
+
+# 1989
+
-## [1989/fubar](1989/fubar/fubar.c) ([index.html](1989/fubar/index.html]))
+
+## [1989/fubar](1989/fubar/fubar.c) ([index.html](1989/fubar/index.html]))
+
[Cody](#cody) got this to work with modern systems. The main issues were that an
`#include` had to be added along with fixing the path (due to `.` not being in
@@ -843,7 +917,9 @@ Cody also 'modernised' the script to use `bash` and fixed for ShellCheck. The
Cody also added the [try.sh](1989/fubar/try.sh) script.
-## [1989/jar.1](1989/jar.1/jar.1.c) ([index.html](1989/jar.1/index.html]))
+
+## [1989/jar.1](1989/jar.1/jar.1.c) ([index.html](1989/jar.1/index.html]))
+
To prevent annoying output to `/dev/tty` we changed the code to simulate the
output via `strings(1)` but [Cody](#cody) removed the ill-famed `useless use of cat` to
@@ -860,7 +936,9 @@ anyway, and since one may still run the code or the script (for the original
entry and the alt code) anyway, it works out well.
-## [1989/jar.2](1989/jar.2/jar.2.c) ([index.html](1989/jar.2/index.html]))
+
+## [1989/jar.2](1989/jar.2/jar.2.c) ([index.html](1989/jar.2/index.html]))
+
[Cody](#cody) fixed this to work with modern compilers. Modern compilers do not allow
code like:
@@ -899,7 +977,9 @@ because the `alt` rule had what normally is in the `${PROG}.alt` rule.
-## [1989/ovdluhe](1989/ovdluhe/ovdluhe.c) ([index.html](1989/ovdluhe/index.html]))
+
+## [1989/ovdluhe](1989/ovdluhe/ovdluhe.c) ([index.html](1989/ovdluhe/index.html]))
+
[Cody](#cody) fixed an infinite loop where the program would print the same thing over
and over again, flooding the screen. The problem is that there was a `for` loop
@@ -919,7 +999,9 @@ for details. The fix described above was fixed in this version too, after it was
discovered and fixed.
-## [1989/paul](1989/paul/paul.c) ([index.html](1989/paul/index.html]))
+
+## [1989/paul](1989/paul/paul.c) ([index.html](1989/paul/index.html]))
+
[Cody](#cody) fixed a segfault under macOS that prevented it from working. The problem
was that the int (from `#define f`) should be a long. This became apparent when
@@ -930,7 +1012,9 @@ which has the trace function that the author included but commented out. See the
index.html for details.
-## [1989/robison](1989/robison/robison.c) ([index.html](1989/robison/index.html]))
+
+## [1989/robison](1989/robison/robison.c) ([index.html](1989/robison/index.html]))
+
[Yusuke Endoh](#yusuke) fixed this to compile under modern systems. To see the changes
made, try:
@@ -945,7 +1029,9 @@ made, try:
Cody also added the [try.sh](1989/robison/try.sh) script.
-## [1989/tromp](1989/tromp/tromp.c) ([index.html](1989/tromp/index.html]))
+
+## [1989/tromp](1989/tromp/tromp.c) ([index.html](1989/tromp/index.html]))
+
[Cody](#cody) and [Yusuke](#yusuke) fixed this entry: Yusuke fixed this to compile with gcc and Cody
fixed it for clang and made some other fixes as well.
@@ -974,12 +1060,16 @@ IOCCC [Tetris](https://en.wikipedia.org/wiki/Tetris) working (this of course was
not his only reason :-) )
-## [1989/vanb](1989/vanb/vanb.c) ([index.html](1989/vanb/index.html]))
+
+## [1989/vanb](1989/vanb/vanb.c) ([index.html](1989/vanb/index.html]))
+
[Cody](#cody) added the [try.sh](1989/vanb/try.sh) script.
-## [1989/westley](1989/westley/westley.c) ([index.html](1989/westley/index.html]))
+
+## [1989/westley](1989/westley/westley.c) ([index.html](1989/westley/index.html]))
+
[Cody](#cody) fixed this for clang, except that two versions generated by the program
cannot be compiled by clang due to inherent defects in the compiler and how the
@@ -1049,10 +1139,14 @@ The `compile.sh` script allows one to specify the compiler with the `CC`
environmental variable; see the index.html for details.
-# 1990
+
+# 1990
+
-## [1990/baruch](1990/baruch/baruch.c) ([index.html](1990/baruch/index.html]))
+
+## [1990/baruch](1990/baruch/baruch.c) ([index.html](1990/baruch/index.html]))
+
[Cody](#cody) added the [try.sh](1990/baruch/try.sh) script.
@@ -1072,7 +1166,9 @@ the variables, adding instead `-Wno-implicit-int`. The newline added by the
judges was retained.
-## [1990/cmills](1990/cmills/cmills.c) ([index.html](1990/cmills/index.html]))
+
+## [1990/cmills](1990/cmills/cmills.c) ([index.html](1990/cmills/index.html]))
+
[Yusuke](#yusuke) got this to work in modern systems (it previously resulted in a bus
error).
@@ -1080,7 +1176,9 @@ error).
[Cody](#cody) made this use `fgets(3)`.
-## [1990/dds](1990/dds/dds.c) ([index.html](1990/dds/index.html]))
+
+## [1990/dds](1990/dds/dds.c) ([index.html](1990/dds/index.html]))
+
[Yusuke](#yusuke) and [Cody](#cody) in conjunction fixed this for modern systems (both fixed a
different compiler error but more fixes were also made).
@@ -1097,7 +1195,9 @@ Cody fixed another compiler error by removing the erroneous prototype to
Cody also made this use `fgets(3)`.
-## [1990/dg](1990/dg/dg.c) ([index.html](1990/dg/index.html]))
+
+## [1990/dg](1990/dg/dg.c) ([index.html](1990/dg/index.html]))
+
[Cody](#cody) fixed this for modern systems. There were two problems to be resolved.
@@ -1120,7 +1220,9 @@ with if the C preprocessor botches single quotes in cpp expansion.
Cody also added the [try.sh](1990/dg/try.sh) script.
-## [1990/jaw](1990/jaw/jaw.c) ([index.html](1990/jaw/index.html]))
+
+## [1990/jaw](1990/jaw/jaw.c) ([index.html](1990/jaw/index.html]))
+
[Cody](#cody) fixed the script to work properly in modern environments including writing
to and extracting from `stdout` and relying on the exit code in the commands to
@@ -1137,14 +1239,18 @@ fix applied by Cody that made the program just show `oops` twice from invalid
input but which now works.
-## [1990/pjr](1990/pjr/pjr.c) ([index.html](1990/pjr/index.html]))
+
+## [1990/pjr](1990/pjr/pjr.c) ([index.html](1990/pjr/index.html]))
+
[Cody](#cody) added the [alt code](1990/pjr/pjr.alt.c) 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.
-## [1990/scjones](1990/scjones/scjones.c) ([index.html](1990/scjones/index.html]))
+
+## [1990/scjones](1990/scjones/scjones.c) ([index.html](1990/scjones/index.html]))
+
[Yusuke](#yusuke) suggested `-ansi` to get the entry to compile due to trigraphs and [Cody](#cody)
suggested `-trigraphs`. Both work but we used Yusuke's idea.
@@ -1153,7 +1259,9 @@ Cody added the [try.sh](1990/scjones/try.sh) script to show exactly what the
entry does.
-## [1990/tbr](1990/tbr/tbr.c) ([index.html](1990/tbr/index.html]))
+
+## [1990/tbr](1990/tbr/tbr.c) ([index.html](1990/tbr/index.html]))
+
[Cody](#cody) fixed this to work with modern compilers; `exit(3)` returns void but the
function was used in a binary expression so this wouldn't even compile.
@@ -1171,7 +1279,9 @@ version](1990/tbr/index.html#alternate-code) is equivalent in function, like the
author intended, but more compact.
-## [1990/theorem](1990/theorem/theorem.c) ([index.html](1990/theorem/index.html]))
+
+## [1990/theorem](1990/theorem/theorem.c) ([index.html](1990/theorem/index.html]))
+
[Cody](#cody) fixed this to compile with modern systems.
@@ -1212,7 +1322,9 @@ used in order to get this to work initially (prior to this output was there but
incomplete).
-## [1990/stig](1990/stig/stig.c) ([index.html](1990/stig/index.html))
+
+## [1990/stig](1990/stig/stig.c) ([index.html](1990/stig/index.html))
+
[Cody](#cody) fixed the paths in the Makefile so that this would build in Linux (it
worked fine in macOS).
@@ -1221,7 +1333,9 @@ He also changed the Makefile to use `bash` not `zsh` as not all systems have
`zsh` and the Makefile actually sets `SHELL` to `bash`.
-## [1990/westley](1990/westley/westley.c) ([index.html](1990/westley/index.html]))
+
+## [1990/westley](1990/westley/westley.c) ([index.html](1990/westley/index.html]))
+
[Cody](#cody) fixed this for modern systems. It had `1s` in places for a `short
int` which was changed to just `1`. Since it's instructional to see the
@@ -1240,10 +1354,14 @@ The alt code did NOT have arg checks added as it is actually a copy of the
original code.
-# 1991
+
+# 1991
+
-## [1991/ant](1991/ant/ant.c) ([index.html](1991/ant/index.html]))
+
+## [1991/ant](1991/ant/ant.c) ([index.html](1991/ant/index.html]))
+
[Cody](#cody) added [alt code](1991/ant/ant.alt.c) that will be a bit easier to use for
those familiar with vim in the following ways:
@@ -1258,7 +1376,9 @@ those familiar with vim in the following ways:
The other keys were left unchanged.
-## [1991/brnstnd](1991/brnstnd/brnstnd.c) ([index.html](1991/brnstnd/index.html]))
+
+## [1991/brnstnd](1991/brnstnd/brnstnd.c) ([index.html](1991/brnstnd/index.html]))
+
[Cody](#cody) fixed this for modern systems. There were two invalid operands to binary
expression (`char *` and `void` and `int` and `void`) to resolve and
@@ -1274,7 +1394,9 @@ Cody also added the [try.sh](1991/brnstnd/try.sh) script and
[try.txt](1991/brnstnd/try.txt) which the script uses.
-## [1991/buzzard](1991/buzzard/buzzard.c) ([index.html](1991/buzzard/index.html]))
+
+## [1991/buzzard](1991/buzzard/buzzard.c) ([index.html](1991/buzzard/index.html]))
+
[Cody](#cody) fixed this so that the coordinates being specified would not crash the
program. This happened because the function that calls `atoi(3)` took an arg
@@ -1292,7 +1414,9 @@ more useful way to exit, just entering `q` followed by enter, rather than
completing or killing the program.
-## [1991/davidguy](1991/davidguy/davidguy.c) ([index.html](1991/davidguy/index.html]))
+
+## [1991/davidguy](1991/davidguy/davidguy.c) ([index.html](1991/davidguy/index.html]))
+
As some systems like macOS can be particular about not declaring functions [Cody](#cody)
added to the Makefile some `-include` options. These appear to not be strictly
@@ -1300,7 +1424,9 @@ necessary but it was done due to other syscalls being a problem not being
declared first.
-## [1991/dds](1991/dds/dds.c) ([index.html](1991/dds/index.html]))
+
+## [1991/dds](1991/dds/dds.c) ([index.html](1991/dds/index.html]))
+
[Cody](#cody) fixed a segfault that prevented this entry from working in any condition
and he also made it work for clang. He also added checks for NULL `FILE *`s.
@@ -1429,7 +1555,9 @@ was pondered and changed numerous times and ultimately that problem with this
entry was fixed. It has not been done in all.
-## [1991/fine](1991/fine/fine.c) ([index.html](1991/fine/index.html))
+
+## [1991/fine](1991/fine/fine.c) ([index.html](1991/fine/index.html))
+
[Cody](#cody) made it look much more like the original entry even after the fix that
increased the count in characters from 80 to 106, getting it back down to just
@@ -1452,7 +1580,9 @@ Brian Westley and Cody also added several of his own (can you figure out exactly
which ones? :-) )
-## [1991/rince](1991/rince/rince.c) ([index.html](1991/rince/index.html))
+
+## [1991/rince](1991/rince/rince.c) ([index.html](1991/rince/index.html))
+
[Cody](#cody) fixed it so that the messages that show if you won or lost will be seen
after the end of the game. The reason it did not work before is curses was ended
@@ -1467,7 +1597,9 @@ the maximum number of moves, even if that is making it harder to win. Naturally
the above fix was applied to these versions too.
-## [1991/westley](1991/westley/westley.c) ([index.html](1991/westley/index.html]))
+
+## [1991/westley](1991/westley/westley.c) ([index.html](1991/westley/index.html]))
+
[Cody](#cody) fixed a segfault in this program which prevented it from working. The
problem was that the read-only char array `char *z[]` was being written to. The
@@ -1489,10 +1621,14 @@ Cody also fixed the make clobber rule where a file was left lying about when it
should have been removed.
-# 1992
+
+# 1992
+
-## [1992/adrian](1992/adrian/adrian.c) ([index.html](1992/adrian/index.html]))
+
+## [1992/adrian](1992/adrian/adrian.c) ([index.html](1992/adrian/index.html]))
+
[Cody](#cody) fixed the code so that it will try opening the file the code was compiled
from (`__FILE__`), not `adgrep.c`, as the latter does not exist: `adgrep` is
@@ -1567,7 +1703,9 @@ clear the screen after compilation so that one can see how the other files are
generated.
-## [1992/albert](1992/albert/albert.c) ([index.html](1992/albert/index.html]))
+
+## [1992/albert](1992/albert/albert.c) ([index.html](1992/albert/index.html]))
+
[Cody](#cody) fixed this to compile with modern systems. Note that in 1996 a bug fix was
applied to the code, provided as the alt code as that version is not obfuscated.
@@ -1581,7 +1719,9 @@ Cody also added the [try.sh](1992/albert/try.sh) and
the alt code.
-## [1992/ant](1992/ant/ant.c) ([index.html](1992/ant/index.html]))
+
+## [1992/ant](1992/ant/ant.c) ([index.html](1992/ant/index.html]))
+
[Cody](#cody) fixed the Makefile so that the program will actually work with it (or at
least the rule to clobber files and link `am` to `ant`). The issue was that the
@@ -1603,7 +1743,9 @@ systems too.
Cody also added the [try.sh](1992/ant/try.sh) script.
-## [1992/buzzard.1](1992/buzzard.1/buzzard.1.c) ([index.html](1992/buzzard.1/index.html))
+
+## [1992/buzzard.1](1992/buzzard.1/buzzard.1.c) ([index.html](1992/buzzard.1/index.html))
+
[Cody](#cody) added a check for the right number of args, exiting 1 if not enough (2)
used. This was not originally done but at a time it was changed to be considered
@@ -1614,7 +1756,9 @@ He also added the [try.sh](1992/buzzard.1/try.sh) script to try out some
commands that we suggested and some additional ones that he provide for some fun.
-## [1992/buzzard.2](1992/buzzard.2/buzzard.2.c) ([index.html](1992/buzzard.2/index.html))
+
+## [1992/buzzard.2](1992/buzzard.2/buzzard.2.c) ([index.html](1992/buzzard.2/index.html))
+
[Cody](#cody) fixed the alt code to compile. The problem was it assumed that
`exit(3)` returns a value, not `void`. This was fixed with a `,0`.
@@ -1624,7 +1768,9 @@ Cody also added the [try.sh](1992/buzzard.2/try.sh) and
and its alt code.
-## [1992/gson](1992/gson/gson.c) ([index.html](1992/gson/index.html]))
+
+## [1992/gson](1992/gson/gson.c) ([index.html](1992/gson/index.html]))
+
[Cody](#cody) fixed a crash that prevented this entry from working in some cases in some
systems (like macOS) by disabling the optimiser in the Makefile.
@@ -1644,7 +1790,9 @@ is a more problematic. See [1992/gson in bugs.html](bugs.html#1992-gson) for mor
details if you're interested in trying to understand it (or fix?).
-## [1992/imc](1992/imc/imc.c) ([index.html](1992/imc/index.html]))
+
+## [1992/imc](1992/imc/imc.c) ([index.html](1992/imc/index.html]))
+
[Cody](#cody) provided the [try.sh](1992/imc/try.sh) script.
@@ -1655,7 +1803,9 @@ he made this more like the original by redefining `exit` to use the comma
operator so that it could be used in binary expressions.
-## [1992/kivinen](1992/kivinen/kivinen.c) ([index.html](1992/kivinen/index.html]))
+
+## [1992/kivinen](1992/kivinen/kivinen.c) ([index.html](1992/kivinen/index.html]))
+
It was observed that on modern systems this goes much too quick. [Yusuke](#yusuke) created
a patch that calls `usleep(3)` but [Cody](#cody) thought the value was too slow so he
@@ -1681,7 +1831,9 @@ 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.
-## [1992/lush](1992/lush/lush.c) ([index.html](1992/lush/index.html]))
+
+## [1992/lush](1992/lush/lush.c) ([index.html](1992/lush/index.html]))
+
[Yusuke](#yusuke) supplied a patch which makes this work with gcc. Due to how it works (see
Judges' remarks in the index.html file) this will not work with clang.
@@ -1695,12 +1847,16 @@ NOTE: this entry cannot work with clang due to different compiler messages (it
will compile fine but it won't work). See [bugs.html](bugs.html) for details.
-## [1992/marangon](1992/marangon/marangon.c) ([index.html](1992/marangon/index.html))
+
+## [1992/marangon](1992/marangon/marangon.c) ([index.html](1992/marangon/index.html))
+
[Cody](#cody) made this more portable by changing the `void main()` to be `int main()`.
-## [1992/nathan](1992/nathan/nathan.c) ([index.html](1992/nathan/index.html))
+
+## [1992/nathan](1992/nathan/nathan.c) ([index.html](1992/nathan/index.html))
+
[Cody](#cody) added the original file back as it was deemed that the export restrictions
should no longer be a cause of concern for this entry. Doing this did require a
@@ -1714,7 +1870,9 @@ Cody also added the [try.sh](1992/nathan/try.sh) script that runs a few commands
that we suggested as well as one he provided.
-## [1992/vern](1992/vern/vern.c) ([index.html](1992/vern/index.html]))
+
+## [1992/vern](1992/vern/vern.c) ([index.html](1992/vern/index.html]))
+
[Cody](#cody) fixed an infinite loop if one were to input numbers < `0` or > `077`. The
problem was that it tried to use `scanf(3)` with the format specifier `"%o %o"` in a
@@ -1728,7 +1886,9 @@ new char arrays (always cleared in the beginning of the loop) and then using
both numbers (using `"%o %o"` does not solve the problem).
-## [1992/westley](1992/westley/westley.c) ([index.html](1992/westley/index.html]))
+
+## [1992/westley](1992/westley/westley.c) ([index.html](1992/westley/index.html]))
+
[Cody](#cody) fixed this to work for clang by changing the third and fourth arg of
`main()` to be `char ** inside `main()`; clang requires args 2 - 4 to be `char
@@ -1772,16 +1932,22 @@ args (2). And not that we need the help or anything for this :-) but we
encourage you to try the original without two args :-)
-# 1993
+
+# 1993
+
-## [1993/ant](1993/ant/ant.c) ([index.html](1993/ant/index.html]))
+
+## [1993/ant](1993/ant/ant.c) ([index.html](1993/ant/index.html]))
+
[Cody](#cody) added the [try.sh](1993/ant/try.sh) script and a data file,
[ants.txt](1993/ant/ants.txt), full of ants for the script.
-## [1993/cmills](1993/cmills/cmills.c) ([index.html](1993/cmills/index.html]))
+
+## [1993/cmills](1993/cmills/cmills.c) ([index.html](1993/cmills/index.html]))
+
[Yusuke](#yusuke) suggested that with modern systems this goes too fast so he added a call
to `usleep(3)` in a patch he made. [Cody](#cody) made it configurable at compilation by
@@ -1789,7 +1955,9 @@ using a macro. This is in the alt version which is the recommended one to try
first.
-## [1993/dgibson](1993/dgibson/dgibson.c) ([index.html](1993/dgibson/index.html]))
+
+## [1993/dgibson](1993/dgibson/dgibson.c) ([index.html](1993/dgibson/index.html]))
+
[Cody](#cody) fixed the [dgibson.sh](1993/dgibson/dgibson.sh) script to work
which assumed that `.` is in the path.
@@ -1798,12 +1966,16 @@ Cody also added the [try.sh](1993/dgibson/try.sh) script which runs the above
mentioned script on all the data files.
-## [1993/ejb](1993/ejb/ejb.c) ([index.html](1993/ejb/index.html]))
+
+## [1993/ejb](1993/ejb/ejb.c) ([index.html](1993/ejb/index.html]))
+
[Cody](#cody) added the [try.sh](1993/ejb/try.sh) script.
-## [1993/jonth](1993/jonth/jonth.c) ([index.html](1993/jonth/index.html]))
+
+## [1993/jonth](1993/jonth/jonth.c) ([index.html](1993/jonth/index.html]))
+
Both [Cody](#cody) and [Yusuke](#yusuke) fixed this so that it will work with modern systems. Yusuke
provided some fixes of the X code and Cody fixed the C pre-processor directives
@@ -1819,13 +1991,17 @@ and expect `G;` to equate to `int i, j;` (though it's now a long) and `K` to mea
prepended to them.
-## [1993/leo](1993/leo/leo.c) ([index.html](1993/leo/index.html]))
+
+## [1993/leo](1993/leo/leo.c) ([index.html](1993/leo/index.html]))
+
[Cody](#cody) fixed this to work with modern compilers. This involved different header
files for functions.
-## [1993/lmfjyh](1993/lmfjyh/lmfjyh.c) ([index.html](1993/lmfjyh/index.html]))
+
+## [1993/lmfjyh](1993/lmfjyh/lmfjyh.c) ([index.html](1993/lmfjyh/index.html]))
+
[Cody](#cody) added an [alternate
version](1993/lmfjyh/index.html#alternate-code) which does what the program did
@@ -1837,7 +2013,9 @@ would be compiled if gcc < 2.3.3) whether or not compilation succeeds (which is
highly unlikely).
-## [1993/plummer](1993/plummer/plummer.c) ([index.html](1993/plummer/index.html]))
+
+## [1993/plummer](1993/plummer/plummer.c) ([index.html](1993/plummer/index.html]))
+
[Cody](#cody) added check for two args.
@@ -1852,7 +2030,9 @@ 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).
-## [1993/rince](1993/rince/rince.c) ([index.html](1993/rince/index.html]))
+
+## [1993/rince](1993/rince/rince.c) ([index.html](1993/rince/index.html]))
+
[Yusuke](#yusuke) supplied a patch to get this to work in modern systems. This fix also
applies the compatibility issue of `select(2)` described in the index.html file.
@@ -1867,12 +2047,16 @@ 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.
-## [1993/schnitzi](1993/schnitzi/schnitzi.c) ([index.html](1993/schnitzi/index.html]))
+
+## [1993/schnitzi](1993/schnitzi/schnitzi.c) ([index.html](1993/schnitzi/index.html]))
+
[Cody](#cody) made this use `fgets(3)` not `gets(3)`.
-## [1993/vanb](1993/vanb/vanb.c) ([index.html](1993/vanb/index.html]))
+
+## [1993/vanb](1993/vanb/vanb.c) ([index.html](1993/vanb/index.html]))
+
[Cody](#cody) fixed this to work with clang. The problem was that the third arg to main()
was not a `char **. Instead `O5()` (which was `main()` via `-DO5=main`) is now
@@ -1903,10 +2087,14 @@ this code. Other code is also described there.
Cody also added the [try.sh](1993/vanb/try.sh) script.
-# 1994
+
+# 1994
+
-## [1994/dodsond2](1994/dodsond2/dodsond2.c) ([index.html](1994/dodsond2/index.html))
+
+## [1994/dodsond2](1994/dodsond2/dodsond2.c) ([index.html](1994/dodsond2/index.html))
+
[Cody](#cody) fixed an infinite loop that could happen when you shoot an arrow
and end up having no arrows, thus making one force quit the game. The problem
@@ -1937,7 +2125,9 @@ 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.
-## [1994/horton](1994/horton/horton.c) ([index.html](1994/horton/index.html))
+
+## [1994/horton](1994/horton/horton.c) ([index.html](1994/horton/index.html))
+
[Cody](#cody) fixed this to check that four args were specified. With the use of the C
pre-processor macro and inclusion of `stdlib.h` in the Makefile the layout of the
@@ -1960,7 +2150,9 @@ newsletter was found on the Internet Wayback Machine and the article was
extracted as a PDF in the macOS `Preview.app` (`File -> Print` feature).
-## [1994/imc](1994/imc/imc.c) ([index.html](1994/imc/index.html]))
+
+## [1994/imc](1994/imc/imc.c) ([index.html](1994/imc/index.html]))
+
[Cody](#cody) added the [try.sh](1994/imc/try.sh) script.
@@ -1970,7 +2162,9 @@ 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).
-## [1994/ldb](1994/ldb/ldb.c) ([index.html](1994/ldb/index.html]))
+
+## [1994/ldb](1994/ldb/ldb.c) ([index.html](1994/ldb/index.html]))
+
[Cody](#cody) fixed this so it would compile and work with modern compilers. The problem
was that `srand()` returns `void` but it was used in a `||` expression. Thus the
@@ -1994,7 +2188,9 @@ characters or it might print (up to) the next 231 characters and so on.
Cody also added the [try.sh](1994/ldb/try.sh) script.
-## [1994/schnitzi](1994/schnitzi/schnitzi.c) ([index.html](1994/schnitzi/index.html]))
+
+## [1994/schnitzi](1994/schnitzi/schnitzi.c) ([index.html](1994/schnitzi/index.html]))
+
[Cody](#cody) added two alt versions, [one which uses
`fgets()`](1994/schnitzi/schnitzi.alt.c) but when fed its own source code cannot
@@ -2016,7 +2212,9 @@ Cody also added the [try.sh](1994/schnitzi/try.sh) and
[try.alt.sh](1994/schnitzi/try.alt.sh) scripts.
-## [1994/shapiro](1994/shapiro/shapiro.c) ([index.html](1994/shapiro/index.html]))
+
+## [1994/shapiro](1994/shapiro/shapiro.c) ([index.html](1994/shapiro/index.html]))
+
[Cody](#cody) fixed a bug on systems where `EOF != -1`. The problem is that `getc()` and
the related functions do not return `-1` on EOF or error but rather `EOF`.
@@ -2028,12 +2226,16 @@ For an interesting problem that occurred here and what was done to solve it,
check the [bugs.html](bugs.html) file.
-## [1994/smr](1994/smr/smr.c) ([index.html](1994/smr/index.html]))
+
+## [1994/smr](1994/smr/smr.c) ([index.html](1994/smr/index.html]))
+
[Cody](#cody) added the [try.sh](1994/smr/try.sh) script.
-## [1994/tvr](1994/tvr/tvr.c) ([index.html](1994/tvr/index.html]))
+
+## [1994/tvr](1994/tvr/tvr.c) ([index.html](1994/tvr/index.html]))
+
[Cody](#cody) added the try scripts, four total, colour and black and white
pairs for the original entry and the alt code. These scripts are
@@ -2050,7 +2252,9 @@ more like the original entry this was done in the Makefile. The alt code was
also changed to use `fgets(3)`.
-## [1994/weisberg](1994/weisberg/weisberg.c) ([index.html](1994/weisberg/index.html]))
+
+## [1994/weisberg](1994/weisberg/weisberg.c) ([index.html](1994/weisberg/index.html]))
+
[Cody](#cody) changed the Makefile to make this program more user friendly and easier to
use with other tools as well by making the program output not a space after each
@@ -2064,7 +2268,9 @@ primes. It only does the reversed output because the program actually prints
primes.
-## [1994/westley](1994/westley/westley.c) ([index.html](1994/westley/index.html]))
+
+## [1994/westley](1994/westley/westley.c) ([index.html](1994/westley/index.html]))
+
[Cody](#cody) converted the spoiler compiler options (provided by the author) to be
compiler commands and added a script [try.sh](1994/westley/try.sh) to
@@ -2076,10 +2282,14 @@ to 80 columns and the [try.alt.sh](1994/westley/try.alt.sh) script to automate
the play along the lines of the [try.sh](1994/westley/try.sh) script.
-# 1995
+
+# 1995
+
-## [1995/cdua](1995/cdua/cdua.c) ([index.html](1995/cdua/index.html]))
+
+## [1995/cdua](1995/cdua/cdua.c) ([index.html](1995/cdua/index.html]))
+
[Cody](#cody) fixed this so that it would work with macOS. Once it could compile it
additionally segfaulted under macOS which he also fixed.
@@ -2097,18 +2307,24 @@ an error but it's entirely possible that they will eventually make the defect
function as the error message claims.
-## [1995/dodsond1](1995/dodsond1/dodsond1.c) ([index.html](1995/dodsond1/index.html]))
+
+## [1995/dodsond1](1995/dodsond1/dodsond1.c) ([index.html](1995/dodsond1/index.html]))
+
[Cody](#cody) added the [try.sh](1995/dodsond1/try.sh) script that uses the text file he
provided which is input we suggested one try with the entry.
-## [1995/esde](1995/esde/esde.c) ([index.html](1995/esde/index.html]))
+
+## [1995/esde](1995/esde/esde.c) ([index.html](1995/esde/index.html]))
+
[Cody](#cody) added the [try.sh](1995/esde/try.sh) script.
-## [1995/garry](1995/garry/garry.c) ([index.html](1995/garry/index.html]))
+
+## [1995/garry](1995/garry/garry.c) ([index.html](1995/garry/index.html]))
+
[Cody](#cody) fixed the alt code so that it will compile with modern compilers. The
problem was a missing `int` for the `f` variable. He felt it was even more
@@ -2124,12 +2340,16 @@ the paging to work right for the `garry.data` file leading blank lines had to be
added.
-## [1995/heathbar](1995/heathbar/heathbar.c) ([index.html](1995/heathbar/index.html]))
+
+## [1995/heathbar](1995/heathbar/heathbar.c) ([index.html](1995/heathbar/index.html]))
+
[Cody](#cody) added the [try.sh](1995/heathbar/try.sh) script.
-## [1995/leo](1995/leo/leo.c) ([index.html](1995/leo/index.html]))
+
+## [1995/leo](1995/leo/leo.c) ([index.html](1995/leo/index.html]))
+
[Cody](#cody) added the [try.sh](1995/leo/try.sh) script.
@@ -2137,7 +2357,9 @@ At our change in how to deal with spoilers, Cody also uudecoded the spoiler prov
by the author, putting it in [spoiler1.html](1995/leo/spoiler1.html).
-## [1995/makarios](1995/makarios/makarios.c) ([index.html](1995/makarios/index.html))
+
+## [1995/makarios](1995/makarios/makarios.c) ([index.html](1995/makarios/index.html))
+
[Cody](#cody) fixed this so that it will compile with versions of clang that has a defect
which only allows `main()` to have 0, 2 or 3 args. This is done by a new
@@ -2145,17 +2367,23 @@ function (`pain()` as it's annoying that clang is this way :-) ) that `main()`
calls which has the four args.
-## [1995/savastio](1995/savastio/savastio.c) ([index.html](1995/savastio/index.html]))
+
+## [1995/savastio](1995/savastio/savastio.c) ([index.html](1995/savastio/index.html]))
+
[Cody](#cody) added the [try.sh](1995/savastio/try.sh) script.
-## [1995/schnitzi](1995/schnitzi/schnitzi.c) ([index.html](1995/schnitzi/index.html]))
+
+## [1995/schnitzi](1995/schnitzi/schnitzi.c) ([index.html](1995/schnitzi/index.html]))
+
[Cody](#cody) added the [try.sh](1995/schnitzi/try.sh) script.
-## [1995/vanschnitz](1995/vanschnitz/vanschnitz.c) ([index.html](1995/vanschnitz/index.html))
+
+## [1995/vanschnitz](1995/vanschnitz/vanschnitz.c) ([index.html](1995/vanschnitz/index.html))
+
[Cody](#cody) added the authors' [spoiler as a C
file](1995/vanschnitz/vanschnitz.alt.c) as in 2023 we have decided that in most
@@ -2166,10 +2394,14 @@ entry decrypts the text or something like that.
Cody also added the [try.sh](1995/vanschnitz/try.sh) script.
-# 1996
+
+# 1996
+
-## [1996/august](1996/august/august.c) ([index.html](1996/august/index.html]))
+
+## [1996/august](1996/august/august.c) ([index.html](1996/august/index.html]))
+
[Cody](#cody) fixed a segfault in this program that prevented it from working right and
also fixed an infinite loop in the try commands.
@@ -2185,7 +2417,9 @@ commands that were given by the judges in the try section, with the fix above
applied.
-## [1996/dalbec](1996/dalbec/dalbec.c) ([index.html](1996/dalbec/index.html]))
+
+## [1996/dalbec](1996/dalbec/dalbec.c) ([index.html](1996/dalbec/index.html]))
+
[Cody](#cody) proposed a fix for this to compile with clang and Landon implemented it
after some discussion (though Cody changed the function name). The reason Cody
@@ -2204,7 +2438,9 @@ it should be.
Cody also added the [try.sh](1996/dalbec/try.sh) script.
-## [1996/eldby](1996/eldby/eldby.c) ([index.html](1996/eldby/index.html]))
+
+## [1996/eldby](1996/eldby/eldby.c) ([index.html](1996/eldby/index.html]))
+
[Cody](#cody) provided an [alternate version](1996/eldby/eldby.alt.c) which uses
`usleep()` in between writing the output to make it easier to see what is going
@@ -2214,7 +2450,9 @@ nowadays anyway). We recommend that you try the alternate version first due to
these reasons.
-## [1996/gandalf](1996/gandalf/gandalf.c) ([index.html](1996/gandalf/index.html]))
+
+## [1996/gandalf](1996/gandalf/gandalf.c) ([index.html](1996/gandalf/index.html]))
+
[Cody](#cody) fixed this to compile and work with modern systems. As he loved the
references in the code that could not compile he just commented out as little as
@@ -2228,12 +2466,16 @@ BTW: it is perilous to try the patience of
[Gandalf](https://www.glyphweb.com/arda/g/gandalf.html). Go ahead, try it! :-)
-## [1996/huffman](1996/huffman/huffman.c) ([index.html](1996/huffman/index.html]))
+
+## [1996/huffman](1996/huffman/huffman.c) ([index.html](1996/huffman/index.html]))
+
[Cody](#cody) added the [try.sh](1996/huffman/try.sh) script.
-## [1996/jonth](1996/jonth/jonth.c) ([index.html](1996/jonth/index.html]))
+
+## [1996/jonth](1996/jonth/jonth.c) ([index.html](1996/jonth/index.html]))
+
[Cody](#cody) fixed this to not segfault under macOS. The problem was that the function
pointer `w`, which points to `XCreateWindow()`, did not specify the parameters of
@@ -2242,12 +2484,16 @@ the function in the pointer assignment.
NOTE: if there is no X server running this program will still crash.
-## [1996/rcm](1996/rcm/rcm.c) ([index.html](1996/rcm/index.html]))
+
+## [1996/rcm](1996/rcm/rcm.c) ([index.html](1996/rcm/index.html]))
+
[Cody](#cody) added the [try.sh](1996/rcm/try.sh) script.
-## [1996/schweikh1](1996/schweikh1/schweikh1.c) ([index.html](1996/schweikh1/index.html]))
+
+## [1996/schweikh1](1996/schweikh1/schweikh1.c) ([index.html](1996/schweikh1/index.html]))
+
[Cody](#cody) added the [try.sh](1996/schweikh1/try.sh) script.
@@ -2260,7 +2506,9 @@ on other systems (the other file is
the Makefile despite the fact that very few probably use Solaris nowadays.
-## [1996/schweikh2](1996/schweikh2/schweikh2.c) ([index.html](1996/schweikh2/index.html]))
+
+## [1996/schweikh2](1996/schweikh2/schweikh2.c) ([index.html](1996/schweikh2/index.html]))
+
[Cody](#cody) added the [try.sh](1996/schweikh2/try.sh) script with a few commands to try
along with a shorter version of something the author suggested one try (it is
@@ -2268,14 +2516,18 @@ suggested that one try the longer version too but it will run in an infinite
loop so having it in a script is less desired).
-## [1996/schweikh3](1996/schweikh3/schweikh3.c) ([index.html](1996/schweikh3/index.html]))
+
+## [1996/schweikh3](1996/schweikh3/schweikh3.c) ([index.html](1996/schweikh3/index.html]))
+
[Cody](#cody) updated the Makefile so that if it fails to compile it will try he
method suggested for SunOS rather than having to update the Makefile manually or
running a more complicated command: now one can just run `make`.
-## [1996/westley](1996/westley/westley.c) ([index.html](1996/westley/index.html]))
+
+## [1996/westley](1996/westley/westley.c) ([index.html](1996/westley/index.html]))
+
[Cody](#cody) fixed a segfault in this entry as well as it displaying environmental
variables. Although the scripts showed correct output, it somewhat lessened the
@@ -2296,10 +2548,14 @@ 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.
-# 1998
+
+# 1998
+
-## [1998/banks](1998/banks/banks.c) ([index.html](1998/banks/index.html]))
+
+## [1998/banks](1998/banks/banks.c) ([index.html](1998/banks/index.html]))
+
[Cody](#cody) improved the Makefile to allow for easier redefining the control
keys and time step that the author set up.
@@ -2314,7 +2570,9 @@ alternatives because not doing so would overly complicate both builds and since
you can configure them all in both builds it shouldn't matter.
-## [1998/bas1](1998/bas1/bas1.c) ([index.html](1998/bas1/index.html]))
+
+## [1998/bas1](1998/bas1/bas1.c) ([index.html](1998/bas1/index.html]))
+
[Cody](#cody), out of an abundance of caution, added a second arg to `main()` as some
versions of clang whine about the number of args on top of what type they are
@@ -2327,13 +2585,17 @@ Cody also added the [bas1.sh](1998/bas1/bas1.sh) script to simplify running the
program.
-## [1998/bas2](1998/bas2/bas2.c) ([index.html](1998/bas2/index.html]))
+
+## [1998/bas2](1998/bas2/bas2.c) ([index.html](1998/bas2/index.html]))
+
[Cody](#cody) added the [try.sh](1998/bas2/try.sh) script which runs some default actions
as well as allowing one to pass in different file names or strings.
-## [1998/chaos](1998/chaos/chaos.c) ([index.html](1998/chaos/index.html]))
+
+## [1998/chaos](1998/chaos/chaos.c) ([index.html](1998/chaos/index.html]))
+
[Cody](#cody) added a call to `endwin()` to restore terminal sanity (echo etc.) when
exiting the program (in both versions).
@@ -2343,7 +2605,9 @@ all the data files, giving instructions on how to rotate and zoom in and out,
prior to each run.
-## [1998/df](1998/df/df.c) ([index.html](1998/df/index.html]))
+
+## [1998/df](1998/df/df.c) ([index.html](1998/df/index.html]))
+
[Cody](#cody) changed a `int *` used for `fopen(3)` to be a `FILE *` to be more correct
and prevent any possible problems in some systems (which has happened).
@@ -2358,7 +2622,9 @@ 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?
-## [1998/dlowe](1998/dlowe/dlowe.c) ([index.html](1998/dlowe/index.html]))
+
+## [1998/dlowe](1998/dlowe/dlowe.c) ([index.html](1998/dlowe/index.html]))
+
[Cody](#cody) made the program more portable by changing the void return type of `main()`
to be `int` (in both versions).
@@ -2371,19 +2637,25 @@ remarks](1998/dlowe/index.html#historical-remarks) for more details on the
pootify scripts.
-## [1998/dloweneil](1998/dloweneil/dloweneil.c) ([index.html](1998/dloweneil/index.html]))
+
+## [1998/dloweneil](1998/dloweneil/dloweneil.c) ([index.html](1998/dloweneil/index.html]))
+
[Cody](#cody) added [alt code](1998/dloweneil/dloweneil.alt.c) 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.
-##
+
[Cody](#cody) added the [try.sh](1998/dorssel/try.sh) script.
-## [1998/fanf](1998/fanf/fanf.c) ([index.html](1998/fanf/index.html))
+
+## [1998/fanf](1998/fanf/fanf.c) ([index.html](1998/fanf/index.html))
+
[Cody](#cody) fixed this to compile. The problem was the intermediate steps to get to the
final code that is compiled. The code is now what it essentially becomes when
@@ -2404,7 +2676,9 @@ Cody also added the [try.sh](1998/fanf/try.sh) script to show the output of some
of the expressions that we selected.
-## [1998/schnitzi](1998/schnitzi/schnitzi.c) ([index.html](1998/schnitzi/index.html]))
+
+## [1998/schnitzi](1998/schnitzi/schnitzi.c) ([index.html](1998/schnitzi/index.html]))
+
[Cody](#cody) fixed invalid data types which prevented this entry from working, causing a
segfault. This showed itself in two parts which required two fixes, one for
@@ -2429,7 +2703,9 @@ Cody also added the [try.sh](1998/schnitzi/try.sh) script to help users try the
commands that we recommended as well as some added by him.
-## [1998/schweikh1](1998/schweikh1/schweikh1.c) ([index.html](1998/schweikh1/index.html]))
+
+## [1998/schweikh1](1998/schweikh1/schweikh1.c) ([index.html](1998/schweikh1/index.html]))
+
[Cody](#cody) fixed this for modern systems (it did not work at all) and added an
alternate version that works with macOS. Cody also made it ever so slightly more
@@ -2487,7 +2763,9 @@ compute the character count in the code according to the contest rules of 1998
in the file [charcount.pl](1998/schweikh1/charcount.pl).
-## [1998/schweikh2](1998/schweikh2/schweikh2.c) ([index.html](1998/schweikh2/index.html]))
+
+## [1998/schweikh2](1998/schweikh2/schweikh2.c) ([index.html](1998/schweikh2/index.html]))
+
[Cody](#cody) fixed the code to not trigger an internal compiler error in gcc:
@@ -2510,7 +2788,9 @@ question.
Cody also added the [try.sh](1998/schweikh2/try.sh) script.
-## [1998/schweikh3](1998/schweikh3/schweikh3.c) ([index.html](1998/schweikh3/index.html]))
+
+## [1998/schweikh3](1998/schweikh3/schweikh3.c) ([index.html](1998/schweikh3/index.html]))
+
[Cody](#cody) added the [alternate code](1998/schweikh3/index.html#alternate-code) which allows one
to reconfigure the size constant in the rare case that the author wrote about
@@ -2545,7 +2825,9 @@ 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.
-## [1998/tomtorfs](1998/tomtorfs/tomtorfs.c) ([index.html](1998/tomtorfs/index.html]))
+
+## [1998/tomtorfs](1998/tomtorfs/tomtorfs.c) ([index.html](1998/tomtorfs/index.html]))
+
[Cody](#cody) fixed the assumption that `EOF` is `-1` (the author noted that it assumes
it is `-1` and it's indeed a valid concern as the standard only guarantees that
@@ -2560,10 +2842,14 @@ Cody also added the [try.sh](1998/tomtorfs/try.sh) script to try out a few
commands that we recommended.
-# 2000
+
+# 2000
+
-## [2000/anderson](2000/anderson/anderson.c) ([index.html](2000/anderson/index.html]))
+
+## [2000/anderson](2000/anderson/anderson.c) ([index.html](2000/anderson/index.html]))
+
[Cody](#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)`.
@@ -2571,14 +2857,18 @@ changing the `K` arg to `gets(3)` to `&K` in `fgets(3)`.
Cody also added the [try.sh](2000/anderson/try.sh) script.
-## [2000/bmeyer](2000/bmeyer/bmeyer.c) ([index.html](2000/bmeyer/index.html]))
+
+## [2000/bmeyer](2000/bmeyer/bmeyer.c) ([index.html](2000/bmeyer/index.html]))
+
[Cody](#cody) added the [try.sh](2000/bmeyer/try.sh) script with some improvements to the
commands we recommended like not assuming the number of columns one has in their
terminal.
-## [2000/briddlebane](2000/briddlebane/briddlebane.c) ([index.html](2000/briddlebane/index.html]))
+
+## [2000/briddlebane](2000/briddlebane/briddlebane.c) ([index.html](2000/briddlebane/index.html]))
+
[Cody](#cody) fixed this to compile in systems that require one to explicitly link in
`libm`.
@@ -2587,14 +2877,18 @@ Cody also added the [try.sh](2000/briddlebane/try.sh) script for those who are
feeling a bit too confident, cocky or even happy :-)
-## [2000/dhyang](2000/dhyang/dhyang.c) ([index.html](2000/dhyang/index.html]))
+
+## [2000/dhyang](2000/dhyang/dhyang.c) ([index.html](2000/dhyang/index.html]))
+
[Cody](#cody) made this more portable by changing the `void main` to `int main`.
He also added the [try.sh](2000/dhyang/try.sh) script.
-## [2000/dlowe](2000/dlowe/dlowe.c) ([index.html](2000/dlowe/index.html]))
+
+## [2000/dlowe](2000/dlowe/dlowe.c) ([index.html](2000/dlowe/index.html]))
+
[Cody](#cody) fixed this to compile with more recent perl versions; the symbol that's now
`PL_na` was once `na`. He notes that this entry crashes under macOS but it works
@@ -2603,13 +2897,17 @@ under Linux after this change.
Cody also added the [try.sh](2000/dlowe/try.sh) script.
-## [2000/jarijyrki](2000/jarijyrki/jarijyrki.c) ([index.html](2000/jarijyrki/index.html]))
+
+## [2000/jarijyrki](2000/jarijyrki/jarijyrki.c) ([index.html](2000/jarijyrki/index.html]))
+
[Cody](#cody) made it easier to compile this in some cases by adding `X11/` to the
includes of `Xlib.h` and `keysym.h`.
-## [2000/natori](2000/natori/natori.c) ([index.html](2000/natori/index.html]))
+
+## [2000/natori](2000/natori/natori.c) ([index.html](2000/natori/index.html]))
+
[Cody](#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).
@@ -2634,19 +2932,25 @@ variable which although works it is incongruent with the other Makefiles and is
more confusing (even if not confusing).
-##
+
[Cody](#cody) made this more portable by changing the `void main` to `int main`.
Cody also added the [try.sh](2000/primenum/try.sh) script.
-## [2000/rince](2000/rince/rince.c) ([index.html](2000/rince/index.html]))
+
+## [2000/rince](2000/rince/rince.c) ([index.html](2000/rince/index.html]))
+
[Cody](#cody) added the [try.sh](2000/rince/try.sh) script.
-## [2000/robison](2000/robison/robison.c) ([index.html](2000/robison/index.html]))
+
+## [2000/robison](2000/robison/robison.c) ([index.html](2000/robison/index.html]))
+
[Cody](#cody) fixed an infinite loop that occurred if invalid input was entered, flooding
the screen with:
@@ -2660,12 +2964,16 @@ on it to assign to the `int`s, much like with `1987/lievaart`. The strings are
`char[5]` and the `%` specifier is `%4s` which is enough for the game.
-## [2000/schneiderwent](2000/schneiderwent/schneiderwent.c) ([index.html](2000/schneiderwent/index.html]))
+
+## [2000/schneiderwent](2000/schneiderwent/schneiderwent.c) ([index.html](2000/schneiderwent/index.html]))
+
[Cody](#cody) added the [try.sh](2000/schneiderwent/try.sh) script.
-## [2000/thadgavin](2000/thadgavin/thadgavin.c) ([index.html](2000/thadgavin/index.html]))
+
+## [2000/thadgavin](2000/thadgavin/thadgavin.c) ([index.html](2000/thadgavin/index.html]))
+
[Cody](#cody) fixed the code and added an appropriate make rule so that the
[SDL](https://www.libsdl.org) version works independent from the curses version
@@ -2708,7 +3016,9 @@ the curses and the SDL versions as Cody does not have a DOS system to test the
other version in.
-## [2000/tomx](2000/tomx/tomx.c) ([index.html](2000/tomx/index.html]))
+
+## [2000/tomx](2000/tomx/tomx.c) ([index.html](2000/tomx/index.html]))
+
[Cody](#cody) added the [alt 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
@@ -2719,10 +3029,14 @@ 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.
-# 2001
+
+# 2001
+
-## [2001/anonymous](2001/anonymous/anonymous.c) ([index.html](2001/anonymous/index.html]))
+
+## [2001/anonymous](2001/anonymous/anonymous.c) ([index.html](2001/anonymous/index.html]))
+
[Cody](#cody) fixed both the supplementary program and the program itself (both of which
segfaulted and once that was fixed only the binary was modified; it was not run
@@ -2808,7 +3122,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.
-## [2001/bellard](2001/bellard/bellard.c) ([index.html](2001/bellard/index.html]))
+
+## [2001/bellard](2001/bellard/bellard.c) ([index.html](2001/bellard/index.html]))
+
[Cody](#cody) fixed this to compile with clang but according to the author this will not
work without i386 Linux. It generates i386 32-bit code (not bytecode) but
@@ -2854,7 +3170,9 @@ compiler that does not support this would not work. Thus we use the modification
by Yusuke.
-## [2001/cheong](2001/cheong/cheong.c) ([index.html](2001/cheong/index.html]))
+
+## [2001/cheong](2001/cheong/cheong.c) ([index.html](2001/cheong/index.html]))
+
[Cody](#cody) fixed this to work with clang by adding another function that is allowed to
have a third arg as an int, not a `char **. He chose `pain()` because it's a four
@@ -2867,7 +3185,9 @@ Cody also added the [try.sh](2001/cheong/try.sh) script.
He also fixed it to check the number of args.
-## [2001/coupard](2001/coupard/coupard.c) ([index.html](2001/coupard/index.html]))
+
+## [2001/coupard](2001/coupard/coupard.c) ([index.html](2001/coupard/index.html]))
+
[Cody](#cody) added a value to `return` in `main()` to make it more portable.
@@ -2897,7 +3217,9 @@ sound devices in macOS).
Cody added the [try.sh](2001/coupard/try.sh).
-## [2001/ctk](2001/ctk/ctk.c) ([index.html](2001/ctk/index.html]))
+
+## [2001/ctk](2001/ctk/ctk.c) ([index.html](2001/ctk/index.html]))
+
The ANSI escape codes were no longer valid but [Yusuke](#yusuke) provided a patch to fix
the ANSI escape codes. This works with both Linux and macOS.
@@ -2911,7 +3233,9 @@ Cody also added the [alt code](2001/ctk/index.html#alternate-code) that adds
vi(m) movement keys.
-## [2001/dgbeards](2001/dgbeards/dgbeards.c) ([index.html](2001/dgbeards/index.html]))
+
+## [2001/dgbeards](2001/dgbeards/dgbeards.c) ([index.html](2001/dgbeards/index.html]))
+
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 which does the former but he felt
@@ -2922,7 +3246,9 @@ He also points out that there is a way to get the computer to automatically lose
very quickly. Do you know what it is?
-## [2001/herrmann1](2001/herrmann1/herrmann1.c) ([index.html](2001/herrmann1/index.html]))
+
+## [2001/herrmann1](2001/herrmann1/herrmann1.c) ([index.html](2001/herrmann1/index.html]))
+
[Cody](#cody) fixed this so that the when compiling the code the program is not executed
itself by itself which just showed the usage string and exited. The [script
@@ -2946,7 +3272,9 @@ errors/warnings.
Cody also added the [try.sh](2001/herrmann1/try.sh) script.
-## [2001/herrmann2](2001/herrmann2/herrmann2.c) ([index.html](2001/herrmann2/index.html]))
+
+## [2001/herrmann2](2001/herrmann2/herrmann2.c) ([index.html](2001/herrmann2/index.html]))
+
[Cody](#cody) fixed this to work with both 64-bit and 32-bit compilers by changing most
of the `int`s (all but that in `main(int ...)`) to `long`s. He also fixed it to
@@ -2961,7 +3289,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.
-## [2001/kev](2001/kev/kev.c) ([index.html](2001/kev/index.html]))
+
+## [2001/kev](2001/kev/kev.c) ([index.html](2001/kev/index.html]))
+
[Cody](#cody) improved the Makefile to allow one to more easily set up the port,
speed and `socket(2)` call that the author had set up.
@@ -2981,7 +3311,9 @@ 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`.
-## [2001/ollinger](2001/ollinger/ollinger.c) ([index.html](2001/ollinger/index.html))
+
+## [2001/ollinger](2001/ollinger/ollinger.c) ([index.html](2001/ollinger/index.html))
+
[Cody](#cody) added the [try.sh](2001/ollinger/try.sh) script.
@@ -2990,7 +3322,9 @@ done at a time where it was said to be a bug that should be fixed, for better or
worse.
-## [2001/schweikh](2001/schweikh/schweikh.c) ([index.html](2001/schweikh/index.html]))
+
+## [2001/schweikh](2001/schweikh/schweikh.c) ([index.html](2001/schweikh/index.html]))
+
[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
@@ -2999,7 +3333,9 @@ index.html for details.
Cody also added the [try.sh](2001/schweikh/try.sh) script.
-## [2001/westley](2001/westley/westley.c) ([index.html](2001/westley/index.html]))
+
+## [2001/westley](2001/westley/westley.c) ([index.html](2001/westley/index.html]))
+
[Cody](#cody) added the script [try.sh](2001/westley/try.sh) to automate a heap of commands
that we, the IOCCC judges, suggested, as well as some additional ones that he
@@ -3007,15 +3343,21 @@ thought would be fun. He also provided the sort and punch card versions,
described in the index.html, based on the author's remarks.
-# 2004
+
+# 2004
+
-## [2004/anonymous](2004/anonymous/anonymous.c) ([index.html](2004/anonymous/index.html]))
+
+## [2004/anonymous](2004/anonymous/anonymous.c) ([index.html](2004/anonymous/index.html]))
+
[Cody](#cody) added the [try.sh](2004/anonymous/try.sh) script.
-## [2004/arachnid](2004/arachnid/arachnid.c) ([index.html](2004/arachnid/index.html]))
+
+## [2004/arachnid](2004/arachnid/arachnid.c) ([index.html](2004/arachnid/index.html]))
+
[Cody](#cody) added an [alternate version](2004/arachnid/index.html#alternate-code) which
allows those like himself used to `h`, `j`, `k` and `l` movement keys to not get
@@ -3028,7 +3370,9 @@ file but a maze file. The extension `.maz` was not chosen to help with (some?)
browsers knowing what to do with it.
-## [2004/burley](2004/burley/burley.c) ([index.html](2004/burley/index.html]))
+
+## [2004/burley](2004/burley/burley.c) ([index.html](2004/burley/index.html]))
+
[Cody](#cody) fixed this to compile with clang and to work with both gcc and
clang (even after fixing it to compile with clang it did not work properly).
@@ -3063,7 +3407,9 @@ Finally the optimiser cannot be enabled so the compiler flags were changed for
this, forcing `-O0`.
-## [2004/gavare](2004/gavare/gavare.c) ([index.html](2004/gavare/index.html]))
+
+## [2004/gavare](2004/gavare/gavare.c) ([index.html](2004/gavare/index.html]))
+
[Cody](#cody) added three different [alternate
versions](2004/gavare/index.html#alternate-code):
@@ -3078,7 +3424,9 @@ that was used during development, found on their [website about the
entry](https://gavare.se/ioccc/ioccc_gavare.c.html).
-## [2004/gavin](2004/gavin/gavin.c) ([index.html](2004/gavin/index.html]))
+
+## [2004/gavin](2004/gavin/gavin.c) ([index.html](2004/gavin/index.html]))
+
[Cody](#cody) provided the [alt 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
@@ -3092,7 +3440,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.
-## [2004/hibachi](2004/hibachi/hibachi.c) ([index.html](2004/hibachi/index.html]))
+
+## [2004/hibachi](2004/hibachi/hibachi.c) ([index.html](2004/hibachi/index.html]))
+
[Cody](#cody) fixed a bunch of links in the index.html provided with the entry
(web server) that no longer exist or have changed in some other way (`https`
@@ -3101,12 +3451,16 @@ all that was necessary but at least one or two URLs required the Internet
Wayback Machine.
-## [2004/hoyle](2004/hoyle/hoyle.c) ([index.html](2004/hoyle/index.html]))
+
+## [2004/hoyle](2004/hoyle/hoyle.c) ([index.html](2004/hoyle/index.html]))
+
[Cody](#cody) added the [try.sh](2004/hoyle/try.sh) script.
-## [2004/jdalbec](2004/jdalbec/jdalbec.c) ([index.html](2004/jdalbec/index.html))
+
+## [2004/jdalbec](2004/jdalbec/jdalbec.c) ([index.html](2004/jdalbec/index.html))
+
[Cody](#cody) fixed this to compile with gcc (it worked with clang). The problem was the
cpp being unable to parse the generated code (see the index.html for details) and
@@ -3141,7 +3495,9 @@ Finally Cody added [try.sh](2004/jdalbec/try.sh) and
[try.alt.sh](2004/jdalbec/try.alt.sh) to demonstrate both versions.
-## [2004/kopczynski](2004/kopczynski/kopczynski.c) ([index.html](2004/kopczynski/index.html]))
+
+## [2004/kopczynski](2004/kopczynski/kopczynski.c) ([index.html](2004/kopczynski/index.html]))
+
[Cody](#cody) reported that this entry cannot be optimised by the compiler as otherwise
it will not work.
@@ -3157,7 +3513,9 @@ the data files reversed with `rev(1)`. One had to be modified additionally to
get it to work, that being `kopczynski-10-rev`.
-## [2004/newbern](2004/newbern/newbern.c) ([index.html](2004/newbern/index.html]))
+
+## [2004/newbern](2004/newbern/newbern.c) ([index.html](2004/newbern/index.html]))
+
[Cody](#cody) and Landon individually fixed this to work with clang.
@@ -3166,12 +3524,16 @@ that the author referred to and was documented by [Yusuke](#yusuke) though Cody
chose the word `IOCCC` instead of `AAA`).
-## [2004/omoikane](2004/omoikane/omoikane.c) ([index.html](2004/omoikane/index.html]))
+
+## [2004/omoikane](2004/omoikane/omoikane.c) ([index.html](2004/omoikane/index.html]))
+
[Cody](#cody) added the [try.sh](2004/omoikane/try.sh) script.
-## [2004/schnitzi](2004/schnitzi/schnitzi.c) ([index.html](2004/schnitzi/index.html]))
+
+## [2004/schnitzi](2004/schnitzi/schnitzi.c) ([index.html](2004/schnitzi/index.html]))
+
[Cody](#cody) made this use `fgets(3)`.
@@ -3182,7 +3544,9 @@ fast in modern systems, especially the scrolling text of
Cody also added the [try.sh](2004/schnitzi/try.sh) script.
-## [2004/sds](2004/sds/sds.c) ([index.html](2004/sds/index.html))
+
+## [2004/sds](2004/sds/sds.c) ([index.html](2004/sds/index.html))
+
[Cody](#cody) added the [try.sh](2004/sds/try.sh) script.
@@ -3191,7 +3555,9 @@ Cody made a copy of the older README.md file into `README_sds.txt` and added tha
to the repo for the script instead.
-## [2004/vik2](2004/vik2/vik2.c) ([index.html](2004/vik2/index.html))
+
+## [2004/vik2](2004/vik2/vik2.c) ([index.html](2004/vik2/index.html))
+
[Cody](#cody) fixed this to compile in Linux. Although it compiled cleanly in macOS (and
BSD?) the code failed to compile at all in Linux due to:
@@ -3251,10 +3617,14 @@ Cody also made it so that the `FNAME` is (for the entry file itself and
just to make it a bit easier to compile.
-# 2005
+
+# 2005
+
-## [2005/aidan](2005/aidan/aidan.c) ([index.html](2005/aidan/index.html]))
+
+## [2005/aidan](2005/aidan/aidan.c) ([index.html](2005/aidan/index.html]))
+
[Cody](#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
@@ -3273,7 +3643,9 @@ Cody added the `make test` and `make test-n0` rules for easier use of the test
suite.
-## [2005/anon](2005/anon/anon.c) ([index.html](2005/anon/index.html]))
+
+## [2005/anon](2005/anon/anon.c) ([index.html](2005/anon/index.html]))
+
[Cody](#cody) fixed a problem where in some systems (like macOS) the `stty sane` would
not work and end up causing a bus error. Instead of `stty sane` it uses `stty
@@ -3287,7 +3659,9 @@ Cody added the [alt code](2005/anon/index.html#alternate-code) with vi(m) like
movements.
-## [2005/boutines](2005/boutines/boutines.c) ([index.html](2005/boutines/index.html]))
+
+## [2005/boutines](2005/boutines/boutines.c) ([index.html](2005/boutines/index.html]))
+
[Cody](#cody) added the [input.txt](2005/boutines/input.txt) data file based on suggested
input from the author, adapting it to a command to try out.
@@ -3295,7 +3669,9 @@ input from the author, adapting it to a command to try out.
Cody also added the [try.sh](2005/boutines/try.sh) script.
-## [2005/giljade](2005/giljade/giljade.c) ([index.html](2005/giljade/index.html]))
+
+## [2005/giljade](2005/giljade/giljade.c) ([index.html](2005/giljade/index.html]))
+
After Landon fixed the entry to compile with clang [Cody](#cody) noticed this
does not work at all in modern systems (see below). He fixed this to work and
@@ -3363,19 +3739,25 @@ program generates as the author states, 180. If it does not find 180 it is an
error; otherwise it is success. It uses [test.sh](2005/giljade/test.sh).
-## [2005/jetro](2005/jetro/jetro.c) ([index.html](2005/jetro/index.html))
+
+## [2005/jetro](2005/jetro/jetro.c) ([index.html](2005/jetro/index.html))
+
[Cody](#cody) added explicit linking of libm (`-lm`) for systems like Linux that seem to
not do it implicitly (like macOS does).
-## [2005/klausler](2005/klausler/klausler.c) ([index.html](2005/klausler/index.html))
+
+## [2005/klausler](2005/klausler/klausler.c) ([index.html](2005/klausler/index.html))
+
[Cody](#cody) added the [try.sh](2005/klausler/try.sh) script.
-## [2005/mikeash](2005/mikeash/mikeash.c) ([index.html](2005/mikeash/index.html))
+
+## [2005/mikeash](2005/mikeash/mikeash.c) ([index.html](2005/mikeash/index.html))
+
[Cody](#cody) fixed this to work in Linux. The problem was an unknown escape sequence,
`\N`, which caused a funny compiler error:
@@ -3407,7 +3789,9 @@ also show correct output though.
Cody also added the [try.sh](2005/mikeash/try.sh) script.
-## [2005/mynx](2005/mynx/mynx.c) ([index.html](2005/mynx/index.html]))
+
+## [2005/mynx](2005/mynx/mynx.c) ([index.html](2005/mynx/index.html]))
+
[Cody](#cody) fixed this so that the [configure](source/configure) script (which is not
needed but part of the entry) would work with compilers that have by default
@@ -3419,7 +3803,9 @@ might be some command line that will let it work that way or perhaps someone
wants to add the necessary code.
-## [2005/persano](2005/persano/persano.c) ([index.html](2005/persano/index.html]))
+
+## [2005/persano](2005/persano/persano.c) ([index.html](2005/persano/index.html]))
+
[Cody](#cody) added the (untested) [alternate
code](2005/persano/index.html#alternate-code) which should work for Windows as it
@@ -3429,7 +3815,9 @@ test it on.
Cody also added the [try.sh](2005/persano/try.sh) script.
-## [2005/sykes](2005/sykes/sykes.c) ([index.html](2005/sykes/index.html]))
+
+## [2005/sykes](2005/sykes/sykes.c) ([index.html](2005/sykes/index.html]))
+
[Cody](#cody) added the saved (with the `SAVE` command) BASIC program `PET` which was:
@@ -3468,14 +3856,18 @@ 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.
-## [2005/timwi](2005/timwi/timwi.c) ([index.html](2005/timwi/index.html]))
+
+## [2005/timwi](2005/timwi/timwi.c) ([index.html](2005/timwi/index.html]))
+
[Cody](#cody) added [try.sh](2005/timwi/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. :-)
-## [2005/toledo](2005/toledo/toledo.c) ([index.html](2005/toledo/index.html))
+
+## [2005/toledo](2005/toledo/toledo.c) ([index.html](2005/toledo/index.html))
+
[Cody](#cody) fixed this to compile with some versions of clang which have an additional
defect where `main()` can only have 0, 2 or 3 args (it was 4). It now calls
@@ -3484,7 +3876,9 @@ another function that takes 4 args and which is what used to be `main()`.
The alternate versions were also fixed.
-## [2005/vince](2005/vince/vince.c) ([index.html](2005/vince/index.html))
+
+## [2005/vince](2005/vince/vince.c) ([index.html](2005/vince/index.html))
+
[Cody](#cody) fixed this in the case that the program is compiled or linked/copies to
another file name: the code constructed the source code file name in a clever
@@ -3497,10 +3891,14 @@ 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.
-# 2006
+
+# 2006
+
-## [2006/birken](2006/birken/birken.c) ([index.html](2006/birken/index.html]))
+
+## [2006/birken](2006/birken/birken.c) ([index.html](2006/birken/index.html]))
+
[Cody](#cody) fixed a segfault in macOS with this entry. The problem was a missing `+1`
for strlen() with malloc(). This prevented it from working.
@@ -3508,7 +3906,9 @@ for strlen() with malloc(). This prevented it from working.
Cody also added the [try.sh](2006/birken/try.sh) script.
-## [2006/borsanyi](2006/borsanyi/borsanyi.c) ([index.html](2006/borsanyi/index.html]))
+
+## [2006/borsanyi](2006/borsanyi/borsanyi.c) ([index.html](2006/borsanyi/index.html]))
+
[Cody](#cody) fixed the Makefile to work in systems where the `lpthread` is not
implicitly linked in.
@@ -3516,12 +3916,16 @@ implicitly linked in.
Cody also added the [try.sh](2006/borsanyi/try.sh) script.
-## [2006/grothe](2006/grothe/grothe.c) ([index.html](2006/grothe/index.html))
+
+## [2006/grothe](2006/grothe/grothe.c) ([index.html](2006/grothe/index.html))
+
[Cody](#cody) added the [try.sh](2006/grothe/try.sh) script.
-## [2006/hamre](2006/hamre/hamre.c) ([index.html](2006/hamre/index.html))
+
+## [2006/hamre](2006/hamre/hamre.c) ([index.html](2006/hamre/index.html))
+
[Cody](#cody) fixed this so that it will not crash without an arg after it was suggested
this should be fixed.
@@ -3529,7 +3933,9 @@ this should be fixed.
Cody also added the [try.sh](2006/hamre/try.sh) script.
-## [2006/monge](2006/monge/monge.c) ([index.html](2006/monge/index.html]))
+
+## [2006/monge](2006/monge/monge.c) ([index.html](2006/monge/index.html]))
+
[Cody](#cody) added the [alternate code](2006/monge/index.html#alternate-code) that lets
one resize the image and redefine the number of iterations.
@@ -3549,13 +3955,17 @@ feature but one which we will accept fixes to. See [2006/monge in
bugs.html](bugs.html#2006-monge).
-## [2006/night](2006/night/night.c) ([index.html](2006/night/index.html]))
+
+## [2006/night](2006/night/night.c) ([index.html](2006/night/index.html]))
+
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](2006/night/night.alt.c).
-## [2006/sloane](2006/sloane/sloane.c) ([index.html](2006/sloane/index.html]))
+
+## [2006/sloane](2006/sloane/sloane.c) ([index.html](2006/sloane/index.html]))
+
[Cody](#cody) fixed this entry to work with clang which has a defect with the args to
`main()`: it requires specific types: `int` and `char ** for the first and
@@ -3584,7 +3994,9 @@ Since the author suggested that the lack of certain `#include`s might break the
program in some systems he also added `-include ...` to the Makefile as well.
-## [2006/stewart](2006/stewart/stewart.c) ([index.html](2006/stewart/index.html]))
+
+## [2006/stewart](2006/stewart/stewart.c) ([index.html](2006/stewart/index.html]))
+
[Cody](#cody) added the [try.sh](2006/stewart/try.sh) script.
@@ -3593,7 +4005,9 @@ to read from the file. This was done at a time when it was considered to be a
bug to fix.
-## [2006/sykes1](2006/sykes1/sykes1.c) ([index.html](2006/sykes1/index.html]))
+
+## [2006/sykes1](2006/sykes1/sykes1.c) ([index.html](2006/sykes1/index.html]))
+
[Cody](#cody) provided the [alt code](2006/sykes1/index.html#alternate-code) based on the
author's remarks.
@@ -3606,7 +4020,9 @@ The video was also no longer available but Cody found an alternative and added
it to the repo as well.
-## [2006/sykes2](2006/sykes2/sykes2.c) ([index.html](2006/sykes2/index.html]))
+
+## [2006/sykes2](2006/sykes2/sykes2.c) ([index.html](2006/sykes2/index.html]))
+
[Cody](#cody), out of an abundance of caution for `clang`'s defects, made `main()` have
to args instead of 1 as some versions report that `main()` must have 0, 2 or 3
@@ -3616,12 +4032,16 @@ Cody also added the [try.sh](2006/sykes2/try.sh) script for easier use of the
entry to show the clock update in real time.
-## [2006/toledo1](2006/toledo1/toledo1.c) ([index.html](2006/toledo1/index.html]))
+
+## [2006/toledo1](2006/toledo1/toledo1.c) ([index.html](2006/toledo1/index.html]))
+
[Cody](#cody) added the [try.sh](2006/toledo1/try.sh) script.
-## [2006/toledo2](2006/toledo2/toledo2.c) ([index.html](2006/toledo2/index.html]))
+
+## [2006/toledo2](2006/toledo2/toledo2.c) ([index.html](2006/toledo2/index.html]))
+
[Cody](#cody) fixed a segfault in this program which was making it fail to work under
macOS - it did not seem to be a problem under Linux, at least not fedora. The
@@ -3640,7 +4060,9 @@ where appears the `IMPORT.COM` and `HALT.COM` files.
-## [2006/toledo3](2006/toledo3/toledo3.c) ([index.html](2006/toledo3/index.html]))
+
+## [2006/toledo3](2006/toledo3/toledo3.c) ([index.html](2006/toledo3/index.html]))
+
[Cody](#cody) fixed a crash and a display problem in this entry so that it now works in
modern (64-bit) systems. The crash appears to only occur in macOS but the fix
@@ -3653,20 +4075,28 @@ Cody also added the code that _should_ work for Windows,
We're not able to test this.
-# 2011
+
+# 2011
+
-## [2011/akari](2011/akari/akari.c) ([index.html](2011/akari/index.html]))
+
+## [2011/akari](2011/akari/akari.c) ([index.html](2011/akari/index.html]))
+
[Cody](#cody) added the [try.sh](2011/akari/try.sh) script.
-## [2011/blakely](2011/blakely/blakely.c) ([index.html](2011/blakely/index.html]))
+
+## [2011/blakely](2011/blakely/blakely.c) ([index.html](2011/blakely/index.html]))
+
[Cody](#cody) added the [try.sh](2011/blakely/try.sh) script.
-## [2011/borsanyi](2011/borsanyi/borsanyi.c) ([index.html](2011/borsanyi/index.html]))
+
+## [2011/borsanyi](2011/borsanyi/borsanyi.c) ([index.html](2011/borsanyi/index.html]))
+
[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
@@ -3675,23 +4105,31 @@ the number of args as well.
Cody also added the [try.sh](2011/borsanyi/try.sh) script.
-## [2011/dlowe](2011/dlowe/dlowe.c) ([index.html](2011/dlowe/index.html]))
+
+## [2011/dlowe](2011/dlowe/dlowe.c) ([index.html](2011/dlowe/index.html]))
+
[Cody](#cody) added the [try.sh](2011/dlowe/try.sh) script.
-## [2011/eastman](2011/eastman/eastman.c) ([index.html](2011/eastman/index.html]))
+
+## [2011/eastman](2011/eastman/eastman.c) ([index.html](2011/eastman/index.html]))
+
[Cody](#cody) added the video file [boing-ball.mp4](2011/eastman) which is the demo the
author referred to.
-## [2011/fredriksson](2011/fredriksson/fredriksson.c) ([index.html](2011/fredriksson/index.html]))
+
+## [2011/fredriksson](2011/fredriksson/fredriksson.c) ([index.html](2011/fredriksson/index.html]))
+
[Cody](#cody) added the [try.sh](2011/fredriksson/try.sh) script.
-## [2011/goren](2011/goren/goren.c) ([index.html](2011/goren/index.html]))
+
+## [2011/goren](2011/goren/goren.c) ([index.html](2011/goren/index.html]))
+
[Cody](#cody) fixed this for macOS. Before the fix it segfaulted. It worked fine under
Linux. After fixing it it was noticed that the author stated it does not work
@@ -3704,7 +4142,9 @@ Cody also added the [try.sh](2011/goren/try.sh) script.
Cody added the following words of wisdom: `'"this" is not a pipe but "!" is'`.
-## [2011/hamaji](2011/hamaji/hamaji.c) ([index.html](2011/hamaji/index.html]))
+
+## [2011/hamaji](2011/hamaji/hamaji.c) ([index.html](2011/hamaji/index.html]))
+
[Cody](#cody) added the [try.sh](2011/hamaji/try.sh) script and the `.nono` files
[conway-game-of-life.nono](2011/hamaji/conway-game-of-life.nono),
@@ -3716,12 +4156,16 @@ The latter two `.nono` files were taken from
and the others were from the authors' remarks.
-## [2011/hou](2011/hou/hou.c) ([index.html](2011/hou/index.html]))
+
+## [2011/hou](2011/hou/hou.c) ([index.html](2011/hou/index.html]))
+
[Cody](#cody) added the [try.sh](2011/hou/try.sh) script.
-## [2011/konno](2011/konno/konno.c) ([index.html](2011/konno/index.html]))
+
+## [2011/konno](2011/konno/konno.c) ([index.html](2011/konno/index.html]))
+
[Cody](#cody) fixed the program to not crash if no arg was specified as this was not a
documented feature.
@@ -3729,7 +4173,9 @@ documented feature.
Cody also added the [try.sh](2011/konno/try.sh) script.
-## [2011/richards](2011/richards/richards.c) ([index.html](2011/richards/index.html]))
+
+## [2011/richards](2011/richards/richards.c) ([index.html](2011/richards/index.html]))
+
[Cody](#cody) fixed a minor problem that showed up in both Linux and macOS. He notes
however that as of this time this entry does not work properly with macOS at
@@ -3748,7 +4194,9 @@ helpful to test any fixes for Apple silicon chips (see [2011/richards in
bugs.html](bugs.html#2011-richards) for more details).
-## [2011/toledo](2011/toledo/toledo.c) ([index.html](2011/toledo/index.html]))
+
+## [2011/toledo](2011/toledo/toledo.c) ([index.html](2011/toledo/index.html]))
+
[Cody](#cody) added two [alternate versions](2011/toledo/index.html#alternate-code): one that
lets one reconfigure the controls and also the size of the game and another
@@ -3759,7 +4207,9 @@ The Makefile was also modified by Cody to make it simpler to redefine the
controls, width and height.
-## [2011/vik](2011/vik/vik.c) ([index.html](2011/vik/index.html]))
+
+## [2011/vik](2011/vik/vik.c) ([index.html](2011/vik/index.html]))
+
[Cody](#cody) added the [try.sh](2011/vik/try.sh) script.
@@ -3768,7 +4218,9 @@ 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.
-## [2011/zucker](2011/zucker/zucker.c) ([index.html](2011/zucker/index.html]))
+
+## [2011/zucker](2011/zucker/zucker.c) ([index.html](2011/zucker/index.html]))
+
[Cody](#cody) added the [try.sh](2011/zucker/try.sh) script.
@@ -3781,10 +4233,14 @@ Cody also added the PDF file
eventually dies.
-# 2012
+
+# 2012
+
-## [2012/blakely](2012/blakely/blakely.c) ([index.html](2012/blakely/index.html))
+
+## [2012/blakely](2012/blakely/blakely.c) ([index.html](2012/blakely/index.html))
+
[Cody](#cody) added explicit linking of libm (`-lm`) as not all systems do this
implicitly (Linux doesn't seem to but macOS does).
@@ -3792,12 +4248,16 @@ implicitly (Linux doesn't seem to but macOS does).
Cody also added the [try.sh](2012/blakely/try.sh) script.
-## [2012/deckmyn](2012/deckmyn/deckmyn.c) ([index.html](2012/deckmyn/index.html]))
+
+## [2012/deckmyn](2012/deckmyn/deckmyn.c) ([index.html](2012/deckmyn/index.html]))
+
[Cody](#cody) added the [try.sh](2012/deckmyn/try.sh) script.
-## [2012/endoh1](2012/endoh1/endoh1.c) ([index.html](2012/endoh1/index.html))
+
+## [2012/endoh1](2012/endoh1/endoh1.c) ([index.html](2012/endoh1/index.html))
+
[Cody](#cody) added explicit linking of libm (`-lm`) as not all systems do this
implicitly (Linux doesn't seem to but macOS does).
@@ -3831,7 +4291,9 @@ The [endoh1.alt2.c](2012/endoh1/endoh1.alt2.c) was provided by the author,
[Yusuke](#yusuke), at the time of the contest as a de-obfuscated version.
-## [2012/endoh2](2012/endoh2/endoh2.c) ([index.html](2012/endoh2/index.html))
+
+## [2012/endoh2](2012/endoh2/endoh2.c) ([index.html](2012/endoh2/index.html))
+
[Cody](#cody) added the [try.sh](2012/endoh2/try.sh) script that runs
everything, filtered through less.
@@ -3840,7 +4302,9 @@ Cody also fixed a typo in the ruby script
[find-font-table.rb](2012/endoh2/find-font-table.rb).
-## [2012/grothe](2012/grothe/grothe.c) ([index.html](2012/grothe/index.html))
+
+## [2012/grothe](2012/grothe/grothe.c) ([index.html](2012/grothe/index.html))
+
[Cody](#cody) added the [try.sh](2012/grothe/try.sh) script.
@@ -3859,14 +4323,18 @@ recent domain. For historical purposes the old link was
which the recipe file now links to.
-## [2012/hamano](2012/hamano/hamano.c) ([index.html](2012/hamano/index.html]))
+
+## [2012/hamano](2012/hamano/hamano.c) ([index.html](2012/hamano/index.html]))
+
[Cody](#cody) added the [try.sh](2012/hamano/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.
-## [2012/hou](2012/hou/hou.c) ([index.html](2012/hou/index.html]))
+
+## [2012/hou](2012/hou/hou.c) ([index.html](2012/hou/index.html]))
+
[Cody](#cody) added the [try.sh](2012/hou/try.sh) script and restored the original [hint
markdown file](2012/hou/hint.html) as the changes made when converting to a GitHub
@@ -3875,7 +4343,9 @@ stylesheet etc. due to the fact that there is no `#` header (which specified
title and stylesheet) and other formatting changes.
-## [2012/kang](2012/kang/kang.c) ([index.html](2012/kang/index.html]))
+
+## [2012/kang](2012/kang/kang.c) ([index.html](2012/kang/index.html]))
+
[Cody](#cody) added alt code that fixes a problem where in German 'v' sounds like 'f'
which the program has as 'f': with the original version it would translate
@@ -3905,12 +4375,16 @@ show different languages and numbers with the submitted and alternate version
respectively. Notice how a single letter changes so much!
-## [2012/konno](2012/konno/konno.c) ([index.html](2012/konno/index.html]))
+
+## [2012/konno](2012/konno/konno.c) ([index.html](2012/konno/index.html]))
+
[Cody](#cody) added the [try.sh](2012/konno/try.sh) script.
-## [2012/omoikane](2012/omoikane/omoikane.c) ([index.html](2012/omoikane/index.html]))
+
+## [2012/omoikane](2012/omoikane/omoikane.c) ([index.html](2012/omoikane/index.html]))
+
[Cody](#cody) added the [alternate versions](2012/omoikane/index.html#alternate-code)
which will, if no arg is specified, read in the program itself, rather than
@@ -3923,12 +4397,16 @@ Cody also added the [try.sh](2012/omoikane/try.sh) and
[try.alt.sh](2012/omoikane/try.alt.sh) scripts.
-## [2012/tromp](2012/tromp/tromp.c) ([index.html](2012/tromp/index.html))
+
+## [2012/tromp](2012/tromp/tromp.c) ([index.html](2012/tromp/index.html))
+
[Cody](#cody) added the [try.sh](2012/tromp/try.sh) script.
-## [2012/vik](2012/vik/vik.c) ([index.html](2012/vik/index.html]))
+
+## [2012/vik](2012/vik/vik.c) ([index.html](2012/vik/index.html]))
+
[Cody](#cody) added the [try.sh](2012/vik/try.sh) script.
@@ -3937,7 +4415,9 @@ for Windows. With his instructions Cody also added the alternate version that
does this for the few who might use Windows.
-## [2012/zeitak](2012/zeitak/zeitak.c) ([index.html](2012/zeitak/index.html]))
+
+## [2012/zeitak](2012/zeitak/zeitak.c) ([index.html](2012/zeitak/index.html]))
+
[Cody](#cody) [test.sh](2012/zeitak/test.sh) script and the `make test` rule
that uses the script along with a number of files that will correctly be flagged
@@ -3953,10 +4433,14 @@ 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.
-# 2013
+
+# 2013
+
-## [2013/birken](2013/birken/birken.c) ([index.html](2013/birken/index.html]))
+
+## [2013/birken](2013/birken/birken.c) ([index.html](2013/birken/index.html]))
+
[Cody](#cody) changed the `return 0;` at the end of the program to be `return
system("reset");` (via redefining `exit(3)` so that the column ending would be
@@ -3974,18 +4458,24 @@ Cody also added the [try.sh](2013/birken/try.sh) script for the entry and the
[try.alt.sh](2013/birken/try.alt.sh) script for the alt code.
-## [2013/cable1](2013/cable1/cable1.c) ([index.html](2013/cable1/index.html]))
+
+## [2013/cable1](2013/cable1/cable1.c) ([index.html](2013/cable1/index.html]))
+
[Cody](#cody) added the [try.sh](2013/cable1/try.sh) script which also has an
joke Easter egg in it based on the judges' remarks.
-## [2013/cable2](2013/cable2/cable2.c) ([index.html](2013/cable2/index.html]))
+
+## [2013/cable2](2013/cable2/cable2.c) ([index.html](2013/cable2/index.html]))
+
[Cody](#cody) added the [try.sh](2013/cable2/try.sh) script.
-## [2013/cable3](2013/cable3/cable3.c) ([index.html](2013/cable3/index.html]))
+
+## [2013/cable3](2013/cable3/cable3.c) ([index.html](2013/cable3/index.html]))
+
[Cody](#cody) fixed this to compile with modern systems. The problems were that
`localtime()` is used differently and `time.h` being included (with
@@ -4024,7 +4514,9 @@ entry](https://github.com/adriancable/8086tiny/tree/master), and the 'ready-made
author linked to at `https://bitly.com/1bU8URK`.
-## [2013/dlowe](2013/dlowe/dlowe.c) ([index.html](2013/dlowe/index.html))
+
+## [2013/dlowe](2013/dlowe/dlowe.c) ([index.html](2013/dlowe/index.html))
+
[Cody](#cody) added the source code that we suggested one should compile and run with
different compilers as [fun.c](2013/dlowe/fun.c). He modified the Makefile so
@@ -4049,12 +4541,16 @@ He also added the [diff.sh](2013/dlowe/diff.sh) script which is based on some
commands to try that he suggested to see how different lengths look.
-## [2013/endoh1](2013/endoh1/endoh1.c) ([index.html](2013/endoh1/index.html))
+
+## [2013/endoh1](2013/endoh1/endoh1.c) ([index.html](2013/endoh1/index.html))
+
[Cody](#cody) added the [try.sh](2013/endoh1/try.sh) script.
-## [2013/endoh2](2013/endoh2/endoh2.c) ([index.html](2013/endoh2/index.html))
+
+## [2013/endoh2](2013/endoh2/endoh2.c) ([index.html](2013/endoh2/index.html))
+
[Cody](#cody) fixed the Makefile `check` rule so that it `checks` :-) that both
[Ruby](https://www.ruby-lang.org) and [ImageMagick](https://imagemagick.org) are
@@ -4076,7 +4572,9 @@ not found.
The entry can still be enjoyed if you do not have these tools, however.
-## [2013/endoh3](2013/endoh3/endoh3.c) ([index.html](2013/endoh3/index.html))
+
+## [2013/endoh3](2013/endoh3/endoh3.c) ([index.html](2013/endoh3/index.html))
+
[Cody](#cody) added the [try.sh](2013/endoh3/try.sh) script.
@@ -4084,7 +4582,9 @@ 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()`.
-## [2013/endoh4](2013/endoh4/endoh4.c) ([index.html](2013/endoh4/index.html))
+
+## [2013/endoh4](2013/endoh4/endoh4.c) ([index.html](2013/endoh4/index.html))
+
[Cody](#cody) added the [endoh4.sh](2013/endoh4/endoh4.sh) script which temporarily
turns off the cursor as suggested by the author, with the addition that if no
@@ -4098,7 +4598,9 @@ author's remarks for more details on what this means). The `endoh4.sh` script
allows one to redefine it as well.
-## [2013/hou](2013/hou/hou.c) ([index.html](2013/hou/index.html))
+
+## [2013/hou](2013/hou/hou.c) ([index.html](2013/hou/index.html))
+
[Cody](#cody) fixed the Makefile so that this would work properly. Before this
the use of the program just did what the judges' remarks said as far as how it
@@ -4133,7 +4635,9 @@ this broke `make` which Cody also fixed.
Cody also added the [try.sh](2013/hou/try.sh) script.
-## [2013/mills](2013/mills/mills.c) ([index.html)[2013/mills/index.html))
+
+## [2013/mills](2013/mills/mills.c) ([index.html)[2013/mills/index.html))
+
[Cody](#cody) fixed this so that the server would not refuse the connection
after the first call to `close(2)`. The problem was that because the backlog to
@@ -4143,12 +4647,16 @@ this was specific to macOS but it was not specific to a browser as Safari and
Firefox both had the problem.
-## [2013/misaka](2013/misaka/misaka.c) ([index.html)[2013/misaka/index.html))
+
+## [2013/misaka](2013/misaka/misaka.c) ([index.html)[2013/misaka/index.html))
+
[Cody](#cody) added the [try.sh](2013/misaka/try.sh) script.
-## [2013/morgan1](2013/morgan1/morgan1.c) ([index.html](2013/morgan1/index.html))
+
+## [2013/morgan1](2013/morgan1/morgan1.c) ([index.html](2013/morgan1/index.html))
+
[Cody](#cody) added explicit linking of libm (`-lm`) as not all systems do this
implicitly (Linux doesn't seem to but macOS does).
@@ -4156,15 +4664,21 @@ implicitly (Linux doesn't seem to but macOS does).
Cody also added the [try.sh](2013/morgan1/try.sh) script.
-## [2013/robison](2013/robison/robison.c) ([index.html](2013/robison/index.html))
+
+## [2013/robison](2013/robison/robison.c) ([index.html](2013/robison/index.html))
+
[Cody](#cody) added the [try.sh](2013/robison/try.sh) script.
-# 2014
+
+# 2014
+
-## [2014/birken](2014/birken/prog.c) ([index.html](2014/birken/index.html))
+
+## [2014/birken](2014/birken/prog.c) ([index.html](2014/birken/index.html))
+
[Cody](#cody) provided the [alternate
code](2014/birken/index.html#alternate-code) that lets one redefine the port to
@@ -4175,7 +4689,9 @@ details on this macro). The Makefile was made to use variables so it's easier to
redefine the port and timing constant.
-## [2014/deak](2014/deak/prog.c) ([index.html](2014/deak/index.html))
+
+## [2014/deak](2014/deak/prog.c) ([index.html](2014/deak/index.html))
+
[Cody](#cody) added [alt code](2014/deak/index.html#alternate-code) that lets
one (via the Makefile) reconfigure the coordinates but instead of being a
@@ -4195,7 +4711,9 @@ that was fixed and it also has `#include ` for `putchar(3)`. The
Cody also added the [try.alt.sh](2014/deak/try.alt.sh) script.
-## [2014/endoh1](2014/endoh1/prog.c) ([index.html](2014/endoh1/index.html]))
+
+## [2014/endoh1](2014/endoh1/prog.c) ([index.html](2014/endoh1/index.html]))
+
[Cody](#cody) added the [rake.sh](2014/endoh1/rake.sh) script and `make rake`
rule that runs the script. This script will check that `rake` is installed and
@@ -4214,12 +4732,16 @@ file to [spoilers.html](2014/endoh1/spoilers.html) to be clearer in its purpose
it is a file with spoilers (and too close to index.html?).
-## [2014/endoh2](2014/endoh2/prog.c) ([index.html](2014/endoh2/index.html]))
+
+## [2014/endoh2](2014/endoh2/prog.c) ([index.html](2014/endoh2/index.html]))
+
[Cody](#cody) added the [try.sh](2014/endoh2/try.sh) script.
-## [2014/maffiodo1](2014/maffiodo1/prog.c) ([index.html](2014/maffiodo1/index.html]))
+
+## [2014/maffiodo1](2014/maffiodo1/prog.c) ([index.html](2014/maffiodo1/index.html]))
+
[Cody](#cody) fixed the build for this entry: it does not require
[SDL2](https://www.libsdl.org) but SDL1 so there were linking errors.
@@ -4231,7 +4753,9 @@ Great Giana Sisters](http://en.wikipedia.org/wiki/The_Great_Giana_Sisters), but
which let one configure the width and height of the game.
-## [2014/maffiodo2](2014/maffiodo2/prog.c) ([index.html](2014/maffiodo2/index.html]))
+
+## [2014/maffiodo2](2014/maffiodo2/prog.c) ([index.html](2014/maffiodo2/index.html]))
+
[Cody](#cody) added the [try.sh](2014/maffiodo2/try.sh) script.
@@ -4239,12 +4763,16 @@ He also added the [alternate code](2014/maffiodo2/index.html#alternate-code)
provided by the author.
-## [2014/morgan](2014/morgan/prog.c) ([index.html](2014/morgan/index.html))
+
+## [2014/morgan](2014/morgan/prog.c) ([index.html](2014/morgan/index.html))
+
[Cody](#cody) added the [try.sh](2014/morgan/try.sh) script.
-## [2014/sinon](2014/sinon/prog.c) ([index.html](2014/sinon/index.html))
+
+## [2014/sinon](2014/sinon/prog.c) ([index.html](2014/sinon/index.html))
+
[Cody](#cody) fixed the code so that the game can play automatically like it
once did. The problem is that it expects a certain file name which was
@@ -4261,7 +4789,9 @@ 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).
-## [2014/skeggs](2014/skeggs/prog.c) ([index.html](2014/skeggs/index.html))
+
+## [2014/skeggs](2014/skeggs/prog.c) ([index.html](2014/skeggs/index.html))
+
[Cody](#cody) fixed the Makefile to compile this entry in modern systems. The problem was
that the `CDEFINE` variable in the Makefile was missing `'`s: the `#define CC`
@@ -4279,7 +4809,9 @@ the index.html file for details) so Cody made sure that `make clobber` (via `mak
clean`) removes those files and so that they are ignored by `.gitignore`.
-## [2014/vik](2014/vik/prog.c) ([index.html](2014/vik/index.html))
+
+## [2014/vik](2014/vik/prog.c) ([index.html](2014/vik/index.html))
+
[Cody](#cody) added the [try.sh](2014/vik/try.sh) script. Cody notes that there
is a bug that will show itself as one of the features does not work right. The
@@ -4291,7 +4823,9 @@ theoretically work for Microsoft Windows compilers (if anything works in Windows
that would break it we do not know.
-## [2014/wiedijk](2014/wiedijk/prog.c) ([index.html](2014/wiedijk/index.html))
+
+## [2014/wiedijk](2014/wiedijk/prog.c) ([index.html](2014/wiedijk/index.html))
+
[Cody](#cody) added the [try.sh](2014/wiedijk/try.sh) script which is based on
the command to try in the 'try' section but improved so one can more easily
@@ -4301,10 +4835,14 @@ executable and it pipes it through less as it's longer than a page worth of
output.
-# 2015
+
+# 2015
+
-## [2015/endoh3](2015/burton/prog.c) ([index.html](2015/burton/index.html]))
+
+## [2015/endoh3](2015/burton/prog.c) ([index.html](2015/burton/index.html]))
+
[Cody](#cody) fixed the code so one can make use of the echo feature, where the
@@ -4345,7 +4883,9 @@ 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.
-## [2015/endoh3](2015/dogon/prog.c) ([index.html](2015/dogon/index.html]))
+
+## [2015/endoh3](2015/dogon/prog.c) ([index.html](2015/dogon/index.html]))
+
[Cody](#cody) improved the Makefile so that one can easily change the dimensions
at compilation time via `make(1)`.
@@ -4355,17 +4895,23 @@ one change the value of `q` to a different number, in order to see a bug that
they avoided.
-## [2015/endoh3](2015/duble/prog.c) ([index.html](2015/duble/index.html]))
+
+## [2015/endoh3](2015/duble/prog.c) ([index.html](2015/duble/index.html]))
+
[Cody](#cody) added the [try.sh](2015/duble/try.sh) script.
-## [2015/endoh2](2015/endoh2/prog.c) ([index.html](2015/endoh2/index.html]))
+
+## [2015/endoh2](2015/endoh2/prog.c) ([index.html](2015/endoh2/index.html]))
+
[Cody](#cody) added the [try.sh](2015/endoh2/try.sh) script.
-## [2015/endoh3](2015/endoh3/prog.c) ([index.html](2015/endoh3/index.html]))
+
+## [2015/endoh3](2015/endoh3/prog.c) ([index.html](2015/endoh3/index.html]))
+
[Cody](#cody) fixed this to compile with Linux which was having a problem with duplicate
symbols of `main()`. The fix is through the compiler option `-fcommon` which
@@ -4378,12 +4924,16 @@ simply typing `make back_to` or `make mullender`) and then runs the famous
[1984/mullender.c](1984/mullender/mullender.c).
-## [2015/endoh4](2015/endoh4/prog.c) ([index.html](2015/endoh4/index.html]))
+
+## [2015/endoh4](2015/endoh4/prog.c) ([index.html](2015/endoh4/index.html]))
+
[Cody](#cody) added the [try.sh](2015/endoh4/try.sh) script.
-## [2015/hou](2015/hou/prog.c) ([index.html](2015/hou/index.html))
+
+## [2015/hou](2015/hou/prog.c) ([index.html](2015/hou/index.html))
+
[Cody](#cody) added explicit linking of libm (`-lm`) for systems that do not do this
(Linux doesn't seem to but macOS does).
@@ -4396,7 +4946,9 @@ the directory, to make it so one need not download it, and which the index.html
file now links to.
-## [2015/howe](2015/howe/prog.c) ([index.html](2015/howe/index.html))
+
+## [2015/howe](2015/howe/prog.c) ([index.html](2015/howe/index.html))
+
[Cody](#cody) added the [try.sh](2015/howe/try.sh) script, downloaded the War
and Peace text file, fixed the [avgtime.sh](2015/howe/avgtime.sh) script (it
@@ -4405,7 +4957,9 @@ resulted in standard input errors in piping to `bc(1)`) and added the
`gcc(1)` from Rocky Linux).
-## [2015/mills1](2015/mills1/prog.c) ([index.html](2015/mills1/index.html))
+
+## [2015/mills1](2015/mills1/prog.c) ([index.html](2015/mills1/index.html))
+
[Cody](#cody) added the [try.sh](2015/mills1/try.sh) script which changes the
parameters to what we had in the judges' remarks to make it easier (he only died
@@ -4415,17 +4969,23 @@ also involves good eye-hand coordination and playing games like this in the
past).
-## [2015/mills2](2015/mills2/prog.c) ([index.html](2015/mills2/index.html))
+
+## [2015/mills2](2015/mills2/prog.c) ([index.html](2015/mills2/index.html))
+
[Cody](#cody) added the [try.sh](2015/mills2/try.sh) script.
-## [2015/muth](2015/muth/prog.c) ([index.html](2015/muth/index.html))
+
+## [2015/muth](2015/muth/prog.c) ([index.html](2015/muth/index.html))
+
[Cody](#cody) added the [try.sh](2015/muth/try.sh) script.
-## [2015/endoh3](2015/schweikhardt/prog.c) ([index.html](2015/schweikhardt/index.html]))
+
+## [2015/endoh3](2015/schweikhardt/prog.c) ([index.html](2015/schweikhardt/index.html]))
+
[Cody](#cody) fixed the build so that `EOF` will be `-1` as the program assumes
this. It was decided by Cody to do `-UEOF -DEOF=-1` so as to not have to modify
@@ -4435,7 +4995,9 @@ the code any with C preprocessor directives (the preferred way) or changing
Cody also added the [try.sh](2015/schweikhardt/try.sh) script.
-## [2015/yang](2015/yang/prog.c) ([index.html](2015/yang/index.html]))
+
+## [2015/yang](2015/yang/prog.c) ([index.html](2015/yang/index.html]))
+
[Cody](#cody) fixed an unfortunate typo in the Makefile that was preventing some of the
files from compiling properly, trying instead to compile already compiled code.
@@ -4446,22 +5008,30 @@ He also added explicit linking of libm (`-lm`) for systems that do not do this
He also added the [try.sh](2015/yang/try.sh) script.
-# 2018
+
+# 2018
+
-## [2018/anderson](2018/anderson/prog.c) ([index.html](2018/anderson/index.html))
+
+## [2018/anderson](2018/anderson/prog.c) ([index.html](2018/anderson/index.html))
+
[Cody](#cody) added the [try.sh](2018/anderson/try.sh) and
[try.alt.sh](2018/anderson/try.alt.sh) scripts.
-## [2018/algmyr](2018/algmyr/prog.c) ([index.html](2018/algmyr/index.html))
+
+## [2018/algmyr](2018/algmyr/prog.c) ([index.html](2018/algmyr/index.html))
+
[Cody](#cody) added the [try.sh](2018/algmyr/try.sh) script.
-## [2018/bellard](2018/bellard/prog.c) ([index.html](2018/bellard/index.html))
+
+## [2018/bellard](2018/bellard/prog.c) ([index.html](2018/bellard/index.html))
+
[Cody](#cody) added the [try.sh](2018/bellard/try.sh) script.
@@ -4480,7 +5050,9 @@ of args to `main()` that was done in the original entry was done with this
version as well.
-## [2018/burton1](2018/burton1/prog.c) ([index.html](2018/burton1/index.html))
+
+## [2018/burton1](2018/burton1/prog.c) ([index.html](2018/burton1/index.html))
+
[Cody](#cody) fixed the `scripthd` script (referred to `prog` not `./prog`) and
renamed it to [scripthd.sh](2018/burton1/scripthd.sh) to help browsers and
@@ -4490,7 +5062,9 @@ Cody also added the [try.sh](2018/burton1/try.sh) script which also uses
`scripthd.sh` to show how it differs from `prog` itself.
-## [2018/burton2](2018/burton2/prog.c) ([index.html](2018/burton2/index.html))
+
+## [2018/burton2](2018/burton2/prog.c) ([index.html](2018/burton2/index.html))
+
[Cody](#cody) fixed the `make test` rule: it tried to run `tac(1)` (in systems
that have that command) rather than the entry itself which is called `tac` and
@@ -4514,7 +5088,9 @@ included in the remarks of the author but not an included file.
Finally Cody added the [try.sh](2018/burton2/try.sh) script.
-## [2018/ciura](2018/ciura/prog.c) ([index.html](2018/ciura/index.html))
+
+## [2018/ciura](2018/ciura/prog.c) ([index.html](2018/ciura/index.html))
+
[Cody](#cody) added the [try.sh](2018/ciura/try.sh) and
[try.alt.sh](2018/ciura/try.alt.sh) scripts and the PDF file,
@@ -4522,7 +5098,9 @@ Finally Cody added the [try.sh](2018/burton2/try.sh) script.
Internet Wayback Machine.
-## [2018/endoh1](2018/endoh1/prog.c) ([index.html](2018/endoh1/index.html))
+
+## [2018/endoh1](2018/endoh1/prog.c) ([index.html](2018/endoh1/index.html))
+
[Cody](#cody) added the [try.sh](2018/endoh1/try.sh) script which shows the
input files one at a time and after each one is shown, it feeds it to the
@@ -4533,7 +5111,9 @@ remarks. The input files offered includes the prog.c as the author,
[Yusuke](#yusuke), suggested that it too has a secret.
-## [2018/endoh2](2018/endoh2/prog.c) ([index.html](2018/endoh2/index.html))
+
+## [2018/endoh2](2018/endoh2/prog.c) ([index.html](2018/endoh2/index.html))
+
[Cody](#cody) fixed the [run.sh](2018/endoh2/run.sh) script (had commands that didn't
exist and also didn't work even after that was addressed) and added the
@@ -4545,7 +5125,9 @@ exit the script). The `make python` and `make python3` rules in the Makefile now
run the respective scripts.
-## [2018/ferguson](2018/ferguson/prog.c) ([index.html](2018/ferguson/index.html))
+
+## [2018/ferguson](2018/ferguson/prog.c) ([index.html](2018/ferguson/index.html))
+
[Cody](#cody), with irony well intended :-), fixed the [test.sh
script](2018/ferguson/test.sh) for portability, shellcheck, making it executable
@@ -4558,7 +5140,9 @@ that's probably true: let's just say that for the IOCCC I'm (Cody) a weasel! :-)
(but isn't that kind of the point ? :-) )
-## [2018/hou](2018/hou/prog.c) ([index.html](2018/hou/index.html))
+
+## [2018/hou](2018/hou/prog.c) ([index.html](2018/hou/index.html))
+
[Cody](#cody) added explicit linking of libm (`-lm`) for systems that do not do this
(Linux doesn't seem to but macOS does).
@@ -4566,7 +5150,9 @@ that's probably true: let's just say that for the IOCCC I'm (Cody) a weasel! :-)
Cody also added the [try.sh](2018/hou/try.sh) script.
-## [2018/mills](2018/mills/prog.c) ([index.html](2018/mills/index.html))
+
+## [2018/mills](2018/mills/prog.c) ([index.html](2018/mills/index.html))
+
[Cody](#cody), based on the author's remarks, made it possible to save state
between runs of the program so that one can resume where they left off. It
@@ -4578,7 +5164,9 @@ it might be corrupt. See [2018/mills in bugs.html](bugs.html#2018-mills) for mor
details on the bug.
-## [2018/poikola](2018/poikola/prog.c) ([index.html[(2018/poikola/index.html))
+
+## [2018/poikola](2018/poikola/prog.c) ([index.html[(2018/poikola/index.html))
+
[Cody](#cody) added the missing `docs` rule to the Makefile that forms a PDF
file. The rule requires the tool `pdflatex`.
@@ -4591,12 +5179,16 @@ We added some additional notes on what might happen (it varies depending on
configuration).
-## [2018/vokes](2018/vokes/prog.c) ([index.html](2018/vokes/index.html))
+
+## [2018/vokes](2018/vokes/prog.c) ([index.html](2018/vokes/index.html))
+
[Cody](#cody) added the [try.sh](2018/vokes/try.sh) script.
-## [2018/yang](2018/yang/prog.c) ([index.html](2018/yang/index.html))
+
+## [2018/yang](2018/yang/prog.c) ([index.html](2018/yang/index.html))
+
[Cody](#cody) added the [try.sh](2018/yang/try.sh) script. This script will ask
if the user wants to see some of the spoilers and only show them if they type
@@ -4604,17 +5196,23 @@ if the user wants to see some of the spoilers and only show them if they type
-# 2019
+
+# 2019
+
-## [2019/adamovsky](2019/adamovsky/prog.c) ([index.html](2019/adamovsky/index.html]))
+
+## [2019/adamovsky](2019/adamovsky/prog.c) ([index.html](2019/adamovsky/index.html]))
+
[Cody](#cody) added the [try.sh](2019/adamovsky/try.sh) script and the Unlambda
file [crash.unl](2019/adamovsky/crash.unl) which is in the judges' remarks as
to what can crash it - but it's not a bug, it's a feature.
-## [2019/burton](2019/burton/prog.c) ([index.html](2019/burton/index.html]))
+
+## [2019/burton](2019/burton/prog.c) ([index.html](2019/burton/index.html]))
+
[Cody](#cody) fixed the Makefile which had a bad character, a '%' instead of a '$' which
caused a rule to fail.
@@ -4635,7 +5233,9 @@ Cody also renamed the file `on.one.liners` to
browsers/GitHub.
-## [2019/ciura](2019/ciura/prog.c) ([index.html](2019/ciura/index.html]))
+
+## [2019/ciura](2019/ciura/prog.c) ([index.html](2019/ciura/index.html]))
+
[Cody](#cody) fixed an invalid bytes error in `tr` in the scripts. This does not
mean that they will produce any output, though, as they provide expect all
@@ -4658,7 +5258,9 @@ bugs.html](bugs.html#2019-ciura) for more details.
-## [2019/diels-grabsch1](2019/diels-grabsch1/prog.c) ([index.html](2019/diels-grabsch1/index.html]))
+
+## [2019/diels-grabsch1](2019/diels-grabsch1/prog.c) ([index.html](2019/diels-grabsch1/index.html]))
+
[Cody](#cody) added the [try.sh](2019/diels-grabsch1/try.sh) script.
@@ -4669,7 +5271,9 @@ entry in a subdirectory). This is more important as there is discussion of
having tarballs for each individual entry as a convenience.
-## [2019/diels-grabsch2](2019/diels-grabsch2/prog.c) ([index.html](2019/diels-grabsch2/index.html]))
+
+## [2019/diels-grabsch2](2019/diels-grabsch2/prog.c) ([index.html](2019/diels-grabsch2/index.html]))
+
[Cody](#cody) added the [try.sh](2019/diels-grabsch2/try.sh) script. This
script will try and show the difference (i.e. the same output) between the
@@ -4678,7 +5282,9 @@ tools can be found but otherwise it'll just run the program itself, showing its
own sha512sum value.
-## [2019/dogon](2019/dogon/prog.c) ([index.html](2019/dogon/index.html))
+
+## [2019/dogon](2019/dogon/prog.c) ([index.html](2019/dogon/index.html))
+
[Cody](#cody) added explicit linking of libm (`-lm`) for systems that do not do this
(Linux does not seem to but macOS does).
@@ -4696,7 +5302,9 @@ was to only correct spelling and only some, not to change wording or anything
else).
-## [2019/duble](2019/duble/prog.c) ([index.html](2019/duble/index.html]))
+
+## [2019/duble](2019/duble/prog.c) ([index.html](2019/duble/index.html]))
+
[Cody](#cody) made the `make fullscreen` more portable by not relying on
`stty(1)` and `sed(1)` but rather it just uses `tput(1)`. He also made it so
@@ -4709,7 +5317,9 @@ 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.
-## [2019/endoh](2019/endoh/prog.c) ([index.html](2019/endoh/index.html]))
+
+## [2019/endoh](2019/endoh/prog.c) ([index.html](2019/endoh/index.html]))
+
As this is a backtrace quine having the optimiser enabled is not a good idea so
[Cody](#cody) disabled it. For this same reason he also added the `-g` flag to the
@@ -4723,12 +5333,16 @@ to easily reconstruct the source code through GDB by the fact it's a backtrace
quine.
-## [2019/giles](2019/giles/prog.c) ([index.html](2019/giles/index.html]))
+
+## [2019/giles](2019/giles/prog.c) ([index.html](2019/giles/index.html]))
+
[Cody](#cody) added the [try.sh](2019/giles/try.sh) script.
-## [2019/karns](2019/karns/prog.c) ([index.html](2019/karns/index.html]))
+
+## [2019/karns](2019/karns/prog.c) ([index.html](2019/karns/index.html]))
+
[Cody](#cody) reported that with `-O` level > 0 this program segfaults (sometimes?). He's
not sure why as it worked fine before on the same systems tested but `-O0`
@@ -4740,7 +5354,9 @@ He also added the script [try.sh](2019/karns/try.sh) to showcase the entry a
bit more easily.
-## [2019/lynn](2019/lynn/prog.c) ([index.html](2019/lynn/index.html]))
+
+## [2019/lynn](2019/lynn/prog.c) ([index.html](2019/lynn/index.html]))
+
[Cody](#cody) added the [try.sh](2019/lynn/try.sh) script.
@@ -4750,12 +5366,16 @@ Cody also added the [example-1.txt](2019/lynn/example-1.txt) and
entry existing.
-## [2019/mills](2019/mills/prog.c) ([index.html](2019/mills/index.html]))
+
+## [2019/mills](2019/mills/prog.c) ([index.html](2019/mills/index.html]))
+
[Cody](#cody) added the [try.sh](2019/mills/try.sh) script.
-## [2019/poikola](2019/poikola/prog.c) ([index.html[(2019/poikola/index.html))
+
+## [2019/poikola](2019/poikola/prog.c) ([index.html[(2019/poikola/index.html))
+
[Cody](#cody) added the missing `docs` rule to the Makefile that forms a PDF
file. The rule requires the tool
@@ -4774,7 +5394,9 @@ tested: `gnu17` was not tested but `gnu11` was so the standard was set to
`gnu11`.
-## [2019/yang](2019/yang/prog.c) ([index.html](2019/yang/index.html]))
+
+## [2019/yang](2019/yang/prog.c) ([index.html](2019/yang/index.html]))
+
[Cody](#cody) added the [try.sh](2019/yang/try.sh) script which also involved
slightly updating the [sample_input.txt](2019/yang/sample_input.txt) file
@@ -4782,10 +5404,14 @@ slightly updating the [sample_input.txt](2019/yang/sample_input.txt) file
shouldn't) and adding the [ioccc.txt](2019/yang/ioccc.txt) file.
-# 2020
+
+# 2020
+
-## [2020/burton](2020/burton/prog.c) ([index.html](2020/burton/index.html))
+
+## [2020/burton](2020/burton/prog.c) ([index.html](2020/burton/index.html))
+
[Cody](#cody) fixed the script [check_be.sh](2020/burton/check_be.sh): it
assumed that `prog_be` was in `PATH` which is unlikely so it was changed to
@@ -4798,7 +5424,9 @@ showing nothing at all.
Cody also added the [try.sh](2020/burton/try.sh) script.
-## [2020/carlini](2020/carlini/prog.c) ([index.html](2020/carlini/index.html))
+
+## [2020/carlini](2020/carlini/prog.c) ([index.html](2020/carlini/index.html))
+
[Cody](#cody) added the [try.sh](2020/carlini/try.sh) script which although at
first glance might not appear to have a point, it actually does, namely showing
@@ -4806,7 +5434,9 @@ how you can automate play and then reminding you to actually play for real, with
a friend, whether that's real or imagined.
-## [2020/endoh2](2020/endoh2/prog.c) ([index.html](2020/endoh2/index.html))
+
+## [2020/endoh2](2020/endoh2/prog.c) ([index.html](2020/endoh2/index.html))
+
[Cody](#cody) copied the files from the spoiler.zip file (from his copy during
the preview period) that was password protected with a password that was no
@@ -4815,7 +5445,9 @@ longer known.
He also added the [try.sh](2020/endoh2/try.sh) script.
-## [2020/endoh3](2020/endoh3/prog.c) ([index.html](2020/endoh3/index.html))
+
+## [2020/endoh3](2020/endoh3/prog.c) ([index.html](2020/endoh3/index.html))
+
[Cody](#cody) fixed the script [run_clock.sh](2020/endoh3/run_clock.sh) which gave a
funny error when running it:
@@ -4857,7 +5489,9 @@ which is analogous to the [run_clock.sh](2020/endoh3/run_clock.sh) but for the
alt code provided by the author, Yusuke.
-## [2020/ferguson1](2020/ferguson1/prog.c) ([index.html](2020/ferguson1/index.html))
+
+## [2020/ferguson1](2020/ferguson1/prog.c) ([index.html](2020/ferguson1/index.html))
+
[Cody](#cody), with intentional irony here :-), fixed formatting, links and typos in
various files.
@@ -4877,7 +5511,9 @@ recommend you give it a go! :-) You're welcome to ask me questions if you wish
and I encourage you to do so as the cake is quite picky!
-## [2020/ferguson2](2020/ferguson2/prog.c) ([index.html](2020/ferguson2/index.html))
+
+## [2020/ferguson2](2020/ferguson2/prog.c) ([index.html](2020/ferguson2/index.html))
+
[Cody](#cody), with intentional irony here :-), fixed formatting, links and typos in
various files.
@@ -4905,7 +5541,9 @@ recommend you give it a go! :-) You're welcome to ask me questions if you wish
and I encourage you to do so as the cake is quite picky!
-## [2020/giles](2020/giles/prog.c) ([index.html](2020/giles/index.html))
+
+## [2020/giles](2020/giles/prog.c) ([index.html](2020/giles/index.html))
+
[Cody](#cody) added the [try.sh](2020/giles/try.sh) script. This script does
the conversion of `pi.wav` (showing the digits) and also converts the number for
@@ -4919,12 +5557,16 @@ 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`).
-## [2020/kurdyukov1](2020/kurdyukov1/prog.c) ([index.html](2020/kurdyukov1/index.html))
+
+## [2020/kurdyukov1](2020/kurdyukov1/prog.c) ([index.html](2020/kurdyukov1/index.html))
+
[Cody](#cody) added the [try.sh](2020/kurdyukov1/try.sh) script.
-## [2020/kurdyukov2](2020/kurdyukov2/prog.c) ([index.html](2020/kurdyukov2/index.html))
+
+## [2020/kurdyukov2](2020/kurdyukov2/prog.c) ([index.html](2020/kurdyukov2/index.html))
+
[Cody](#cody) added the [try.sh](2020/kurdyukov2/try.sh) script.
@@ -4940,7 +5582,9 @@ specify which compiler to use with `CC=foo ./makegif.sh ...`), checking that
entry if not installed or it fails).
-## [2020/kurdyukov3](2020/kurdyukov3/prog.c) ([index.html](2020/kurdyukov3/index.html))
+
+## [2020/kurdyukov3](2020/kurdyukov3/prog.c) ([index.html](2020/kurdyukov3/index.html))
+
[Cody](#cody) added the [try.sh](2020/kurdyukov3/try.sh) script.
@@ -4949,7 +5593,9 @@ 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.
-## [2020/kurdyukov4](2020/kurdyukov4/prog.c) ([index.html](2020/kurdyukov4/index.html))
+
+## [2020/kurdyukov4](2020/kurdyukov4/prog.c) ([index.html](2020/kurdyukov4/index.html))
+
[Cody](#cody) added the [try.sh](2020/kurdyukov4/try.sh) script.
@@ -4964,7 +5610,9 @@ set by the late Christopher Tolkien, son and literary executor and heir to
J.R.R. Tolkien).
-## [2020/otterness](2020/otterness/prog.c) ([index.html](2020/otterness/index.html))
+
+## [2020/otterness](2020/otterness/prog.c) ([index.html](2020/otterness/index.html))
+
[Cody](#cody) added the MIDI files [cvikl.mid](2020/otterness/cvikl.mid) and
@@ -4975,14 +5623,18 @@ even if the domain or link goes dead.
Cody also added the [try.sh](2020/otterness/try.sh) script.
-## [2020/tsoj](2020/tsoj/prog.c) ([index.html](2020/tsoj/index.html))
+
+## [2020/tsoj](2020/tsoj/prog.c) ([index.html](2020/tsoj/index.html))
+
[Cody](#cody) added [alternate code](2020/tsoj/index.html#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 :-)
-## [2020/yang](2020/yang/prog.c) ([index.html](2020/yang/index.html))
+
+## [2020/yang](2020/yang/prog.c) ([index.html](2020/yang/index.html))
+
[Cody](#cody) added the [try.sh](2020/yang/try.sh) script.
@@ -4992,10 +5644,14 @@ compilers. See the index.html for more details.
-# General thanks
+
+# General thanks
+
-## Makefiles fixes and improvements
+
+## Makefiles fixes and improvements
+
[Cody](#cody) fixed the top level Makefile `all` rule which had a stray `fi;`
without an `if` so the rule failed entirely.
@@ -5053,7 +5709,9 @@ Cody's [sgit tool](https://github.com/xexyl/sgit) but many other changes he did
manually.
-## Consistency improvements
+
+## Consistency improvements
+
[Cody](#cody), being the IOCCC's resident corrections officer :-) (and a fine one at
that, we think :-) ), made many, many typ0 (... :-) ) fixes throughout the
@@ -5073,7 +5731,9 @@ tool](https://github.com/xexyl/sgit) as well but the vast majority were done
manually.
-## Thank you honor roll
+
+## Thank you honor roll
+
There are a number of people who have contributed to several thousand changes,
fixes and important improvements and one who has literally (or numerically :-) )
@@ -5090,7 +5750,9 @@ judges](../judges.html) **VERY MUCH APPRECIATE** those who
helped improve the presentation of their fellow IOCCC entries.
-### Cody Boone Ferguson
+
+### Cody Boone Ferguson
+
We call out the extensive contributions of [Cody Boone
Ferguson](../authors.html#Cody_Boone_Ferguson) who is
@@ -5131,7 +5793,9 @@ presentation of past IOCCC entries and fixing almost all past entries for modern
systems!
-### Yusuke Endoh
+
+### Yusuke Endoh
+
[Yusuke Endoh](../authors.html#Yusuke_Endoh) supplied a
number of important bug fixes to a number of past IOCCC entries. Some of those
@@ -5143,7 +5807,9 @@ fixes were **EXTREMELY TECHNICALLY CHALLENGING** such as
your help!
-## Did we neglect to credit you?
+
+## Did we neglect to credit you?
+
If you submitted a fix to an entry for which you are not the author,
and your fix is accepted (in part or as a whole), we would be happy