Improve thanks-for-fixes up through 1992

For each YYYY header it is a link to the respective index.html page.

For each entry the index.html file for the entry is in the section name
of the entry (it used to not be a link there but rather in another line
with the source code on the same line). The source code is in a
subsection (that is the index.html is '#' and source code is '##') below
the index.html link.

(The rest of the years might happen later today or it might not happen
until another day due to a timing conflict here.)
This commit is contained in:
Cody Boone Ferguson committed 2024-04-18 04:14:51 -07:00
1 parent 3f1158204a
commit 463d126a9f
3 files changed
+358 -188

No files matched your search

+18 -1
View File
@@ -381,8 +381,25 @@ gen_top_html: ${GEN_TOP_HTML}
${GEN_TOP_HTML} -v 1
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
# a fishy rule :-)
# Say, can you see
# By the dawn's early light
# What so proudly we hailed
# At the twilight's last gleaming?
#
# Whose broad stripes and bright stars
# Through the perilous fight
# O'er the ramparts we watched
# Were so gallantly, yeah, streaming?
#
# And the rockets' red glare
# The bombs bursting in air
# Gave proof through the night
# That our flag was still there
#
# O say, does that star-spangled banner yet wave
# O'er the land of the free and the home of the brave
#
# Just kidding .. So Long, and Thanks for All the Fish :-)
thanks: ${GEN_TOP_HTML} thanks-for-help.md
@echo "Thanks for all the help ..."
@${GEN_TOP_HTML}
+180 -101
View File
@@ -156,10 +156,11 @@ on a IOCCC entry by entry basis.</p>
<li><a href="#neglect">Did we neglect to credit you?</a></li>
</ul>
<div id="1984">
<h1 id="section">1984</h1>
<h1 id="section"><a href="1984/index.html">1984</a></h1>
</div>
<div id="1984_anonymous">
<h2 id="anonymous-index.html"><a href="1984/anonymous/anonymous.c">1984/anonymous</a> (<a href="1984/anonymous/index.html">index.html</a>)</h2>
<h1 id="anonymous"><a href="1984/anonymous/index.html">1984/anonymous</a></h1>
<h2 id="source-code-anonymous.c">Source code: <a href="1984/anonymous/anonymous.c">anonymous.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this to work for macOS.</p>
<p>The problem was to do with the way that the <code>read(2)</code> function was redefined.
@@ -178,7 +179,8 @@ the famous tattoo which we also include here:</p>
<p>…which was done in 2005 by <a href="https://web.archive.org/web/20070120220721/https://thomasscovell.com/tattoo.php">Thomas
Scovell</a>.</p>
<div id="1984_decot">
<h2 id="decot-index.html"><a href="1984/decot/decot.c">1984/decot</a> (<a href="1984/decot/index.html%5D">index.html</a>)</h2>
<h1 id="decot"><a href="1984/decot/index.html">1984/decot</a></h1>
<h2 id="source-code-decot.c">Source code: <a href="1984/decot/decot.c">decot.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this to not require <code>-traditional-cpp</code> which some compilers like
clang do not support. Fixing <code>-traditional-cpp</code> is, as noted later on, very
@@ -227,7 +229,8 @@ but not clang - or at least some versions.</p>
<p>To see the difference from start to fixed:</p>
<pre><code> cd 1984/decot ; make diff_orig_prog</code></pre>
<div id="1984_laman">
<h2 id="laman-index.html"><a href="1984/laman/laman.c">1984/laman</a> (<a href="1984/laman/index.html%5D">index.html</a>)</h2>
<h1 id="laman"><a href="1984/laman/index.html">1984/laman</a></h1>
<h2 id="source-code-laman.c">Source code: <a href="1984/laman/laman.c">laman.c</a></h2>
</div>
<p><a href="#cody">Cody</a> added the <a href="1984/laman/try.sh">try.sh</a> script.</p>
<p>Cody also fixed this to not crash when no arg is specified. Note that if the arg
@@ -235,7 +238,8 @@ 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.</p>
<div id="1984_mullender">
<h2 id="mullender-index.html"><a href="1984/mullender/mullender.c">1984/mullender</a> (<a href="1984/mullender/index.html%5D">index.html</a>)</h2>
<h1 id="mullender"><a href="1984/mullender/index.html">1984/mullender</a></h1>
<h2 id="source-code-mullender.c">Source code: <a href="1984/mullender/mullender.c">mullender.c</a></h2>
</div>
<p><a href="#cody">Cody</a> provided an <a href="1984/mullender/mullender.alt.c">alternate version</a>,
an improved version of the judges, so that everyone can enjoy it with systems
@@ -255,10 +259,11 @@ copy of it as to what it should have been at the time, in the fabulous <a href="
History
Repo</a>.</p>
<div id="1985">
<h1 id="section-1">1985</h1>
<h1 id="section-1"><a href="1985/index.html">1985</a></h1>
</div>
<div id="1985_applin">
<h2 id="applin-index.html"><a href="1985/applin/applin.c">1985/applin</a> (<a href="1985/applin/index.html%5D">index.html</a>)</h2>
<h1 id="applin"><a href="1985/applin/index.html">1984/applin</a></h1>
<h2 id="source-code-applin.c">Source code: <a href="1985/applin/applin.c">applin.c</a></h2>
</div>
<p>Both <a href="#cody">Cody</a> and <a href="#yusuke">Yusuke</a> fixed this; Yusuke got this to not crash and Cody fixed it
to work with macOS.</p>
@@ -277,7 +282,8 @@ shell, after the output (despite having <code>\n</code> in the string - can you
why?) but to make it more friendly to users Cody made it print a <code>\n</code> prior to
returning to the shell. The original code does not have this change.</p>
<div id="1985_august">
<h2 id="august-index.html"><a href="1985/august/august.c">1985/august</a> (<a href="1985/august/index.html">index.html</a>)</h2>
<h1 id="august"><a href="1985/august/index.html">1985/august</a></h1>
<h2 id="source-code-august.c">Source code: <a href="1985/august/august.c">august.c</a></h2>
</div>
<p><a href="#cody">Cody</a>, out of abundance of caution, added a second arg to <code>main()</code> because some
versions of clang object to the number of args of <code>main()</code>, saying that it must
@@ -293,7 +299,8 @@ way.</p>
whether <code>primes(6)</code> is installed or not, but it only does it once with the
default value).</p>
<div id="1985_lycklama">
<h2 id="lycklama-index.html"><a href="1985/lycklama/lycklama.c">1985/lycklama</a> (<a href="1985/lycklama/index.html%5D">index.html</a>)</h2>
<h1 id="lycklama"><a href="1985/lycklama/index.html">1985/lycklama</a></h1>
<h2 id="source-code-lycklama.c">Source code: <a href="1985/lycklama/lycklama.c">lycklama.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this to compile with modern compilers. In the past one could get away
with defining some macro to <code>#define</code> and then use <code>#foo</code> to have the same
@@ -303,7 +310,8 @@ changed the <code>#o</code> lines to <code>#define</code>. Also <code>unistd.h</
that Cody added. See the index.html for details.</p>
<p>Cody also provided the <a href="1985/lycklama/try.alt.sh">try.alt.sh</a> script.</p>
<div id="1985_shapiro">
<h2 id="shapiro-index.html"><a href="1985/shapiro/shapiro.c">1985/shapiro</a> (<a href="1985/shapiro/index.html%5D">index.html</a>)</h2>
<h1 id="shapiro"><a href="1985/1985/lycklama/index.html">1985/shapiro</a></h1>
<h2 id="source-code-index.html">Source code: <a href="1985/shapiro/shapiro.c%5D">index.html</a></h2>
</div>
<p><a href="#cody">Cody</a> added the alt code which allows one to resize the maze and he also added
the <a href="1985/shapiro/try.alt.sh">try.alt.sh</a> script that randomly selects sizes
@@ -312,7 +320,8 @@ 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).</p>
<div id="1985_sicherman">
<h2 id="sicherman-index.html"><a href="1985/sicherman/sicherman.c">1985/sicherman</a> (<a href="1985/sicherman/index.html%5D">index.html</a>)</h2>
<h1 id="sicherman"><a href="1985/sicherman/index.html">1985/sicherman</a></h1>
<h2 id="source-code-1985sicherman">Source code: <a href="1985/sicherman/sicherman.c">1985/sicherman</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this <em>very twisted entry</em> to not require <code>-traditional-cpp</code>. Fixing
<code>-traditional-cpp</code> is, as noted later on, very complicated, but Cody would like
@@ -400,24 +409,28 @@ rule).</p>
<p>Cody also added the <a href="1985/sicherman/try.sh">try.sh</a> and
<a href="1985/sicherman/try.alt.sh">try.alt.sh</a> scripts.</p>
<div id="1986">
<h1 id="section-2">1986</h1>
<h1 id="section-2"><a href="1986/index.html">1986</a></h1>
</div>
<div id="1986_applin">
<h2 id="applin-index.html-1"><a href="1986/applin/applin.c">1986/applin</a> (<a href="1986/applin/index.html%5D">index.html</a>)</h2>
<h1 id="applin-1"><a href="1986/applin/index.html%5D">1986/applin</a></h1>
<h2 id="source-code-applin.c-1">Source code: <a href="1986/applin/applin.c">applin.c</a></h2>
</div>
<p><a href="#cody">Cody</a> made the C file executable so one does not have to do <code>sh ./applin.c</code> or <code>./applin</code>; they can do either <code>./applin.c</code> or <code>./applin</code>.</p>
<div id="1986_bright">
<h2 id="bright-index.html"><a href="1986/bright/bright.c">1986/bright</a> (<a href="1986/bright/index.html%5D">index.html</a>)</h2>
<h1 id="bright"><a href="1986/bright/index.html">1986/bright</a></h1>
<h2 id="source-code-bright.c">Source code: <a href="1986/bright/bright.c">bright.c</a></h2>
</div>
<p><a href="#cody">Cody</a> added the <a href="1986/bright/try.sh">try.sh</a> script.</p>
<div id="1986_hague">
<h2 id="hague-index.html"><a href="1986/hague/hague.c">1986/hague</a> (<a href="1986/hague/index.html%5D">index.html</a>)</h2>
<h1 id="hague"><a href="1986/hague/index.html%5D">1986/hague</a></h1>
<h2 id="source-code-hague.c">Source code: <a href="1986/hague/hague.c">hague.c</a></h2>
</div>
<p><a href="#cody">Cody</a> made this use <code>fgets()</code>.</p>
<p>Cody also added the <a href="1986/hague/try.sh">try.sh</a> script which also feeds to the
program the added <code>input.txt</code> file.</p>
<div id="1986_holloway">
<h2 id="holloway-index.html"><a href="1986/holloway/holloway.c">1986/holloway</a> (<a href="1986/holloway/index.html%5D">index.html</a>)</h2>
<h1 id="holloway"><a href="1986/holloway/index.html">1986/holloway</a></h1>
<h2 id="source-code-holloway.c">Source code: <a href="1986/holloway/holloway.c">holloway.c</a></h2>
</div>
<p><a href="#cody">Cody</a> 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
@@ -426,7 +439,8 @@ caused a segfault. By adding a new variable, <code>char *t</code>, initialising
and then using <code>t</code> instead of <code>s</code> it compiles and runs successfully under clang
and gcc.</p>
<div id="1986_marshall">
<h2 id="marshall-index.html"><a href="1986/marshall/marshall.c">1986/marshall</a> (<a href="1986/marshall/index.html%5D">index.html</a>)</h2>
<h1 id="marshall"><a href="1986/marshall/index.html">1986/marshall</a></h1>
<h2 id="source-code-marshall.c">Source code: <a href="1986/marshall/marshall.c">marshall.c</a></h2>
</div>
<p><a href="#cody">Cody</a> 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
@@ -465,13 +479,15 @@ was possible to silence it. In particular:</p>
<p>which can be disabled. It results in the same behaviour but this way no warnings
are produced.</p>
<div id="1986_pawka">
<h2 id="pawka-index.html"><a href="1986/pawka/pawka.c">1986/pawka</a> (<a href="1986/pawka/index.html">index.html</a>)</h2>
<h1 id="pawka"><a href="1986/pawka/index.html">1986/pawka</a></h1>
<h2 id="source-code-pawka.c">Source code: <a href="1986/pawka/pawka.c">pawka.c</a></h2>
</div>
<p><a href="#cody">Cody</a> noticed and fixed a funny mistake in the Makefile where a
<code>-Wno-strict-prototypes</code> was in the wrong location, suggesting that there is a
<code>-D</code> needed to compile the entry.</p>
<div id="1986_stein">
<h2 id="stein-index.html"><a href="1986/stein/stein.c">1986/stein</a> (<a href="1986/stein/index.html%5D">index.html</a>)</h2>
<h1 id="stein"><a href="1986/stein/index.html">1986/stein</a></h1>
<h2 id="source-code-stein.c">Source code: <a href="1986/stein/stein.c">stein.c</a></h2>
</div>
<p><a href="#cody">Cody</a> 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
@@ -480,7 +496,8 @@ one line.</p>
<p>Cody also added the <a href="1986/stein/stein.sh">stein.sh</a> script which runs the two
commands that we suggest in order to get it to show clean output.</p>
<div id="1986_wall">
<h2 id="wall-index.html"><a href="1986/wall/wall.c">1986/wall</a> (<a href="1986/wall/index.html%5D">index.html</a>)</h2>
<h1 id="wall"><a href="1986/wall/index.html">1986/wall</a></h1>
<h2 id="source-code-wall.c">Source code: <a href="1986/wall/wall.c">wall.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this so that it does not require <code>-traditional-cpp</code>. This took a fair
bit of tinkering as this entry <em>very twisted</em>; fixing <code>-traditional-cpp</code> is, as
@@ -544,14 +561,16 @@ work with gcc but it still required <code>-traditional-cpp</code>.</p>
</ul>
<p>There might have been other changes as well.</p>
<div id="1987">
<h1 id="section-3">1987</h1>
<h1 id="section-3"><a href="1987/index.html">1987</a></h1>
</div>
<div id="1987_biggar">
<h2 id="biggar-index.html"><a href="1987/biggar/biggar.c">1987/biggar</a> (<a href="1987/biggar/index.html">index.html</a>)</h2>
<h1 id="biggar"><a href="1987/biggar/index.html">1987/biggar</a></h1>
<h2 id="source-code-biggar.c">Source code: <a href="1987/biggar/biggar.c">biggar.c</a></h2>
</div>
<p><a href="#cody">Cody</a> added the <a href="1987/biggar/try.sh">try.sh</a> script.</p>
<div id="1987_heckbert">
<h2 id="heckbert-index.html"><a href="1987/heckbert/heckbert.c">1987/heckbert</a> (<a href="1987/heckbert/index.html">index.html</a>)</h2>
<h1 id="heckbert"><a href="1987/heckbert/index.html">1987/heckbert</a></h1>
<h2 id="source-code-heckbert.c">Source code: <a href="1987/heckbert/heckbert.c">heckbert.c</a></h2>
</div>
<p><a href="#cody">Cody</a> made this look more like the original entry by restoring the <code>#define</code> of
<code>define</code>. It’s not used but it now looks closer to the original.</p>
@@ -562,14 +581,16 @@ of <code>strings.h</code> and because it’s identical in use to <code>strchr(3)
that for System V we had to do this) Cody added to the Makefile
<code>-Dindex=strchr</code>.</p>
<div id="1987_hines">
<h2 id="hines-index.html"><a href="1987/hines/hines.c">1987/hines</a> (<a href="1987/hines/index.html">index.html</a>)</h2>
<h1 id="hines"><a href="1987/hines/index.html">1987/hines</a></h1>
<h2 id="source-code-hines.c">Source code: <a href="1987/hines/hines.c">hines.c</a></h2>
</div>
<p><a href="#cody">Cody</a> added the <a href="1987/hines/try.sh">try.sh</a> script and the C file
<a href="1987/hines/goto.c">goto.c</a> and the text file <a href="1987/hines/goto.txt">goto.txt</a>
for demonstration purposes. Notice that the program is case sensitive which
running the program on the text file demonstrates.</p>
<div id="1987_lievaart">
<h2 id="lievaart-index.html"><a href="1987/lievaart/lievaart.c">1987/lievaart</a> (<a href="1987/lievaart/index.html">index.html</a>)</h2>
<h1 id="lievaart"><a href="1987/lievaart/index.html">1987/lievaart</a></h1>
<h2 id="source-code-lievaart.c">Source code: <a href="1987/lievaart/lievaart.c">lievaart.c</a></h2>
</div>
<p><a href="#cody">Cody</a> 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
@@ -606,12 +627,14 @@ immediately goes back to the prompting of the level.</p>
well (the one with the board and the one without, the entry itself with the
size constraints of the contest).</p>
<div id="1987_wall">
<h2 id="wall-index.html-1"><a href="1987/wall/wall.c">1987/wall</a> (<a href="1987/wall/index.html%5D">index.html</a>)</h2>
<h1 id="wall-1"><a href="1987/wall/index.html">1987/wall</a></h1>
<h2 id="source-code-wall.c-1">Source code: <a href="1987/wall/wall.c">wall.c</a></h2>
</div>
<p><a href="#cody">Cody</a> made this use <code>fgets(3)</code>.</p>
<p>Cody also added the <a href="1987/wall/try.sh">try.sh</a> script.</p>
<div id="1987_westley">
<h2 id="westley-index.html"><a href="1987/westley/westley.c">1987/westley</a> (<a href="1987/westley/index.html%5D">index.html</a>)</h2>
<h1 id="westley"><a href="1987/westley/index.html">1987/westley</a></h1>
<h2 id="source-code-westley.c">Source code: <a href="1987/westley/westley.c">westley.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this for modern systems. The problem was <code>'assignment to cast is illegal, lvalue casts are not supported'</code>. For the original file see the
index.html file. Unfortunately this ruins some symmetry. To try and resolve this
@@ -623,10 +646,11 @@ look more symmetrical now.</p>
<p>Cody also added to the Makefile <code>-include stdio.h</code> in the nowadays very
unlikely(?) but nevertheless suggested case that <code>putchar()</code> is not available.</p>
<div id="1988">
<h1 id="section-4">1988</h1>
<h1 id="section-4"><a href="1988/index.html">1988</a></h1>
</div>
<div id="1988_dale">
<h2 id="dale-index.html"><a href="1988/dale/dale.c">1988/dale</a> (<a href="1988/dale/index.html%5D">index.html</a>)</h2>
<h1 id="dale"><a href="1988/dale/index.html">1988/dale</a></h1>
<h2 id="source-code-dale.c">Source code: <a href="1988/dale/dale.c">dale.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this twisted entry (as we called it :-) ) for modern compilers,
including making it no longer require <code>-traditional-cpp</code>. Fixing
@@ -681,19 +705,22 @@ macro in place it’s just no longer used.</p>
version in case you have an older compiler or wish to try <code>-traditional-cpp</code>.</p>
<p>Cody also provided the <a href="1988/dale/try.sh">try.sh</a> script.</p>
<div id="1988_isaak">
<h2 id="isaak-index.html"><a href="1988/isaak/isaak.c">1988/isaak</a> (<a href="1988/isaak/index.html%5D">index.html</a>)</h2>
<h1 id="isaak"><a href="1988/isaak/index.html">1988/isaak</a></h1>
<h2 id="source-code-isaak.c">Source code: <a href="1988/isaak/isaak.c">isaak.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this to work for modern systems. The problem was that the important
function, a redefinition of <code>exit()</code>, was not being called in <code>main()</code>. The
original version is in <a href="1988/isaak/isaak.alt.c">1988/isaak/isaak.alt.c</a>. See the
index.html file for more details.</p>
<div id="1988_litmaath">
<h2 id="litmaath-index.html"><a href="1988/litmaath/litmaath.c">1988/litmaath</a> (<a href="1988/litmaath/index.html">index.html</a>)</h2>
<h1 id="litmaath"><a href="1988/litmaath/index.html">1988/litmaath</a></h1>
<h2 id="source-code-litmaath.c">Source code: <a href="1988/litmaath/litmaath.c">litmaath.c</a></h2>
</div>
<p><a href="#cody">Cody</a> 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.</p>
<div id="1988_phillipps">
<h2 id="phillipps-index.html"><a href="1988/phillipps/phillipps.c">1988/phillipps</a> (<a href="1988/phillipps/index.html%5D">index.html</a>)</h2>
<h1 id="phillipps"><a href="1988/phillipps/index.html">1988/phillipps</a></h1>
<h2 id="source-code-phillipps.c">Source code: <a href="1988/phillipps/phillipps.c">phillipps.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this for modern systems. It did not compile with clang because it
requires the second and third args of <code>main()</code> to be `char ** but even before
@@ -709,11 +736,13 @@ once did. The format of <code>pain()</code> is exactly like how <code>main()</co
same code. Additionally, <code>main()</code> returns <code>!pain(...)</code> like <code>main()</code> used to do
to itself and <code>pain()</code> does now.</p>
<div id="1988_reddy">
<h2 id="reddy-index.html"><a href="1988/reddy/reddy.c">1988/reddy</a> (<a href="1988/reddy/index.html">index.html</a>)</h2>
<h1 id="reddy"><a href="1988/reddy/index.html">1988/reddy</a></h1>
<h2 id="source-code-reddy.c">Source code: <a href="1988/reddy/reddy.c">reddy.c</a></h2>
</div>
<p><a href="#cody">Cody</a> made this use <code>fgets(3)</code>.</p>
<div id="1988_spinellis">
<h2 id="spinellis-index.html"><a href="1988/spinellis/spinellis.c">1988/spinellis</a> (<a href="1988/spinellis/index.html%5D">index.html</a>)</h2>
<h1 id="spinellis"><a href="1988/spinellis/index.html">1988/spinellis</a></h1>
<h2 id="source-code-spinellis.c">Source code: <a href="1988/spinellis/spinellis.c">spinellis.c</a></h2>
</div>
<p><a href="#cody">Cody</a> provided an <a href="1988/spinellis/spinellis.alt.c">alternate version</a> so that
this will work with compilers like clang. An alternate version had to be
@@ -726,7 +755,8 @@ original. See the index.html file for details on the alternate code.</p>
doing this) that with a slight modification this entry can be C++ instead. We don’t
thank him for this ghastly point! :-)</p>
<div id="1988_westley">
<h2 id="westley-index.html-1"><a href="1988/westley/westley.c">1988/westley</a> (<a href="1988/westley/index.html%5D">index.html</a>)</h2>
<h1 id="westley-1"><a href="1988/westley/index.html">1988/westley</a></h1>
<h2 id="source-code-westley.c-1">Source code: <a href="1988/westley/westley.c">westley.c</a></h2>
</div>
<p>The <a href="1988/westley/westley.alt.c">original version</a>, provided as alternate code,
was fixed by Misha Dynin, based on the judges’ remarks, so that this would work
@@ -737,10 +767,11 @@ entry as seeing the code with the result at once is far more beautiful.</p>
<p>Cody also changed the <code>int</code>s to be <code>float</code> as that’s what they are printed as:
not strictly necessary but nonetheless more correct, even if not warned against.</p>
<div id="1989">
<h1 id="section-5">1989</h1>
<h1 id="section-5"><a href="1989/index.html">1989</a></h1>
</div>
<div id="1989_fubar">
<h2 id="fubar-index.html"><a href="1989/fubar/fubar.c">1989/fubar</a> (<a href="1989/fubar/index.html%5D">index.html</a>)</h2>
<h1 id="fubar"><a href="1989/fubar/index.html">1989/fubar</a></h1>
<h2 id="source-code-fubar.c">Source code: <a href="1989/fubar/fubar.c">fubar.c</a></h2>
</div>
<p><a href="#cody">Cody</a> got this to work with modern systems. The main issues were that an
<code>#include</code> had to be added along with fixing the path (due to <code>.</code> not being in
@@ -767,7 +798,8 @@ might end up failing to work even after changing it back. This was resolved by:<
<code>if [ .. ]</code> was changed in the C code as well as the script.</p>
<p>Cody also added the <a href="1989/fubar/try.sh">try.sh</a> script.</p>
<div id="1989_jar.1">
<h2 id="jar.1-index.html"><a href="1989/jar.1/jar.1.c">1989/jar.1</a> (<a href="1989/jar.1/index.html%5D">index.html</a>)</h2>
<h1 id="jar.1"><a href="1989/jar.1/index.html">1989/jar.1</a></h1>
<h2 id="source-code-jar.1.c">Source code: <a href="1989/jar.1/jar.1.c">jar.1.c</a></h2>
</div>
<p>To prevent annoying output to <code>/dev/tty</code> we changed the code to simulate the
output via <code>strings(1)</code> but <a href="#cody">Cody</a> removed the ill-famed <code>useless use of cat</code> to
@@ -782,7 +814,8 @@ 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.</p>
<div id="1989_jar.2">
<h2 id="jar.2-index.html"><a href="1989/jar.2/jar.2.c">1989/jar.2</a> (<a href="1989/jar.2/index.html%5D">index.html</a>)</h2>
<h1 id="jar.2"><a href="1989/jar.2/index.html">1989/jar.2</a></h1>
<h2 id="source-code-jar.2.c">Source code: <a href="1989/jar.2/jar.2.c">jar.2.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this to work with modern compilers. Modern compilers do not allow
code like:</p>
@@ -809,7 +842,8 @@ result in:</p>
shell returned 2</code></pre>
<p>because the <code>alt</code> rule had what normally is in the <code>${PROG}.alt</code> rule.</p>
<div id="1989_ovdluhe">
<h2 id="ovdluhe-index.html"><a href="1989/ovdluhe/ovdluhe.c">1989/ovdluhe</a> (<a href="1989/ovdluhe/index.html%5D">index.html</a>)</h2>
<h1 id="ovdluhe"><a href="1989/ovdluhe/index.html">1989/ovdluhe</a></h1>
<h2 id="source-code-ovdluhe.c">Source code: <a href="1989/ovdluhe/ovdluhe.c">ovdluhe.c</a></h2>
</div>
<p><a href="#cody">Cody</a> 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 <code>for</code> loop
@@ -826,7 +860,8 @@ 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.</p>
<div id="1989_paul">
<h2 id="paul-index.html"><a href="1989/paul/paul.c">1989/paul</a> (<a href="1989/paul/index.html%5D">index.html</a>)</h2>
<h1 id="paul"><a href="1989/paul/index.html">1989/paul</a></h1>
<h2 id="source-code-paul.c">Source code: <a href="1989/paul/paul.c">paul.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed a segfault under macOS that prevented it from working. The problem
was that the int (from <code>#define f</code>) should be a long. This became apparent when
@@ -835,7 +870,8 @@ he was using lldb and saw that the type of a pointer was too <code>long</code> :
which has the trace function that the author included but commented out. See the
index.html for details.</p>
<div id="1989_robison">
<h2 id="robison-index.html"><a href="1989/robison/robison.c">1989/robison</a> (<a href="1989/robison/index.html%5D">index.html</a>)</h2>
<h1 id="robison"><a href="1989/robison/index.html">1989/robison</a></h1>
<h2 id="source-code-robison.c">Source code: <a href="1989/robison/robison.c">robison.c</a></h2>
</div>
<p><a href="#yusuke">Yusuke Endoh</a> fixed this to compile under modern systems. To see the changes
made, try:</p>
@@ -843,7 +879,8 @@ made, try:</p>
<p>(It adds the C token pasting operator <code>##</code> instead of <code>/**/</code>.)</p>
<p>Cody also added the <a href="1989/robison/try.sh">try.sh</a> script.</p>
<div id="1989_tromp">
<h2 id="tromp-index.html"><a href="1989/tromp/tromp.c">1989/tromp</a> (<a href="1989/tromp/index.html%5D">index.html</a>)</h2>
<h1 id="tromp"><a href="1989/tromp/index.html">1989/tromp</a></h1>
<h2 id="source-code-tromp.c">Source code: <a href="1989/tromp/tromp.c">tromp.c</a></h2>
</div>
<p><a href="#cody">Cody</a> and <a href="#yusuke">Yusuke</a> fixed this entry: Yusuke fixed this to compile with gcc and Cody
fixed it for clang and made some other fixes as well.</p>
@@ -866,11 +903,13 @@ various other things, so that now the alt version, which is better, can be used.
IOCCC <a href="https://en.wikipedia.org/wiki/Tetris">Tetris</a> working (this of course was
not his only reason :-) )</p>
<div id="1989_vanb">
<h2 id="vanb-index.html"><a href="1989/vanb/vanb.c">1989/vanb</a> (<a href="1989/vanb/index.html%5D">index.html</a>)</h2>
<h1 id="vanb"><a href="1989/vanb/index.html">1989/vanb</a></h1>
<h2 id="source-code-vanb.c">Source code: <a href="1989/vanb/vanb.c">vanb.c</a></h2>
</div>
<p><a href="#cody">Cody</a> added the <a href="1989/vanb/try.sh">try.sh</a> script.</p>
<div id="1989_westley">
<h2 id="westley-index.html-2"><a href="1989/westley/westley.c">1989/westley</a> (<a href="1989/westley/index.html%5D">index.html</a>)</h2>
<h1 id="westley-2"><a href="1989/westley/index.html">1989/westley</a></h1>
<h2 id="source-code-westley.c-2">Source code: <a href="1989/westley/westley.c">westley.c</a></h2>
</div>
<p><a href="#cody">Cody</a> 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
@@ -888,19 +927,25 @@ might just not be possible.</p>
<p>The way it was fixed might be hard to see and describe but this is an attempt.
Because <code>main()</code>’s args were all <code>int</code>s, <code>main()</code> had to call a new function
which is allowed to have args as <code>int</code> (instead of <code>main()</code>’s args being int and
the rest being <code>char **) but this is not as straight forward as it is for other entries (if you look at the code you might see what is meant; the function called is</code>pain()`).</p>
the rest being <code>char **</code>) but this is not as straight forward as it is for other
entries (if you look at the code you might see what is meant; the function called
is <code>pain()</code>).</p>
<p>The args of <code>main()</code> had to be set to the right type but only three args, <strong>not
four</strong>, even though the original program has four args. This is because not all
versions of clang support four args and that is one of the issues with version 2
and 3 as it generates <code>main()</code> to have four args and the wrong type, all <code>int</code>s.</p>
<p>In the call to the new function, <code>pain()</code>, from <code>main()</code>, one of the <code>char **s is used twice, once as</code>argc<code>with bitwise AND with 2, naturally first being cast to an</code>int<code>(</code>(int)ABBA&amp;2<code>), and once as a</code>char **, the fourth arg to
<p>In the call to the new function, <code>pain()</code>, from <code>main()</code>, one of the <code>char **</code>s
is used twice, once as <code>argc</code> with bitwise AND with 2, naturally first being
cast to an <code>int</code> (<code>(int)ABBA&amp;2</code>), and once as a <code>char **</code>, the fourth arg to
<code>pain()</code> (yes even though <code>pain()</code> takes all <code>int</code>s).</p>
<p>The argc,, meanwhile, <code>tang</code>, is used once and the second arg, <code>char **gnat</code> is
<p>The argc, meanwhile, <code>tang</code>, is used once and the second arg, <code>char **gnat</code> is
used once (observe how <code>tang</code> is <code>gnat</code> spelt backwards as this is one of the
things that makes this a masterpiece and very hard if not impossible to fix
completely). Fortunately it is not actually necessary to use all four args (of
<code>main()</code>) in the call which might or might not be surprising, especially as it
uses one of the args, a <code>char **, instead of an</code>int<code>(through casts), twice rather than just passing in for the fourth arg (the fourth arg passed in is the third arg to</code>main()`).</p>
uses one of the args, a <code>char **</code>, instead of an <code>int</code> (through casts), twice
rather than just passing in for the fourth arg (the fourth arg passed in is the
third arg to <code>main()</code>).</p>
<p>This program heavily uses recursion and depending on the number of args it will
print out output normally, ROT13 it, show it backwards or both. Along with the
ROT13 and reversed output of the code, it is the <strong>comments that create the
@@ -923,10 +968,11 @@ will work for compilers like gcc and one can then use the
<p>The <code>compile.sh</code> script allows one to specify the compiler with the <code>CC</code>
environmental variable; see the index.html for details.</p>
<div id="1990">
<h1 id="section-6">1990</h1>
<h1 id="section-6"><a href="1990/index.html">1990</a></h1>
</div>
<div id="1990_baruch">
<h2 id="baruch-index.html"><a href="1990/baruch/baruch.c">1990/baruch</a> (<a href="1990/baruch/index.html%5D">index.html</a>)</h2>
<h1 id="baruch"><a href="1990/baruch/index.html">1990/baruch</a></h1>
<h2 id="source-code-baruch.c">Source code: <a href="1990/baruch/baruch.c">baruch.c</a></h2>
</div>
<p><a href="#cody">Cody</a> added the <a href="1990/baruch/try.sh">try.sh</a> script.</p>
<p>Cody also added an <a href="1990/baruch/baruch.alt.c">alternate version</a> which allows Turbo-C
@@ -942,13 +988,15 @@ question (i.e. it was only tested in the original entry). YMMV.</p>
the variables, adding instead <code>-Wno-implicit-int</code>. The newline added by the
judges was retained.</p>
<div id="1990_cmills">
<h2 id="cmills-index.html"><a href="1990/cmills/cmills.c">1990/cmills</a> (<a href="1990/cmills/index.html%5D">index.html</a>)</h2>
<h1 id="cmills"><a href="1990/cmills/index.html">1990/cmills</a></h1>
<h2 id="source-code-cmills.c">Source code: <a href="1990/cmills/cmills.c">cmills.c</a></h2>
</div>
<p><a href="#yusuke">Yusuke</a> got this to work in modern systems (it previously resulted in a bus
error).</p>
<p><a href="#cody">Cody</a> made this use <code>fgets(3)</code>.</p>
<div id="1990_dds">
<h2 id="dds-index.html"><a href="1990/dds/dds.c">1990/dds</a> (<a href="1990/dds/index.html%5D">index.html</a>)</h2>
<h1 id="dds"><a href="1990/dds/index.html">1990/dds</a></h1>
<h2 id="source-code-dds.c">Source code: <a href="1990/dds/dds.c">dds.c</a></h2>
</div>
<p><a href="#yusuke">Yusuke</a> and <a href="#cody">Cody</a> in conjunction fixed this for modern systems (both fixed a
different compiler error but more fixes were also made).</p>
@@ -960,7 +1008,8 @@ operator itself.</p>
<code>fopen()</code>. Cody also changed a <code>char *</code> used for file I/O to be a proper <code>FILE *</code> and fixed a typo in <a href="1990/dds/LANDER.BAS">LANDER.BAS</a>.</p>
<p>Cody also made this use <code>fgets(3)</code>.</p>
<div id="1990_dg">
<h2 id="dg-index.html"><a href="1990/dg/dg.c">1990/dg</a> (<a href="1990/dg/index.html%5D">index.html</a>)</h2>
<h1 id="dg"><a href="1990/dg/index.html">1990/dg</a></h1>
<h2 id="source-code-dg.c">Source code: <a href="1990/dg/dg.c">dg.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this for modern systems. There were two problems to be resolved.</p>
<p>One can no longer do:</p>
@@ -975,7 +1024,8 @@ but later Cody added it back to make it more like the original).</p>
with if the C preprocessor botches single quotes in cpp expansion.</p>
<p>Cody also added the <a href="1990/dg/try.sh">try.sh</a> script.</p>
<div id="1990_jaw">
<h2 id="jaw-index.html"><a href="1990/jaw/jaw.c">1990/jaw</a> (<a href="1990/jaw/index.html%5D">index.html</a>)</h2>
<h1 id="jaw"><a href="1990/jaw/index.html">1990/jaw</a></h1>
<h2 id="source-code-jaw.c">Source code: <a href="1990/jaw/jaw.c">jaw.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed the script to work properly in modern environments including writing
to and extracting from <code>stdout</code> and relying on the exit code in the commands to
@@ -988,20 +1038,23 @@ the time.</p>
fix applied by Cody that made the program just show <code>oops</code> twice from invalid
input but which now works.</p>
<div id="1990_pjr">
<h2 id="pjr-index.html"><a href="1990/pjr/pjr.c">1990/pjr</a> (<a href="1990/pjr/index.html%5D">index.html</a>)</h2>
<h1 id="pjr"><a href="1990/pjr/index.html">1990/pjr</a></h1>
<h2 id="source-code-pjr.c">Source code: <a href="1990/pjr/pjr.c">pjr.c</a></h2>
</div>
<p><a href="#cody">Cody</a> added the <a href="1990/pjr/pjr.alt.c">alt code</a> which was suggested by the judges
in the case that your compiler cannot compile <code>X=g()...</code> but it actually does
something else and is recommended by the author as well.</p>
<div id="1990_scjones">
<h2 id="scjones-index.html"><a href="1990/scjones/scjones.c">1990/scjones</a> (<a href="1990/scjones/index.html%5D">index.html</a>)</h2>
<h1 id="scjones"><a href="1990/scjones/index.html">1990/scjones</a></h1>
<h2 id="source-code-scjones.c">Source code: <a href="1990/scjones/scjones.c">scjones.c</a></h2>
</div>
<p><a href="#yusuke">Yusuke</a> suggested <code>-ansi</code> to get the entry to compile due to trigraphs and <a href="#cody">Cody</a>
suggested <code>-trigraphs</code>. Both work but we used Yusuke’s idea.</p>
<p>Cody added the <a href="1990/scjones/try.sh">try.sh</a> script to show exactly what the
entry does.</p>
<div id="1990_tbr">
<h2 id="tbr-index.html"><a href="1990/tbr/tbr.c">1990/tbr</a> (<a href="1990/tbr/index.html%5D">index.html</a>)</h2>
<h1 id="tbr"><a href="1990/tbr/index.html">1990/tbr</a></h1>
<h2 id="source-code-tbr.c">Source code: <a href="1990/tbr/tbr.c">tbr.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this to work with modern compilers; <code>exit(3)</code> returns void but the
function was used in a binary expression so this wouldn’t even compile.</p>
@@ -1016,7 +1069,8 @@ to be <code>fgets()</code> in the same way that the original entry is. This way
version</a> is equivalent in function, like the
author intended, but more compact.</p>
<div id="1990_theorem">
<h2 id="theorem-index.html"><a href="1990/theorem/theorem.c">1990/theorem</a> (<a href="1990/theorem/index.html%5D">index.html</a>)</h2>
<h1 id="theorem"><a href="1990/theorem/index.html">1990/theorem</a></h1>
<h2 id="source-code-theorem.c">Source code: <a href="1990/theorem/theorem.c">theorem.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this to compile with modern systems.</p>
<p>He also fixed some bugs that impacted the usability of this program including some
@@ -1045,14 +1099,16 @@ original program and some of the programs it generates.</p>
used in order to get this to work initially (prior to this output was there but
incomplete).</p>
<div id="1990_stig">
<h2 id="stig-index.html"><a href="1990/stig/stig.c">1990/stig</a> (<a href="1990/stig/index.html">index.html</a>)</h2>
<h1 id="stig"><a href="1990/stig/index.html">1990/stig</a></h1>
<h2 id="source-code-stig.c">Source code: <a href="1990/stig/stig.c">stig.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed the paths in the Makefile so that this would build in Linux (it
worked fine in macOS).</p>
<p>He also changed the Makefile to use <code>bash</code> not <code>zsh</code> as not all systems have
<code>zsh</code> and the Makefile actually sets <code>SHELL</code> to <code>bash</code>.</p>
<div id="1990_westley">
<h2 id="westley-index.html-3"><a href="1990/westley/westley.c">1990/westley</a> (<a href="1990/westley/index.html%5D">index.html</a>)</h2>
<h1 id="westley-3"><a href="1990/westley/index.html">1990/westley</a></h1>
<h2 id="source-code-westley.c-3">Source code: <a href="1990/westley/westley.c">westley.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this for modern systems. It had <code>1s</code> in places for a <code>short int</code> which was changed to just <code>1</code>. Since it’s instructional to see the
differences he has provided an alternate version,
@@ -1065,10 +1121,11 @@ and to not crash if no arg is specified.</p>
<p>The alt code did NOT have arg checks added as it is actually a copy of the
original code.</p>
<div id="1991">
<h1 id="section-7">1991</h1>
<h1 id="section-7"><a href="1991/index.html">1991</a></h1>
</div>
<div id="1991_ant">
<h2 id="ant-index.html"><a href="1991/ant/ant.c">1991/ant</a> (<a href="1991/ant/index.html%5D">index.html</a>)</h2>
<h1 id="ant"><a href="1991/ant/index.html">1991/ant</a></h1>
<h2 id="source-code-ant.c">Source code: <a href="1991/ant/ant.c">ant.c</a></h2>
</div>
<p><a href="#cody">Cody</a> added <a href="1991/ant/ant.alt.c">alt code</a> that will be a bit easier to use for
those familiar with vim in the following ways:</p>
@@ -1082,7 +1139,8 @@ those familiar with vim in the following ways:</p>
</ul>
<p>The other keys were left unchanged.</p>
<div id="1991_brnstnd">
<h2 id="brnstnd-index.html"><a href="1991/brnstnd/brnstnd.c">1991/brnstnd</a> (<a href="1991/brnstnd/index.html%5D">index.html</a>)</h2>
<h1 id="brnstnd"><a href="1991/brnstnd/index.html">1991/brnstnd</a></h1>
<h2 id="source-code-brnstnd.c">Source code: <a href="1991/brnstnd/brnstnd.c">brnstnd.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this for modern systems. There were two invalid operands to binary
expression (<code>char *</code> and <code>void</code> and <code>int</code> and <code>void</code>) to resolve and
@@ -1095,7 +1153,8 @@ slightly more like the original, even though it’s unused.</p>
<p>Cody also added the <a href="1991/brnstnd/try.sh">try.sh</a> script and
<a href="1991/brnstnd/try.txt">try.txt</a> which the script uses.</p>
<div id="1991_buzzard">
<h2 id="buzzard-index.html"><a href="1991/buzzard/buzzard.c">1991/buzzard</a> (<a href="1991/buzzard/index.html%5D">index.html</a>)</h2>
<h1 id="buzzard"><a href="1991/buzzard/index.html">1991/buzzard</a></h1>
<h2 id="source-code-buzzard.c">Source code: <a href="1991/buzzard/buzzard.c">buzzard.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this so that the coordinates being specified would not crash the
program. This happened because the function that calls <code>atoi(3)</code> took an arg
@@ -1110,14 +1169,16 @@ him): <code>k</code> for forward, <code>h</code> for left and <code>l</code> for
more useful way to exit, just entering <code>q</code> followed by enter, rather than
completing or killing the program.</p>
<div id="1991_davidguy">
<h2 id="davidguy-index.html"><a href="1991/davidguy/davidguy.c">1991/davidguy</a> (<a href="1991/davidguy/index.html%5D">index.html</a>)</h2>
<h1 id="davidguy"><a href="1991/davidguy/index.html">1991/davidguy</a></h1>
<h2 id="source-code-davidguy.c">Source code: <a href="1991/davidguy/davidguy.c">davidguy.c</a></h2>
</div>
<p>As some systems like macOS can be particular about not declaring functions <a href="#cody">Cody</a>
added to the Makefile some <code>-include</code> options. These appear to not be strictly
necessary but it was done due to other syscalls being a problem not being
declared first.</p>
<div id="1991_dds">
<h2 id="dds-index.html-1"><a href="1991/dds/dds.c">1991/dds</a> (<a href="1991/dds/index.html%5D">index.html</a>)</h2>
<h1 id="dds-1"><a href="1991/dds/index.html">1991/dds</a></h1>
<h2 id="source-code-dds.c-1">Source code: <a href="1991/dds/dds.c">dds.c</a></h2>
</div>
<p><a href="#cody">Cody</a> 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 <code>FILE *</code>s.
@@ -1192,7 +1253,8 @@ 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.</p>
<div id="1991_fine">
<h2 id="fine-index.html"><a href="1991/fine/fine.c">1991/fine</a> (<a href="1991/fine/index.html">index.html</a>)</h2>
<h1 id="fine"><a href="1991/fine/index.html">1991/fine</a></h1>
<h2 id="source-code-fine.c">Source code: <a href="1991/fine/fine.c">fine.c</a></h2>
</div>
<p><a href="#cody">Cody</a> 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
@@ -1210,7 +1272,8 @@ 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? :-) )</p>
<div id="1991_rince">
<h2 id="rince-index.html"><a href="1991/rince/rince.c">1991/rince</a> (<a href="1991/rince/index.html">index.html</a>)</h2>
<h1 id="rince"><a href="1991/rince/index.html">1991/rince</a></h1>
<h2 id="source-code-rince.c">Source code: <a href="1991/rince/rince.c">rince.c</a></h2>
</div>
<p><a href="#cody">Cody</a> 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
@@ -1223,7 +1286,8 @@ 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.</p>
<div id="1991_westley">
<h2 id="westley-index.html-4"><a href="1991/westley/westley.c">1991/westley</a> (<a href="1991/westley/index.html%5D">index.html</a>)</h2>
<h1 id="westley-4"><a href="1991/westley/index.html">1991/westley</a></h1>
<h2 id="source-code-westley.c-4">Source code: <a href="1991/westley/westley.c">westley.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed a segfault in this program which prevented it from working. The
problem was that the read-only char array <code>char *z[]</code> was being written to. The
@@ -1241,10 +1305,11 @@ version that supposedly (:-) ) always wins.</p>
<p>Cody also fixed the make clobber rule where a file was left lying about when it
should have been removed.</p>
<div id="1992">
<h1 id="section-8">1992</h1>
<h1 id="section-8"><a href="1992/index.html">1992</a></h1>
</div>
<div id="1992_adrian">
<h2 id="adrian-index.html"><a href="1992/adrian/adrian.c">1992/adrian</a> (<a href="1992/adrian/index.html%5D">index.html</a>)</h2>
<h1 id="adrian"><a href="1992/adrian/index.html">1992/adrian</a></h1>
<h2 id="source-code-adrian.c">Source code: <a href="1992/adrian/adrian.c">adrian.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed the code so that it will try opening the file the code was compiled
from (<code>__FILE__</code>), not <code>adgrep.c</code>, as the latter does not exist: <code>adgrep</code> is
@@ -1294,7 +1359,8 @@ 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.</p>
<div id="1992_albert">
<h2 id="albert-index.html"><a href="1992/albert/albert.c">1992/albert</a> (<a href="1992/albert/index.html%5D">index.html</a>)</h2>
<h1 id="albert"><a href="1992/albert/index.html">1992/albert</a></h1>
<h2 id="source-code-albert.c">Source code: <a href="1992/albert/albert.c">albert.c</a></h2>
</div>
<p><a href="#cody">Cody</a> 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.
@@ -1306,7 +1372,8 @@ return <code>void</code>.</p>
<a href="1992/albert/try.alt.sh">try.alt.sh</a> scripts that correspond to the entry and
the alt code.</p>
<div id="1992_ant">
<h2 id="ant-index.html-1"><a href="1992/ant/ant.c">1992/ant</a> (<a href="1992/ant/index.html%5D">index.html</a>)</h2>
<h1 id="ant-1"><a href="1992/ant/index.html">1992/ant</a></h1>
<h2 id="source-code-ant.c-1">Source code: <a href="1992/ant/ant.c">ant.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed the Makefile so that the program will actually work with it (or at
least the rule to clobber files and link <code>am</code> to <code>ant</code>). The issue was that the
@@ -1324,7 +1391,8 @@ necessary to include <code>time.h</code> so Cody did this as well as this exists
systems too.</p>
<p>Cody also added the <a href="1992/ant/try.sh">try.sh</a> script.</p>
<div id="1992_buzzard.1">
<h2 id="buzzard.1-index.html"><a href="1992/buzzard.1/buzzard.1.c">1992/buzzard.1</a> (<a href="1992/buzzard.1/index.html">index.html</a>)</h2>
<h1 id="buzzard.1"><a href="1992/buzzard.1/index.html">1992/buzzard.1</a></h1>
<h2 id="source-code-buzzard.1.c">Source code: <a href="1992/buzzard.1/buzzard.1.c">buzzard.1.c</a></h2>
</div>
<p><a href="#cody">Cody</a> 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
@@ -1333,7 +1401,8 @@ verified that it was consistent with the <a href="bugs.html">bugs.html</a> file.
<p>He also added the <a href="1992/buzzard.1/try.sh">try.sh</a> script to try out some
commands that we suggested and some additional ones that he provide for some fun.</p>
<div id="1992_buzzard.2">
<h2 id="buzzard.2-index.html"><a href="1992/buzzard.2/buzzard.2.c">1992/buzzard.2</a> (<a href="1992/buzzard.2/index.html">index.html</a>)</h2>
<h1 id="buzzard.2"><a href="1992/buzzard.2/index.html">1992/buzzard.2</a></h1>
<h2 id="source-code-buzzard.2.c">Source code: <a href="1992/buzzard.2/buzzard.2.c">buzzard.2.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed the alt code to compile. The problem was it assumed that
<code>exit(3)</code> returns a value, not <code>void</code>. This was fixed with a <code>,0</code>.</p>
@@ -1341,7 +1410,8 @@ commands that we suggested and some additional ones that he provide for some fun
<a href="1992/buzzard.2/try.alt.sh">try.alt.sh</a> scripts that correspond to the entry
and its alt code.</p>
<div id="1992_gson">
<h2 id="gson-index.html"><a href="1992/gson/gson.c">1992/gson</a> (<a href="1992/gson/index.html%5D">index.html</a>)</h2>
<h1 id="gson"><a href="1992/gson/index.html">1992/gson</a></h1>
<h2 id="source-code-gson.c">Source code: <a href="1992/gson/gson.c">gson.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed a crash that prevented this entry from working in some cases in some
systems (like macOS) by disabling the optimiser in the Makefile.</p>
@@ -1357,16 +1427,18 @@ from <code>stdin</code> after starting the program). Ideally <code>fgets(3)</cod
is a more problematic. See <a href="bugs.html#1992-gson">1992/gson in bugs.html</a> for more
details if you’re interested in trying to understand it (or fix?).</p>
<div id="1992_imc">
<h2 id="imc-index.html"><a href="1992/imc/imc.c">1992/imc</a> (<a href="1992/imc/index.html%5D">index.html</a>)</h2>
<h1 id="imc"><a href="1992/imc/index.html">1992/imc</a></h1>
<h2 id="source-code-imc.c">Source code: <a href="1992/imc/imc.c">imc.c</a></h2>
</div>
<p><a href="#cody">Cody</a> provided the <a href="1992/imc/try.sh">try.sh</a> script.</p>
<p>The original code, <a href="1992/imc/imc.orig.c">imc.orig.c</a>, assumed that <code>exit(3)</code>
returned a value but this will cause problems where <code>exit(3)</code> returns void. The
returned a value but this will cause problems where <code>exit(3)</code> returns <code>void</code>. The
source code was modified to avoid this problem but like Cody did with other fixes
he made this more like the original by redefining <code>exit</code> to use the comma
operator so that it could be used in binary expressions.</p>
<div id="1992_kivinen">
<h2 id="kivinen-index.html"><a href="1992/kivinen/kivinen.c">1992/kivinen</a> (<a href="1992/kivinen/index.html%5D">index.html</a>)</h2>
<h1 id="kivinen"><a href="1992/kivinen/index.html">1992/kivinen</a></h1>
<h2 id="source-code-kivinen.c">Source code: <a href="1992/kivinen/kivinen.c">kivinen.c</a></h2>
</div>
<p>It was observed that on modern systems this goes much too quick. <a href="#yusuke">Yusuke</a> created
a patch that calls <code>usleep(3)</code> but <a href="#cody">Cody</a> thought the value was too slow so he
@@ -1387,7 +1459,8 @@ changing this.</p>
<p>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.</p>
<div id="1992_lush">
<h2 id="lush-index.html"><a href="1992/lush/lush.c">1992/lush</a> (<a href="1992/lush/index.html%5D">index.html</a>)</h2>
<h1 id="lush"><a href="1992/lush/index.html">1992/lush</a></h1>
<h2 id="source-code-lush.c">Source code: <a href="1992/lush/lush.c">lush.c</a></h2>
</div>
<p><a href="#yusuke">Yusuke</a> 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.</p>
@@ -1397,11 +1470,13 @@ demonstrate it as using make was problematic.</p>
<p>NOTE: this entry cannot work with clang due to different compiler messages (it
will compile fine but it won’t work). See <a href="bugs.html">bugs.html</a> for details.</p>
<div id="1992_marangon">
<h2 id="marangon-index.html"><a href="1992/marangon/marangon.c">1992/marangon</a> (<a href="1992/marangon/index.html">index.html</a>)</h2>
<h1 id="marangon"><a href="1992/marangon/index.html">1992/marangon</a></h1>
<h2 id="source-code-marangon.c">Source code: <a href="1992/marangon/marangon.c">marangon.c</a></h2>
</div>
<p><a href="#cody">Cody</a> made this more portable by changing the <code>void main()</code> to be <code>int main()</code>.</p>
<div id="1992_nathan">
<h2 id="nathan-index.html"><a href="1992/nathan/nathan.c">1992/nathan</a> (<a href="1992/nathan/index.html">index.html</a>)</h2>
<h1 id="nathan"><a href="1992/nathan/index.html">1992/nathan</a></h1>
<h2 id="source-code-nathan.c">Source code: <a href="1992/nathan/nathan.c">nathan.c</a></h2>
</div>
<p><a href="#cody">Cody</a> 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
@@ -1412,7 +1487,8 @@ participates in the IOCCC, that it must be our fault! :-)</p>
<p>Cody also added the <a href="1992/nathan/try.sh">try.sh</a> script that runs a few commands
that we suggested as well as one he provided.</p>
<div id="1992_vern">
<h2 id="vern-index.html"><a href="1992/vern/vern.c">1992/vern</a> (<a href="1992/vern/index.html%5D">index.html</a>)</h2>
<h1 id="vern"><a href="1992/vern/index.html">1992/vern</a></h1>
<h2 id="source-code-vern.c">Source code: <a href="1992/vern/vern.c">vern.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed an infinite loop if one were to input numbers &lt; <code>0</code> or &gt; <code>077</code>. The
problem was that it tried to use <code>scanf(3)</code> with the format specifier <code>"%o %o"</code> in a
@@ -1423,8 +1499,11 @@ processed or some error occurs) or a function it called returned non-zero.</p>
new char arrays (always cleared in the beginning of the loop) and then using
<code>strtol(3)</code> with a base of <code>8</code> (as it’s octal), checking for <code>&lt; 0 || &gt; 077</code> on
both numbers (using <code>"%o %o"</code> does not solve the problem).</p>
<p>This was deemed a problem to fix as the Judges’ remarks hinted that this was how
it used to be.</p>
<div id="1992_westley">
<h2 id="westley-index.html-5"><a href="1992/westley/westley.c">1992/westley</a> (<a href="1992/westley/index.html%5D">index.html</a>)</h2>
<h1 id="westley-5"><a href="1992/westley/index.html">1992/westley</a></h1>
<h2 id="source-code-westley.c-5">Source code: <a href="1992/westley/westley.c">westley.c</a></h2>
</div>
<p><a href="#cody">Cody</a> fixed this to work for clang by changing the third and fourth arg of
<code>main()</code> to be <code>char ** inside</code>main()<code>; clang requires args 2 - 4 to be</code>char
@@ -1465,12 +1544,12 @@ encourage you to try the original without two args :-)</p>
<h1 id="section-9">1993</h1>
</div>
<div id="1993_ant">
<h2 id="ant-index.html-2"><a href="1993/ant/ant.c">1993/ant</a> (<a href="1993/ant/index.html%5D">index.html</a>)</h2>
<h2 id="ant-index.html"><a href="1993/ant/ant.c">1993/ant</a> (<a href="1993/ant/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> added the <a href="1993/ant/try.sh">try.sh</a> script and a data file,
<a href="1993/ant/ants.txt">ants.txt</a>, full of ants for the script.</p>
<div id="1993_cmills">
<h2 id="cmills-index.html-1"><a href="1993/cmills/cmills.c">1993/cmills</a> (<a href="1993/cmills/index.html%5D">index.html</a>)</h2>
<h2 id="cmills-index.html"><a href="1993/cmills/cmills.c">1993/cmills</a> (<a href="1993/cmills/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#yusuke">Yusuke</a> suggested that with modern systems this goes too fast so he added a call
to <code>usleep(3)</code> in a patch he made. <a href="#cody">Cody</a> made it configurable at compilation by
@@ -1526,7 +1605,7 @@ index.html files for details.</p>
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).</p>
<div id="1993_rince">
<h2 id="rince-index.html-1"><a href="1993/rince/rince.c">1993/rince</a> (<a href="1993/rince/index.html%5D">index.html</a>)</h2>
<h2 id="rince-index.html"><a href="1993/rince/rince.c">1993/rince</a> (<a href="1993/rince/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#yusuke">Yusuke</a> supplied a patch to get this to work in modern systems. This fix also
applies the compatibility issue of <code>select(2)</code> described in the index.html file.</p>
@@ -1542,7 +1621,7 @@ compile time. See the index.html for details.</p>
</div>
<p><a href="#cody">Cody</a> made this use <code>fgets(3)</code> not <code>gets(3)</code>.</p>
<div id="1993_vanb">
<h2 id="vanb-index.html-1"><a href="1993/vanb/vanb.c">1993/vanb</a> (<a href="1993/vanb/index.html%5D">index.html</a>)</h2>
<h2 id="vanb-index.html"><a href="1993/vanb/vanb.c">1993/vanb</a> (<a href="1993/vanb/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> fixed this to work with clang. The problem was that the third arg to main()
was not a <code>char **. Instead</code>O5()<code>(which was</code>main()<code>via</code>-DO5=main`) is now
@@ -1612,7 +1691,7 @@ shorter PDF file,
newsletter was found on the Internet Wayback Machine and the article was
extracted as a PDF in the macOS <code>Preview.app</code> (<code>File -&gt; Print</code> feature).</p>
<div id="1994_imc">
<h2 id="imc-index.html-1"><a href="1994/imc/imc.c">1994/imc</a> (<a href="1994/imc/index.html%5D">index.html</a>)</h2>
<h2 id="imc-index.html"><a href="1994/imc/imc.c">1994/imc</a> (<a href="1994/imc/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> added the <a href="1994/imc/try.sh">try.sh</a> script.</p>
<p>Cody also added inclusion of <code>unistd.h</code> for <code>getpid(2)</code>. While strictly speaking
@@ -1659,7 +1738,7 @@ now there is more important work to do so that the next contest can run.</p>
<p>Cody also added the <a href="1994/schnitzi/try.sh">try.sh</a> and
<a href="1994/schnitzi/try.alt.sh">try.alt.sh</a> scripts.</p>
<div id="1994_shapiro">
<h2 id="shapiro-index.html-1"><a href="1994/shapiro/shapiro.c">1994/shapiro</a> (<a href="1994/shapiro/index.html%5D">index.html</a>)</h2>
<h2 id="shapiro-index.html"><a href="1994/shapiro/shapiro.c">1994/shapiro</a> (<a href="1994/shapiro/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> fixed a bug on systems where <code>EOF != -1</code>. The problem is that <code>getc()</code> and
the related functions do not return <code>-1</code> on EOF or error but rather <code>EOF</code>.
@@ -1700,7 +1779,7 @@ lines of the <code>weisberg</code>, feeding it to <code>primes(1)</code>, showin
primes. It only does the reversed output because the program actually prints
primes.</p>
<div id="1994_westley">
<h2 id="westley-index.html-6"><a href="1994/westley/westley.c">1994/westley</a> (<a href="1994/westley/index.html%5D">index.html</a>)</h2>
<h2 id="westley-index.html"><a href="1994/westley/westley.c">1994/westley</a> (<a href="1994/westley/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> converted the spoiler compiler options (provided by the author) to be
compiler commands and added a script <a href="1994/westley/try.sh">try.sh</a> to
@@ -1788,7 +1867,7 @@ entry decrypts the text or something like that.</p>
<h1 id="section-12">1996</h1>
</div>
<div id="1996_august">
<h2 id="august-index.html-1"><a href="1996/august/august.c">1996/august</a> (<a href="1996/august/index.html%5D">index.html</a>)</h2>
<h2 id="august-index.html"><a href="1996/august/august.c">1996/august</a> (<a href="1996/august/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> fixed a segfault in this program that prevented it from working right and
also fixed an infinite loop in the try commands.</p>
@@ -1876,7 +1955,7 @@ loop so having it in a script is less desired).</p>
method suggested for SunOS rather than having to update the Makefile manually or
running a more complicated command: now one can just run <code>make</code>.</p>
<div id="1996_westley">
<h2 id="westley-index.html-7"><a href="1996/westley/westley.c">1996/westley</a> (<a href="1996/westley/index.html%5D">index.html</a>)</h2>
<h2 id="westley-index.html-1"><a href="1996/westley/westley.c">1996/westley</a> (<a href="1996/westley/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> fixed a segfault in this entry as well as it displaying environmental
variables. Although the scripts showed correct output, it somewhat lessened the
@@ -2163,11 +2242,11 @@ more confusing (even if not confusing).</p>
<p><a href="#cody">Cody</a> made this more portable by changing the <code>void main</code> to <code>int main</code>.</p>
<p>Cody also added the <a href="2000/primenum/try.sh">try.sh</a> script.</p>
<div id="2000_rince">
<h2 id="rince-index.html-2"><a href="2000/rince/rince.c">2000/rince</a> (<a href="2000/rince/index.html%5D">index.html</a>)</h2>
<h2 id="rince-index.html-1"><a href="2000/rince/rince.c">2000/rince</a> (<a href="2000/rince/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> added the <a href="2000/rince/try.sh">try.sh</a> script.</p>
<div id="2000_robison">
<h2 id="robison-index.html-1"><a href="2000/robison/robison.c">2000/robison</a> (<a href="2000/robison/index.html%5D">index.html</a>)</h2>
<h2 id="robison-index.html"><a href="2000/robison/robison.c">2000/robison</a> (<a href="2000/robison/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> fixed an infinite loop that occurred if invalid input was entered, flooding
the screen with:</p>
@@ -2228,7 +2307,7 @@ details) the source code is now executable by default.</p>
<h1 id="section-15">2001</h1>
</div>
<div id="2001_anonymous">
<h2 id="anonymous-index.html-1"><a href="2001/anonymous/anonymous.c">2001/anonymous</a> (<a href="2001/anonymous/index.html%5D">index.html</a>)</h2>
<h2 id="anonymous-index.html"><a href="2001/anonymous/anonymous.c">2001/anonymous</a> (<a href="2001/anonymous/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> 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
@@ -2429,7 +2508,7 @@ the author. The other problems are documented so were not fixed. See
index.html for details.</p>
<p>Cody also added the <a href="2001/schweikh/try.sh">try.sh</a> script.</p>
<div id="2001_westley">
<h2 id="westley-index.html-8"><a href="2001/westley/westley.c">2001/westley</a> (<a href="2001/westley/index.html%5D">index.html</a>)</h2>
<h2 id="westley-index.html-2"><a href="2001/westley/westley.c">2001/westley</a> (<a href="2001/westley/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> added the script <a href="2001/westley/try.sh">try.sh</a> to automate a heap of commands
that we, the IOCCC judges, suggested, as well as some additional ones that he
@@ -2439,7 +2518,7 @@ described in the index.html, based on the author’s remarks.</p>
<h1 id="section-16">2004</h1>
</div>
<div id="2004_anonymous">
<h2 id="anonymous-index.html-2"><a href="2004/anonymous/anonymous.c">2004/anonymous</a> (<a href="2004/anonymous/index.html%5D">index.html</a>)</h2>
<h2 id="anonymous-index.html-1"><a href="2004/anonymous/anonymous.c">2004/anonymous</a> (<a href="2004/anonymous/index.html%5D">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> added the <a href="2004/anonymous/try.sh">try.sh</a> script.</p>
<div id="2004_arachnid">
@@ -3168,7 +3247,7 @@ theoretically make it work in Windows.</p>
<p>Cody also added the <a href="2012/omoikane/try.sh">try.sh</a> and
<a href="2012/omoikane/try.alt.sh">try.alt.sh</a> scripts.</p>
<div id="2012_tromp">
<h2 id="tromp-index.html-1"><a href="2012/tromp/tromp.c">2012/tromp</a> (<a href="2012/tromp/index.html">index.html</a>)</h2>
<h2 id="tromp-index.html"><a href="2012/tromp/tromp.c">2012/tromp</a> (<a href="2012/tromp/index.html">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> added the <a href="2012/tromp/try.sh">try.sh</a> script.</p>
<div id="2012_vik">
@@ -3350,7 +3429,7 @@ Firefox both had the problem.</p>
implicitly (Linux doesn’t seem to but macOS does).</p>
<p>Cody also added the <a href="2013/morgan1/try.sh">try.sh</a> script.</p>
<div id="2013_robison">
<h2 id="robison-index.html-2"><a href="2013/robison/robison.c">2013/robison</a> (<a href="2013/robison/index.html">index.html</a>)</h2>
<h2 id="robison-index.html-1"><a href="2013/robison/robison.c">2013/robison</a> (<a href="2013/robison/index.html">index.html</a>)</h2>
</div>
<p><a href="#cody">Cody</a> added the <a href="2013/robison/try.sh">try.sh</a> script.</p>
<div id="2014">
+160 -86
View File
@@ -29,12 +29,13 @@ on a IOCCC entry by entry basis.
<div id="1984">
# 1984
# [1984](1984/index.html)
</div>
<div id="1984_anonymous">
## [1984/anonymous](1984/anonymous/anonymous.c) ([index.html](1984/anonymous/index.html))
# [1984/anonymous](1984/anonymous/index.html)
## Source code: [anonymous.c](1984/anonymous/anonymous.c)
</div>
[Cody](#cody) fixed this to work for macOS.
@@ -61,7 +62,8 @@ Scovell](https://web.archive.org/web/20070120220721/https://thomasscovell.com/ta
<div id="1984_decot">
## [1984/decot](1984/decot/decot.c) ([index.html](1984/decot/index.html]))
# [1984/decot](1984/decot/index.html)
## Source code: [decot.c](1984/decot/decot.c)
</div>
[Cody](#cody) fixed this to not require `-traditional-cpp` which some compilers like
@@ -128,7 +130,8 @@ To see the difference from start to fixed:
<div id="1984_laman">
## [1984/laman](1984/laman/laman.c) ([index.html](1984/laman/index.html]))
# [1984/laman](1984/laman/index.html)
## Source code: [laman.c](1984/laman/laman.c)
</div>
[Cody](#cody) added the [try.sh](1984/laman/try.sh) script.
@@ -140,7 +143,8 @@ This was fixed on 30 October 2023 after the bug status was changed from INABIAF
<div id="1984_mullender">
## [1984/mullender](1984/mullender/mullender.c) ([index.html](1984/mullender/index.html]))
# [1984/mullender](1984/mullender/index.html)
## Source code: [mullender.c](1984/mullender/mullender.c)
</div>
[Cody](#cody) provided an [alternate version](1984/mullender/mullender.alt.c),
@@ -164,12 +168,13 @@ Repo](https://github.com/dspinellis/unix-history-repo/tree/Research-Release).
<div id="1985">
# 1985
# [1985](1985/index.html)
</div>
<div id="1985_applin">
## [1985/applin](1985/applin/applin.c) ([index.html](1985/applin/index.html]))
# [1984/applin](1985/applin/index.html)
## Source code: [applin.c](1985/applin/applin.c)
</div>
Both [Cody](#cody) and [Yusuke](#yusuke) fixed this; Yusuke got this to not crash and Cody fixed it
@@ -195,7 +200,8 @@ returning to the shell. The original code does not have this change.
<div id="1985_august">
## [1985/august](1985/august/august.c) ([index.html](1985/august/index.html))
# [1985/august](1985/august/index.html)
## Source code: [august.c](1985/august/august.c)
</div>
[Cody](#cody), out of abundance of caution, added a second arg to `main()` because some
@@ -216,7 +222,8 @@ default value).
<div id="1985_lycklama">
## [1985/lycklama](1985/lycklama/lycklama.c) ([index.html](1985/lycklama/index.html]))
# [1985/lycklama](1985/lycklama/index.html)
## Source code: [lycklama.c](1985/lycklama/lycklama.c)
</div>
[Cody](#cody) fixed this to compile with modern compilers. In the past one could get away
@@ -231,7 +238,8 @@ Cody also provided the [try.alt.sh](1985/lycklama/try.alt.sh) script.
<div id="1985_shapiro">
## [1985/shapiro](1985/shapiro/shapiro.c) ([index.html](1985/shapiro/index.html]))
# [1985/shapiro](1985/1985/lycklama/index.html)
## Source code: [index.html](1985/shapiro/shapiro.c])
</div>
[Cody](#cody) added the alt code which allows one to resize the maze and he also added
@@ -243,7 +251,8 @@ the default).
<div id="1985_sicherman">
## [1985/sicherman](1985/sicherman/sicherman.c) ([index.html](1985/sicherman/index.html]))
# [1985/sicherman](1985/sicherman/index.html)
## Source code: [1985/sicherman](1985/sicherman/sicherman.c)
</div>
[Cody](#cody) fixed this _very twisted entry_ to not require `-traditional-cpp`. Fixing
@@ -362,12 +371,13 @@ Cody also added the [try.sh](1985/sicherman/try.sh) and
<div id="1986">
# 1986
# [1986](1986/index.html)
</div>
<div id="1986_applin">
## [1986/applin](1986/applin/applin.c) ([index.html](1986/applin/index.html]))
# [1986/applin](1986/applin/index.html])
## Source code: [applin.c](1986/applin/applin.c)
</div>
[Cody](#cody) made the C file executable so one does not have to do `sh
@@ -375,14 +385,16 @@ Cody also added the [try.sh](1985/sicherman/try.sh) and
<div id="1986_bright">
## [1986/bright](1986/bright/bright.c) ([index.html](1986/bright/index.html]))
# [1986/bright](1986/bright/index.html)
## Source code: [bright.c](1986/bright/bright.c)
</div>
[Cody](#cody) added the [try.sh](1986/bright/try.sh) script.
<div id="1986_hague">
## [1986/hague](1986/hague/hague.c) ([index.html](1986/hague/index.html]))
# [1986/hague](1986/hague/index.html])
## Source code: [hague.c](1986/hague/hague.c)
</div>
[Cody](#cody) made this use `fgets()`.
@@ -392,7 +404,8 @@ program the added `input.txt` file.
<div id="1986_holloway">
## [1986/holloway](1986/holloway/holloway.c) ([index.html](1986/holloway/index.html]))
# [1986/holloway](1986/holloway/index.html)
## Source code: [holloway.c](1986/holloway/holloway.c)
</div>
[Cody](#cody) fixed this to compile and work with clang (it already worked with gcc).
@@ -404,7 +417,8 @@ and gcc.
<div id="1986_marshall">
## [1986/marshall](1986/marshall/marshall.c) ([index.html](1986/marshall/index.html]))
# [1986/marshall](1986/marshall/index.html)
## Source code: [marshall.c](1986/marshall/marshall.c)
</div>
[Cody](#cody) got this to compile and work with clang and gcc. He noted that he tried to
@@ -466,7 +480,8 @@ are produced.
<div id="1986_pawka">
## [1986/pawka](1986/pawka/pawka.c) ([index.html](1986/pawka/index.html))
# [1986/pawka](1986/pawka/index.html)
## Source code: [pawka.c](1986/pawka/pawka.c)
</div>
[Cody](#cody) noticed and fixed a funny mistake in the Makefile where a
@@ -475,7 +490,8 @@ are produced.
<div id="1986_stein">
## [1986/stein](1986/stein/stein.c) ([index.html](1986/stein/index.html]))
# [1986/stein](1986/stein/index.html)
## Source code: [stein.c](1986/stein/stein.c)
</div>
[Cody](#cody) restored the original entry which was a single line. The code
@@ -488,7 +504,8 @@ commands that we suggest in order to get it to show clean output.
<div id="1986_wall">
## [1986/wall](1986/wall/wall.c) ([index.html](1986/wall/index.html]))
# [1986/wall](1986/wall/index.html)
## Source code: [wall.c](1986/wall/wall.c)
</div>
[Cody](#cody) fixed this so that it does not require `-traditional-cpp`. This took a fair
@@ -599,19 +616,21 @@ There might have been other changes as well.
<div id="1987">
# 1987
# [1987](1987/index.html)
</div>
<div id="1987_biggar">
## [1987/biggar](1987/biggar/biggar.c) ([index.html](1987/biggar/index.html))
# [1987/biggar](1987/biggar/index.html)
## Source code: [biggar.c](1987/biggar/biggar.c)
</div>
[Cody](#cody) added the [try.sh](1987/biggar/try.sh) script.
<div id="1987_heckbert">
## [1987/heckbert](1987/heckbert/heckbert.c) ([index.html](1987/heckbert/index.html))
# [1987/heckbert](1987/heckbert/index.html)
## Source code: [heckbert.c](1987/heckbert/heckbert.c)
</div>
[Cody](#cody) made this look more like the original entry by restoring the `#define` of
@@ -627,7 +646,8 @@ that for System V we had to do this) Cody added to the Makefile
<div id="1987_hines">
## [1987/hines](1987/hines/hines.c) ([index.html](1987/hines/index.html))
# [1987/hines](1987/hines/index.html)
## Source code: [hines.c](1987/hines/hines.c)
</div>
[Cody](#cody) added the [try.sh](1987/hines/try.sh) script and the C file
@@ -637,7 +657,8 @@ running the program on the text file demonstrates.
<div id="1987_lievaart">
## [1987/lievaart](1987/lievaart/lievaart.c) ([index.html](1987/lievaart/index.html))
# [1987/lievaart](1987/lievaart/index.html)
## Source code: [lievaart.c](1987/lievaart/lievaart.c)
</div>
[Cody](#cody) added back the documented checks for invalid input which no longer worked
@@ -684,7 +705,8 @@ size constraints of the contest).
<div id="1987_wall">
## [1987/wall](1987/wall/wall.c) ([index.html](1987/wall/index.html]))
# [1987/wall](1987/wall/index.html)
## Source code: [wall.c](1987/wall/wall.c)
</div>
[Cody](#cody) made this use `fgets(3)`.
@@ -693,7 +715,8 @@ Cody also added the [try.sh](1987/wall/try.sh) script.
<div id="1987_westley">
## [1987/westley](1987/westley/westley.c) ([index.html](1987/westley/index.html]))
# [1987/westley](1987/westley/index.html)
## Source code: [westley.c](1987/westley/westley.c)
</div>
[Cody](#cody) fixed this for modern systems. The problem was `'assignment to cast is
@@ -710,12 +733,13 @@ unlikely(?) but nevertheless suggested case that `putchar()` is not available.
<div id="1988">
# 1988
# [1988](1988/index.html)
</div>
<div id="1988_dale">
## [1988/dale](1988/dale/dale.c) ([index.html](1988/dale/index.html]))
# [1988/dale](1988/dale/index.html)
## Source code: [dale.c](1988/dale/dale.c)
</div>
[Cody](#cody) fixed this twisted entry (as we called it :-) ) for modern compilers,
@@ -797,7 +821,8 @@ Cody also provided the [try.sh](1988/dale/try.sh) script.
<div id="1988_isaak">
## [1988/isaak](1988/isaak/isaak.c) ([index.html](1988/isaak/index.html]))
# [1988/isaak](1988/isaak/index.html)
## Source code: [isaak.c](1988/isaak/isaak.c)
</div>
[Cody](#cody) fixed this to work for modern systems. The problem was that the important
@@ -807,7 +832,8 @@ index.html file for more details.
<div id="1988_litmaath">
## [1988/litmaath](1988/litmaath/litmaath.c) ([index.html](1988/litmaath/index.html))
# [1988/litmaath](1988/litmaath/index.html)
## Source code: [litmaath.c](1988/litmaath/litmaath.c)
</div>
[Cody](#cody) added the alt code which is code that we suggested at the time of
@@ -815,7 +841,8 @@ publication, in the remarks, to help understand the entry, and for fun.
<div id="1988_phillipps">
## [1988/phillipps](1988/phillipps/phillipps.c) ([index.html](1988/phillipps/index.html]))
# [1988/phillipps](1988/phillipps/index.html)
## Source code: [phillipps.c](1988/phillipps/phillipps.c)
</div>
[Cody](#cody) fixed this for modern systems. It did not compile with clang because it
@@ -836,14 +863,16 @@ to itself and `pain()` does now.
<div id="1988_reddy">
## [1988/reddy](1988/reddy/reddy.c) ([index.html](1988/reddy/index.html))
# [1988/reddy](1988/reddy/index.html)
## Source code: [reddy.c](1988/reddy/reddy.c)
</div>
[Cody](#cody) made this use `fgets(3)`.
<div id="1988_spinellis">
## [1988/spinellis](1988/spinellis/spinellis.c) ([index.html](1988/spinellis/index.html]))
# [1988/spinellis](1988/spinellis/index.html)
## Source code: [spinellis.c](1988/spinellis/spinellis.c)
</div>
[Cody](#cody) provided an [alternate version](1988/spinellis/spinellis.alt.c) so that
@@ -861,7 +890,8 @@ thank him for this ghastly point! :-)
<div id="1988_westley">
## [1988/westley](1988/westley/westley.c) ([index.html](1988/westley/index.html]))
# [1988/westley](1988/westley/index.html)
## Source code: [westley.c](1988/westley/westley.c)
</div>
The [original version](1988/westley/westley.alt.c), provided as alternate code,
@@ -879,12 +909,13 @@ not strictly necessary but nonetheless more correct, even if not warned against.
<div id="1989">
# 1989
# [1989](1989/index.html)
</div>
<div id="1989_fubar">
## [1989/fubar](1989/fubar/fubar.c) ([index.html](1989/fubar/index.html]))
# [1989/fubar](1989/fubar/index.html)
## Source code: [fubar.c](1989/fubar/fubar.c)
</div>
[Cody](#cody) got this to work with modern systems. The main issues were that an
@@ -920,7 +951,8 @@ Cody also added the [try.sh](1989/fubar/try.sh) script.
<div id="1989_jar.1">
## [1989/jar.1](1989/jar.1/jar.1.c) ([index.html](1989/jar.1/index.html]))
# [1989/jar.1](1989/jar.1/index.html)
## Source code: [jar.1.c](1989/jar.1/jar.1.c)
</div>
To prevent annoying output to `/dev/tty` we changed the code to simulate the
@@ -939,7 +971,8 @@ entry and the alt code) anyway, it works out well.
<div id="1989_jar.2">
## [1989/jar.2](1989/jar.2/jar.2.c) ([index.html](1989/jar.2/index.html]))
# [1989/jar.2](1989/jar.2/index.html)
## Source code: [jar.2.c](1989/jar.2/jar.2.c)
</div>
[Cody](#cody) fixed this to work with modern compilers. Modern compilers do not allow
@@ -980,7 +1013,8 @@ because the `alt` rule had what normally is in the `${PROG}.alt` rule.
<div id="1989_ovdluhe">
## [1989/ovdluhe](1989/ovdluhe/ovdluhe.c) ([index.html](1989/ovdluhe/index.html]))
# [1989/ovdluhe](1989/ovdluhe/index.html)
## Source code: [ovdluhe.c](1989/ovdluhe/ovdluhe.c)
</div>
[Cody](#cody) fixed an infinite loop where the program would print the same thing over
@@ -1002,7 +1036,8 @@ discovered and fixed.
<div id="1989_paul">
## [1989/paul](1989/paul/paul.c) ([index.html](1989/paul/index.html]))
# [1989/paul](1989/paul/index.html)
## Source code: [paul.c](1989/paul/paul.c)
</div>
[Cody](#cody) fixed a segfault under macOS that prevented it from working. The problem
@@ -1015,7 +1050,8 @@ index.html for details.
<div id="1989_robison">
## [1989/robison](1989/robison/robison.c) ([index.html](1989/robison/index.html]))
# [1989/robison](1989/robison/index.html)
## Source code: [robison.c](1989/robison/robison.c)
</div>
[Yusuke Endoh](#yusuke) fixed this to compile under modern systems. To see the changes
@@ -1032,7 +1068,8 @@ Cody also added the [try.sh](1989/robison/try.sh) script.
<div id="1989_tromp">
## [1989/tromp](1989/tromp/tromp.c) ([index.html](1989/tromp/index.html]))
# [1989/tromp](1989/tromp/index.html)
## Source code: [tromp.c](1989/tromp/tromp.c)
</div>
[Cody](#cody) and [Yusuke](#yusuke) fixed this entry: Yusuke fixed this to compile with gcc and Cody
@@ -1063,14 +1100,16 @@ not his only reason :-) )
<div id="1989_vanb">
## [1989/vanb](1989/vanb/vanb.c) ([index.html](1989/vanb/index.html]))
# [1989/vanb](1989/vanb/index.html)
## Source code: [vanb.c](1989/vanb/vanb.c)
</div>
[Cody](#cody) added the [try.sh](1989/vanb/try.sh) script.
<div id="1989_westley">
## [1989/westley](1989/westley/westley.c) ([index.html](1989/westley/index.html]))
# [1989/westley](1989/westley/index.html)
## Source code: [westley.c](1989/westley/westley.c)
</div>
[Cody](#cody) fixed this for clang, except that two versions generated by the program
@@ -1091,7 +1130,7 @@ might just not be possible.
The way it was fixed might be hard to see and describe but this is an attempt.
Because `main()`'s args were all `int`s, `main()` had to call a new function
which is allowed to have args as `int` (instead of `main()`'s args being int and
the rest being `char **) but this is not as straight forward as it is for other
the rest being `char **`) but this is not as straight forward as it is for other
entries (if you look at the code you might see what is meant; the function called
is `pain()`).
@@ -1100,17 +1139,17 @@ four**, even though the original program has four args. This is because not all
versions of clang support four args and that is one of the issues with version 2
and 3 as it generates `main()` to have four args and the wrong type, all `int`s.
In the call to the new function, `pain()`, from `main()`, one of the `char **s
In the call to the new function, `pain()`, from `main()`, one of the `char **`s
is used twice, once as `argc` with bitwise AND with 2, naturally first being
cast to an `int` (`(int)ABBA&2`), and once as a `char **, the fourth arg to
cast to an `int` (`(int)ABBA&2`), and once as a `char **`, the fourth arg to
`pain()` (yes even though `pain()` takes all `int`s).
The argc,, meanwhile, `tang`, is used once and the second arg, `char **gnat` is
The argc, meanwhile, `tang`, is used once and the second arg, `char **gnat` is
used once (observe how `tang` is `gnat` spelt backwards as this is one of the
things that makes this a masterpiece and very hard if not impossible to fix
completely). Fortunately it is not actually necessary to use all four args (of
`main()`) in the call which might or might not be surprising, especially as it
uses one of the args, a `char **, instead of an `int` (through casts), twice
uses one of the args, a `char **`, instead of an `int` (through casts), twice
rather than just passing in for the fourth arg (the fourth arg passed in is the
third arg to `main()`).
@@ -1142,12 +1181,13 @@ environmental variable; see the index.html for details.
<div id="1990">
# 1990
# [1990](1990/index.html)
</div>
<div id="1990_baruch">
## [1990/baruch](1990/baruch/baruch.c) ([index.html](1990/baruch/index.html]))
# [1990/baruch](1990/baruch/index.html)
## Source code: [baruch.c](1990/baruch/baruch.c)
</div>
[Cody](#cody) added the [try.sh](1990/baruch/try.sh) script.
@@ -1169,7 +1209,8 @@ judges was retained.
<div id="1990_cmills">
## [1990/cmills](1990/cmills/cmills.c) ([index.html](1990/cmills/index.html]))
# [1990/cmills](1990/cmills/index.html)
## Source code: [cmills.c](1990/cmills/cmills.c)
</div>
[Yusuke](#yusuke) got this to work in modern systems (it previously resulted in a bus
@@ -1179,7 +1220,8 @@ error).
<div id="1990_dds">
## [1990/dds](1990/dds/dds.c) ([index.html](1990/dds/index.html]))
# [1990/dds](1990/dds/index.html)
## Source code: [dds.c](1990/dds/dds.c)
</div>
[Yusuke](#yusuke) and [Cody](#cody) in conjunction fixed this for modern systems (both fixed a
@@ -1198,7 +1240,8 @@ Cody also made this use `fgets(3)`.
<div id="1990_dg">
## [1990/dg](1990/dg/dg.c) ([index.html](1990/dg/index.html]))
# [1990/dg](1990/dg/index.html)
## Source code: [dg.c](1990/dg/dg.c)
</div>
[Cody](#cody) fixed this for modern systems. There were two problems to be resolved.
@@ -1223,7 +1266,8 @@ Cody also added the [try.sh](1990/dg/try.sh) script.
<div id="1990_jaw">
## [1990/jaw](1990/jaw/jaw.c) ([index.html](1990/jaw/index.html]))
# [1990/jaw](1990/jaw/index.html)
## Source code: [jaw.c](1990/jaw/jaw.c)
</div>
[Cody](#cody) fixed the script to work properly in modern environments including writing
@@ -1242,7 +1286,8 @@ input but which now works.
<div id="1990_pjr">
## [1990/pjr](1990/pjr/pjr.c) ([index.html](1990/pjr/index.html]))
# [1990/pjr](1990/pjr/index.html)
## Source code: [pjr.c](1990/pjr/pjr.c)
</div>
[Cody](#cody) added the [alt code](1990/pjr/pjr.alt.c) which was suggested by the judges
@@ -1251,7 +1296,8 @@ something else and is recommended by the author as well.
<div id="1990_scjones">
## [1990/scjones](1990/scjones/scjones.c) ([index.html](1990/scjones/index.html]))
# [1990/scjones](1990/scjones/index.html)
## Source code: [scjones.c](1990/scjones/scjones.c)
</div>
[Yusuke](#yusuke) suggested `-ansi` to get the entry to compile due to trigraphs and [Cody](#cody)
@@ -1262,7 +1308,8 @@ entry does.
<div id="1990_tbr">
## [1990/tbr](1990/tbr/tbr.c) ([index.html](1990/tbr/index.html]))
# [1990/tbr](1990/tbr/index.html)
## Source code: [tbr.c](1990/tbr/tbr.c)
</div>
[Cody](#cody) fixed this to work with modern compilers; `exit(3)` returns void but the
@@ -1282,7 +1329,8 @@ author intended, but more compact.
<div id="1990_theorem">
## [1990/theorem](1990/theorem/theorem.c) ([index.html](1990/theorem/index.html]))
# [1990/theorem](1990/theorem/index.html)
## Source code: [theorem.c](1990/theorem/theorem.c)
</div>
[Cody](#cody) fixed this to compile with modern systems.
@@ -1325,7 +1373,8 @@ incomplete).
<div id="1990_stig">
## [1990/stig](1990/stig/stig.c) ([index.html](1990/stig/index.html))
# [1990/stig](1990/stig/index.html)
## Source code: [stig.c](1990/stig/stig.c)
</div>
[Cody](#cody) fixed the paths in the Makefile so that this would build in Linux (it
@@ -1336,7 +1385,8 @@ He also changed the Makefile to use `bash` not `zsh` as not all systems have
<div id="1990_westley">
## [1990/westley](1990/westley/westley.c) ([index.html](1990/westley/index.html]))
# [1990/westley](1990/westley/index.html)
## Source code: [westley.c](1990/westley/westley.c)
</div>
[Cody](#cody) fixed this for modern systems. It had `1s` in places for a `short
@@ -1357,12 +1407,13 @@ original code.
<div id="1991">
# 1991
# [1991](1991/index.html)
</div>
<div id="1991_ant">
## [1991/ant](1991/ant/ant.c) ([index.html](1991/ant/index.html]))
# [1991/ant](1991/ant/index.html)
## Source code: [ant.c](1991/ant/ant.c)
</div>
[Cody](#cody) added [alt code](1991/ant/ant.alt.c) that will be a bit easier to use for
@@ -1379,7 +1430,8 @@ The other keys were left unchanged.
<div id="1991_brnstnd">
## [1991/brnstnd](1991/brnstnd/brnstnd.c) ([index.html](1991/brnstnd/index.html]))
# [1991/brnstnd](1991/brnstnd/index.html)
## Source code: [brnstnd.c](1991/brnstnd/brnstnd.c)
</div>
[Cody](#cody) fixed this for modern systems. There were two invalid operands to binary
@@ -1397,7 +1449,8 @@ Cody also added the [try.sh](1991/brnstnd/try.sh) script and
<div id="1991_buzzard">
## [1991/buzzard](1991/buzzard/buzzard.c) ([index.html](1991/buzzard/index.html]))
# [1991/buzzard](1991/buzzard/index.html)
## Source code: [buzzard.c](1991/buzzard/buzzard.c)
</div>
[Cody](#cody) fixed this so that the coordinates being specified would not crash the
@@ -1417,7 +1470,8 @@ completing or killing the program.
<div id="1991_davidguy">
## [1991/davidguy](1991/davidguy/davidguy.c) ([index.html](1991/davidguy/index.html]))
# [1991/davidguy](1991/davidguy/index.html)
## Source code: [davidguy.c](1991/davidguy/davidguy.c)
</div>
As some systems like macOS can be particular about not declaring functions [Cody](#cody)
@@ -1427,7 +1481,8 @@ declared first.
<div id="1991_dds">
## [1991/dds](1991/dds/dds.c) ([index.html](1991/dds/index.html]))
# [1991/dds](1991/dds/index.html)
## Source code: [dds.c](1991/dds/dds.c)
</div>
[Cody](#cody) fixed a segfault that prevented this entry from working in any condition
@@ -1558,7 +1613,8 @@ entry was fixed. It has not been done in all.
<div id="1991_fine">
## [1991/fine](1991/fine/fine.c) ([index.html](1991/fine/index.html))
# [1991/fine](1991/fine/index.html)
## Source code: [fine.c](1991/fine/fine.c)
</div>
[Cody](#cody) made it look much more like the original entry even after the fix that
@@ -1583,7 +1639,8 @@ which ones? :-) )
<div id="1991_rince">
## [1991/rince](1991/rince/rince.c) ([index.html](1991/rince/index.html))
# [1991/rince](1991/rince/index.html)
## Source code: [rince.c](1991/rince/rince.c)
</div>
[Cody](#cody) fixed it so that the messages that show if you won or lost will be seen
@@ -1600,7 +1657,8 @@ the above fix was applied to these versions too.
<div id="1991_westley">
## [1991/westley](1991/westley/westley.c) ([index.html](1991/westley/index.html]))
# [1991/westley](1991/westley/index.html)
## Source code: [westley.c](1991/westley/westley.c)
</div>
[Cody](#cody) fixed a segfault in this program which prevented it from working. The
@@ -1624,12 +1682,13 @@ should have been removed.
<div id="1992">
# 1992
# [1992](1992/index.html)
</div>
<div id="1992_adrian">
## [1992/adrian](1992/adrian/adrian.c) ([index.html](1992/adrian/index.html]))
# [1992/adrian](1992/adrian/index.html)
## Source code: [adrian.c](1992/adrian/adrian.c)
</div>
[Cody](#cody) fixed the code so that it will try opening the file the code was compiled
@@ -1706,7 +1765,8 @@ generated.
<div id="1992_albert">
## [1992/albert](1992/albert/albert.c) ([index.html](1992/albert/index.html]))
# [1992/albert](1992/albert/index.html)
## Source code: [albert.c](1992/albert/albert.c)
</div>
[Cody](#cody) fixed this to compile with modern systems. Note that in 1996 a bug fix was
@@ -1722,7 +1782,8 @@ the alt code.
<div id="1992_ant">
## [1992/ant](1992/ant/ant.c) ([index.html](1992/ant/index.html]))
# [1992/ant](1992/ant/index.html)
## Source code: [ant.c](1992/ant/ant.c)
</div>
[Cody](#cody) fixed the Makefile so that the program will actually work with it (or at
@@ -1746,7 +1807,8 @@ Cody also added the [try.sh](1992/ant/try.sh) script.
<div id="1992_buzzard.1">
## [1992/buzzard.1](1992/buzzard.1/buzzard.1.c) ([index.html](1992/buzzard.1/index.html))
# [1992/buzzard.1](1992/buzzard.1/index.html)
## Source code: [buzzard.1.c](1992/buzzard.1/buzzard.1.c)
</div>
[Cody](#cody) added a check for the right number of args, exiting 1 if not enough (2)
@@ -1759,7 +1821,8 @@ commands that we suggested and some additional ones that he provide for some fun
<div id="1992_buzzard.2">
## [1992/buzzard.2](1992/buzzard.2/buzzard.2.c) ([index.html](1992/buzzard.2/index.html))
# [1992/buzzard.2](1992/buzzard.2/index.html)
## Source code: [buzzard.2.c](1992/buzzard.2/buzzard.2.c)
</div>
[Cody](#cody) fixed the alt code to compile. The problem was it assumed that
@@ -1771,7 +1834,8 @@ and its alt code.
<div id="1992_gson">
## [1992/gson](1992/gson/gson.c) ([index.html](1992/gson/index.html]))
# [1992/gson](1992/gson/index.html)
## Source code: [gson.c](1992/gson/gson.c)
</div>
[Cody](#cody) fixed a crash that prevented this entry from working in some cases in some
@@ -1793,20 +1857,22 @@ details if you're interested in trying to understand it (or fix?).
<div id="1992_imc">
## [1992/imc](1992/imc/imc.c) ([index.html](1992/imc/index.html]))
# [1992/imc](1992/imc/index.html)
## Source code: [imc.c](1992/imc/imc.c)
</div>
[Cody](#cody) provided the [try.sh](1992/imc/try.sh) script.
The original code, [imc.orig.c](1992/imc/imc.orig.c), assumed that `exit(3)`
returned a value but this will cause problems where `exit(3)` returns void. The
returned a value but this will cause problems where `exit(3)` returns `void`. The
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.
<div id="1992_kivinen">
## [1992/kivinen](1992/kivinen/kivinen.c) ([index.html](1992/kivinen/index.html]))
# [1992/kivinen](1992/kivinen/index.html)
## Source code: [kivinen.c](1992/kivinen/kivinen.c)
</div>
It was observed that on modern systems this goes much too quick. [Yusuke](#yusuke) created
@@ -1834,7 +1900,8 @@ it moves towards the right but if you click the mouse it goes back.
<div id="1992_lush">
## [1992/lush](1992/lush/lush.c) ([index.html](1992/lush/index.html]))
# [1992/lush](1992/lush/index.html)
## Source code: [lush.c](1992/lush/lush.c)
</div>
[Yusuke](#yusuke) supplied a patch which makes this work with gcc. Due to how it works (see
@@ -1850,14 +1917,16 @@ will compile fine but it won't work). See [bugs.html](bugs.html) for details.
<div id="1992_marangon">
## [1992/marangon](1992/marangon/marangon.c) ([index.html](1992/marangon/index.html))
# [1992/marangon](1992/marangon/index.html)
## Source code: [marangon.c](1992/marangon/marangon.c)
</div>
[Cody](#cody) made this more portable by changing the `void main()` to be `int main()`.
<div id="1992_nathan">
## [1992/nathan](1992/nathan/nathan.c) ([index.html](1992/nathan/index.html))
# [1992/nathan](1992/nathan/index.html)
## Source code: [nathan.c](1992/nathan/nathan.c)
</div>
[Cody](#cody) added the original file back as it was deemed that the export restrictions
@@ -1873,7 +1942,8 @@ that we suggested as well as one he provided.
<div id="1992_vern">
## [1992/vern](1992/vern/vern.c) ([index.html](1992/vern/index.html]))
# [1992/vern](1992/vern/index.html)
## Source code: [vern.c](1992/vern/vern.c)
</div>
[Cody](#cody) fixed an infinite loop if one were to input numbers < `0` or > `077`. The
@@ -1887,9 +1957,13 @@ 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).
This was deemed a problem to fix as the Judges' remarks hinted that this was how
it used to be.
<div id="1992_westley">
## [1992/westley](1992/westley/westley.c) ([index.html](1992/westley/index.html]))
# [1992/westley](1992/westley/index.html)
## Source code: [westley.c](1992/westley/westley.c)
</div>
[Cody](#cody) fixed this to work for clang by changing the third and fourth arg of