diff --git a/thanks-for-help.html b/thanks-for-help.html index a39cb7d0f..38e237d1c 100644 --- a/thanks-for-help.html +++ b/thanks-for-help.html @@ -404,8 +404,8 @@ on an IOCCC entry by entry basis.

1984

-

1984/anonymous

-

Source code: anonymous.c

+

Winning entry: 1984/anonymous

+

Winning entry source code: anonymous.c

Cody fixed this to work for macOS.

The problem was to do with the way that the read(2) function was redefined. @@ -426,8 +426,8 @@ source code and the tattoo together as an image):

The tattoo was done in 2005 by Thomas Scovell.

-

1984/decot

-

Source code: decot.c

+

Winning entry: 1984/decot

+

Winning entry source code: decot.c

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 @@ -477,8 +477,8 @@ but not clang - or at least some versions.

To see the difference from start to fixed:

    cd 1984/decot ; make diff_orig_prog
-

1984/laman

-

Source code: laman.c

+

Winning entry: 1984/laman

+

Winning entry source code: laman.c

Cody added the try.sh script.

Cody also fixed this to not crash when no arg is specified. Note that if the arg @@ -486,8 +486,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.

-

1984/mullender

-

Source code: mullender.c

+

Winning entry: 1984/mullender

+

Winning entry source code: mullender.c

Cody provided an alternate version, an improved version of the judges, so that everyone can enjoy it with systems @@ -510,8 +510,8 @@ Repo.

1985

-

1984/applin

-

Source code: applin.c

+

Winning entry: 1984/applin

+

Winning entry source code: applin.c

Both Cody and Yusuke fixed this; Yusuke got this to not crash and Cody fixed it to work with macOS.

@@ -530,8 +530,8 @@ shell, after the output (despite having \n in the string - can you 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

-

Source code: august.c

+

Winning entry: 1985/august

+

Winning entry source code: august.c

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 @@ -547,8 +547,8 @@ way.

whether primes(6) is installed or not, but it only does it once with the default value).

-

1985/lycklama

-

Source code: lycklama.c

+

Winning entry: 1985/lycklama

+

Winning entry source code: lycklama.c

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 @@ -558,8 +558,8 @@ changed the #o lines to #define. Also unistd.hindex.html for details.

Cody also provided the try.alt.sh script.

-

1985/shapiro

-

Source code: shapiro.c

+

Winning entry: 1985/shapiro

+

Winning entry source code: shapiro.c

Cody added the alt code which allows one to resize the maze and he also added the @@ -569,8 +569,8 @@ you to enter a number, in an infinite loop, exiting if any non-digits are in input (this includes negative numbers which in the code actually sets it back to 39, the default).

-

1985/sicherman

-

Source code: 1985/sicherman

+

Winning entry: 1985/sicherman

+

Winning entry source code: 1985/sicherman

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 @@ -655,18 +655,18 @@ should they object to main() having only one arg.

1986

-

1986/applin

-

Source code: applin.c

+

Winning entry: 1986/applin

+

Winning entry source code: applin.c

Cody made the C file executable so one does not have to do sh ./applin.c or ./applin; they can do either ./applin.c or ./applin.

-

1986/bright

-

Source code: bright.c

+

Winning entry: 1986/bright

+

Winning entry source code: bright.c

Cody added the try.sh script.

-

1986/hague

-

Source code: hague.c

+

Winning entry: 1986/hague

+

Winning entry source code: hague.c

Cody made this use fgets(). See FAQ 4.1 - Why were some calls to the libc function gets(3) changed to use @@ -674,8 +674,8 @@ fgets(3)? for why this was done.

Cody also added the try.sh script which also feeds to the program the input.txt text file that Cody added.

-

1986/holloway

-

Source code: holloway.c

+

Winning entry: 1986/holloway

+

Winning entry source code: holloway.c

Cody fixed this to compile and work with clang (it already worked with gcc). The problem was that clang is more strict about the types of args to @@ -685,8 +685,8 @@ caused a segfault. By adding a new variable, char *t, initialising and then using t instead of s it compiles and runs successfully under clang and gcc.

-

1986/marshall

-

Source code: marshall.c

+

Winning entry: 1986/marshall

+

Winning entry source code: marshall.c

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 @@ -728,15 +728,15 @@ the directory) slightly so that it was possible to silence it. In particular:

which can be disabled. It results in the same behaviour but this way no warnings are produced.

-

1986/pawka

-

Source code: pawka.c

+

Winning entry: 1986/pawka

+

Winning entry source code: pawka.c

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.

+-D needed to compile the entry but this is not actually so.

-

1986/stein

-

Source code: stein.c

+

Winning entry: 1986/stein

+

Winning entry source code: stein.c

Cody restored the original entry which was a single line. The code @@ -746,8 +746,8 @@ code is now 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.

-

1986/wall

-

Source code: wall.c

+

Winning entry: 1986/wall

+

Winning entry source code: wall.c

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 @@ -814,13 +814,13 @@ work with gcc - but it still required -traditional-cpp

1987

-

1987/biggar

-

Source code: biggar.c

+

Winning entry: 1987/biggar

+

Winning entry source code: biggar.c

Cody added the try.sh script.

-

1987/heckbert

-

Source code: heckbert.c

+

Winning entry: 1987/heckbert

+

Winning entry source code: heckbert.c

Cody made this look more like the original entry by restoring the #define _ define. It’s not used but it now looks closer to the original.

@@ -831,16 +831,16 @@ of strings.h and because it’s identical in use to strchr(3) that for System V we had to do this) Cody added to the Makefile -Dindex=strchr.

-

1987/hines

-

Source code: hines.c

+

Winning entry: 1987/hines

+

Winning entry source code: hines.c

Cody added the try.sh script, 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.

-

1987/lievaart

-

Source code: lievaart.c

+

Winning entry: 1987/lievaart

+

Winning entry source code: lievaart.c

Cody added back the documented checks for invalid input which no longer worked and instead resulted in accepting the level, whether or not it was a @@ -877,16 +877,16 @@ immediately goes back to the prompting of the level.

well (the one with the board and the one without, the entry itself with the size constraints of the contest).

-

1987/wall

-

Source code: wall.c

+

Winning entry: 1987/wall

+

Winning entry source code: wall.c

Cody made this use fgets(3). See FAQ 4.1 - Why were some calls to the libc function gets(3) changed to use fgets(3)? for why this was done.

Cody also added the try.sh script.

-

1987/westley

-

Source code: westley.c

+

Winning entry: 1987/westley

+

Winning entry source code: westley.c

Cody fixed this for modern systems. The problem was 'assignment to cast is illegal, lvalue casts are not supported'. For details on the original code see the @@ -902,8 +902,8 @@ unlikely(?) but nevertheless suggested case that putchar(3) is not

1988

-

1988/dale

-

Source code: dale.c

+

Winning entry: 1988/dale

+

Winning entry source code: dale.c

Cody fixed this twisted entry (as we called it :-) ) for modern compilers, including making it no longer require -traditional-cpp. Fixing @@ -956,8 +956,8 @@ modern compilers do not allow directives like:

macro in place but it’s no longer used.

Cody also provided the try.sh script.

-

1988/isaak

-

Source code: isaak.c

+

Winning entry: 1988/isaak

+

Winning entry source code: isaak.c

Cody fixed this to work for modern systems. The problem was that the important function, a redefinition of exit(3), was not being called in main(). Earlier @@ -968,15 +968,15 @@ index.html file for more details.

isaak.output.txt. This was done strictly for historical remarks that can be found in the index.html file.

-

1988/litmaath

-

Source code: litmaath.c

+

Winning entry: 1988/litmaath

+

Winning entry source code: litmaath.c

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

-

Source code: phillipps.c

+

Winning entry: 1988/phillipps

+

Winning entry source code: phillipps.c

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 @@ -992,15 +992,15 @@ once did; instead, the format of pain() is exactly like how m same code, just a p instead of an m in the name. Additionally, main() returns !pain(...) like main() used to do to itself (pain() does as well).

-

1988/reddy

-

Source code: reddy.c

+

Winning entry: 1988/reddy

+

Winning entry source code: reddy.c

Cody made this use fgets(3). See FAQ 4.1 - Why were some calls to the libc function gets(3) changed to use fgets(3)? for why this was done.

-

1988/spinellis

-

Source code: spinellis.c

+

Winning entry: 1988/spinellis

+

Winning entry source code: spinellis.c

Cody provided an alternate version so that this will work with compilers like clang. An alternate version had to be @@ -1013,8 +1013,8 @@ original. See the index.html file for details on the alternate code.

doing this) that with a slight modification this entry can be C++ instead. We don’t thank him for this ghastly point! :-)

-

1988/westley

-

Source code: westley.c

+

Winning entry: 1988/westley

+

Winning entry source code: westley.c

The original version, provided as alternate code, was fixed by Misha Dynin, based on the judges’ remarks, so that this would work @@ -1028,8 +1028,8 @@ not strictly necessary but nonetheless more correct, even if not warned against.

1989

-

1989/fubar

-

Source code: fubar.c

+

Winning entry: 1989/fubar

+

Winning entry source code: fubar.c

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 @@ -1056,8 +1056,8 @@ might end up failing to work even after changing it back. This was resolved by:< if [ .. ] was changed in the C code as well as the script.

Cody also added the try.sh script.

-

1989/jar.1

-

Source code: jar.1.c

+

Winning entry: 1989/jar.1

+

Winning entry source code: jar.1.c

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 @@ -1072,8 +1072,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.

-

1989/jar.2

-

Source code: jar.2.c

+

Winning entry: 1989/jar.2

+

Winning entry source code: jar.2.c

Cody fixed this to work with modern compilers. Modern compilers do not allow code like:

@@ -1087,7 +1087,7 @@ you know how?

The old #defines are left in to make it look like the original as much as possible but they are not used.

Cody also provided the try.sh script and the -supplementary files try.lisp, +supplementary files try.lisp, fib.lisp and chocolate_cake.lisp. The try.lisp comes from the author and the fib.lisp comes from @@ -1102,8 +1102,8 @@ result in:

shell returned 2

because the alt rule had what normally is in the ${PROG}.alt rule.

-

1989/ovdluhe

-

Source code: ovdluhe.c

+

Winning entry: 1989/ovdluhe

+

Winning entry source code: ovdluhe.c

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 @@ -1120,8 +1120,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.

-

1989/paul

-

Source code: paul.c

+

Winning entry: 1989/paul

+

Winning entry source code: paul.c

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 @@ -1130,8 +1130,8 @@ he was using lldb and saw that the type of a pointer was too long : which has the trace function that the author included but commented out. See the index.html for details.

-

1989/robison

-

Source code: robison.c

+

Winning entry: 1989/robison

+

Winning entry source code: robison.c

Yusuke Endoh fixed this to compile under modern systems. To see the changes made, try:

@@ -1139,8 +1139,8 @@ made, try:

(It adds the C token pasting operator ## instead of /**/.)

Cody added the try.sh script.

-

1989/tromp

-

Source code: tromp.c

+

Winning entry: 1989/tromp

+

Winning entry source code: tromp.c

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.

@@ -1163,20 +1163,23 @@ various other things, so that now the alt version, which is better, can be used. IOCCC Tetris working (this of course was not his only reason :-) )

-

1989/vanb

-

Source code: vanb.c

+

Winning entry: 1989/vanb

+

Winning entry source code: vanb.c

Cody added the try.sh script.

-

1989/westley

-

Source code: westley.c

+

Winning entry: 1989/westley

+

Winning entry source code: westley.c

-

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 -entry works. This is an incredibly hard one to fix for clang whilst still -being compilable with gcc (and gcc can compile every generated version with the -fix) and even if one fixes it to compile with clang it does not mean that any -other version will compile! It is, however, possible to get clang to work with +

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 entry works. This is an incredibly hard one to fix for clang +whilst still being compilable with gcc (gcc can compile every generated +version with the fix but if one fixes all to compile with clang, which was +attempted, it introduced compile errors for gcc) and even if one fixes it to +compile with clang it does not, depending on how it’s done, mean that any +other version will compile!

+

It is, however, possible to get clang to work with two versions generated, ver0 and ver1, though ver0 is actually just the main entry (but still generated by the program itself).

Unfortunately due to the way this entry works if it is even possible to get all @@ -1232,8 +1235,8 @@ environmental variable; see the index.html for details.

1990

-

1990/baruch

-

Source code: baruch.c

+

Winning entry: 1990/baruch

+

Winning entry source code: baruch.c

Cody added the try.sh script.

Cody also added an alternate version, which allows Turbo-C @@ -1241,16 +1244,12 @@ and MSC to compile this code, based on the authors’ remarks, except that Cody did not change the " #Q" string as that appeared to show worse looking output instead of improved output though he has no way to test the compilers in question (i.e. it was only tested in the original entry). YMMV.

-

Although this is appreciated we agree with him that no one -very few -users -here will need it! :-)

-

Cody made the code look more like the original, removing the int from +

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.

-

1990/cmills

-

Source code: cmills.c

+

Winning entry: 1990/cmills

+

Winning entry source code: cmills.c

Yusuke got this to work in modern systems (it previously resulted in a bus error).

@@ -1258,13 +1257,13 @@ error).

the libc function gets(3) changed to use fgets(3)? for why this was done.

-

1990/dds

-

Source code: dds.c

+

Winning entry: 1990/dds

+

Winning entry source code: dds.c

Yusuke and Cody in conjunction fixed this for modern systems (both fixed a different compiler error but more fixes were also made).

Yusuke added the comma operator for a binary expression with free(3) which is -a compiler error because free() returns void. Cody then made it slightly +a compiler error because free(3) returns void. Cody then made it slightly more like the original in this way by redefining free to have the comma operator itself.

Cody fixed another compiler error by removing the erroneous prototype to @@ -1273,8 +1272,8 @@ operator itself.

the libc function gets(3) changed to use fgets(3)? for why this was done.

-

1990/dg

-

Source code: dg.c

+

Winning entry: 1990/dg

+

Winning entry source code: dg.c

Cody fixed this for modern systems. There were two problems to be resolved.

One can no longer do:

@@ -1286,11 +1285,11 @@ fgets(3)? for why this was done.

so the use of #d is now instead #define (the macro was originally deleted 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.

+with if the C preprocessor botches single quotes in cpp expansion.

Cody also added the try.sh script.

-

1990/jaw

-

Source code: jaw.c

+

Winning entry: 1990/jaw

+

Winning entry source code: jaw.c

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 @@ -1302,25 +1301,26 @@ bugs.html.

the time of releasing the winning entries of 1990.

NOTE: as btoa is not common we used a ruby script from Yusuke but with a minor fix applied by Cody that made the program just show oops twice (twice is not -an error here) from invalid input but which now works.

+a typo here) from invalid input but which now works.

-

1990/pjr

-

Source code: pjr.c

+

Winning entry: 1990/pjr

+

Winning entry source code: pjr.c

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.

-

1990/scjones

-

Source code: scjones.c

+

Winning entry: 1990/scjones

+

Winning entry source code: scjones.c

Yusuke suggested -ansi to get the entry to compile due to trigraphs and Cody -suggested -trigraphs. Both work but we used Yusuke’s idea.

+suggested -trigraphs. Both work but we used Yusuke’s idea as this was seen +first.

Cody added the try.sh script to show exactly what the entry does.

-

1990/tbr

-

Source code: tbr.c

+

Winning entry: 1990/tbr

+

Winning entry source code: tbr.c

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.

@@ -1335,8 +1335,8 @@ warning being interspersed with the program’s interactive output. See for more details on why this change was done more generally.

-

1990/theorem

-

Source code: theorem.c

+

Winning entry: 1990/theorem

+

Winning entry source code: theorem.c

Cody fixed this to compile with modern systems.

He also fixed some bugs that impacted the usability of this program including some @@ -1368,20 +1368,22 @@ original program and some of the programs it generates.

used in order to get this to work initially (prior to this output was there but incomplete).

-

1990/stig

-

Source code: stig.c

+

Winning entry: 1990/stig

+

Winning entry source code: stig.c

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.

-

1990/westley

-

Source code: westley.c

+

Winning entry: 1990/westley

+

Winning entry source code: westley.c

-

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, -westley.alt.c, which is the original code.

+

Cody fixed this for modern systems. It had 1s (digit one, letter s) +in places for a short int which was changed to just 1. Since it’s +instructional to see the differences he has provided an alternate version, +westley.alt.c, which is the original +code.

He also changed the argc to be an int, not a char, even though it might often be the same (this in particular was done for clang).

He also fixed the code to not enter an infinite loop if arg is a number not > 0 @@ -1394,8 +1396,8 @@ original code.

1991

-

1991/ant

-

Source code: ant.c

+

Winning entry: 1991/ant

+

Winning entry source code: ant.c

Cody added alt code that will be a bit easier to use for those familiar with vim in the following ways (we don’t want vi users to also @@ -1410,8 +1412,8 @@ not be able to use it or exit it, now do we ? :-) ):

The other keys were left unchanged.

-

1991/brnstnd

-

Source code: brnstnd.c

+

Winning entry: 1991/brnstnd

+

Winning entry source code: brnstnd.c

Cody fixed this for modern systems. There were two invalid operands to binary expression (char *, void and int, void) to resolve and @@ -1423,9 +1425,11 @@ 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 also fixed the make clobber rule which left a symbolic link in the +directory even after the target file was deleted (from make clobber).

-

1991/buzzard

-

Source code: buzzard.c

+

Winning entry: 1991/buzzard

+

Winning entry source code: buzzard.c

Cody fixed this so that the coordinates being specified, a documented feature, would not crash the program. This happened because the function that @@ -1440,16 +1444,16 @@ for right. This version also has a more useful way to exit, just entering followed by enter, rather than completing (and it’s a maze) or killing the program. We still recommend you try the original version first, of course.

-

1991/davidguy

-

Source code: davidguy.c

+

Winning entry: 1991/davidguy

+

Winning entry source code: davidguy.c

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 (currently) but it was done due to other syscalls being a problem not being declared first, to hopefully future-proof it.

-

1991/dds

-

Source code: dds.c

+

Winning entry: 1991/dds

+

Winning entry source code: dds.c

Cody fixed a segfault that prevented this entry from working in any condition (the char *s had to be changed to char s[]) and he also made it @@ -1459,12 +1463,13 @@ and the generated code work for clang.

the libc function gets(3) changed to use fgets(3)? for why this was done.

For the magic of clang (which was done manually except the returning a value -in main()) and fgets(3), see below. The problem with clang can be -described simply as: clang (at least in some systems?) defaults to having --Werror and the code that the entry generates had some warnings that were -causing compilation to fail if cc is clang (the entry runs cc a.c). An -example problem that had to be fixed is that the generated code returned from -main() no value but rather just had return;.

+in main() in the generated code and possibly fgets(3)) and fgets(3), see +below. The problem with clang can be described simply as: clang (at least in +some systems?) defaults to having -Werror and the code that the entry +generates had some warnings that were causing compilation to fail if cc is +clang (the entry runs cc a.c). An example problem that had to be fixed is +that the generated code returned from main() no value but rather just had +return;.

The code used to run cc a.c by what was once system(q-6); but if cc is clang like in macOS this is not enough.

If you have the time and interest and you wish to follow the below a bit better, @@ -1531,12 +1536,13 @@ 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.

-

1991/fine

-

Source code: fine.c

+

Winning entry: 1991/fine

+

Winning entry source code: fine.c

Cody made it look much more like the original entry even after the fix -for clang (by the judges) that increased the count in characters from 80 to -106, getting it back down to just 85 (and later back down to 80, see below).

+for clang (made by the judges) that increased the count in characters from 80 to +106, getting it back down to just 85 (and later back down to the original 80, +see below).

This was done by redefining main at the compiler line so that it looks like the original where one didn’t have to worry about the type of args of main() (when there were fewer restrictions), and also by removing a cast that was @@ -1551,8 +1557,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? :-) )

-

1991/rince

-

Source code: rince.c

+

Winning entry: 1991/rince

+

Winning entry source code: rince.c

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 @@ -1565,8 +1571,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.

-

1991/westley

-

Source code: westley.c

+

Winning entry: 1991/westley

+

Winning entry source code: westley.c

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 @@ -1578,7 +1584,7 @@ value that works without having to find the correct value.

also improved it so that warnings/errors/about to compile messages are not shown unless the -e option is used. This is because the errors being shown kind of ruins the experience. Finally he made it pass -ShellCheck.

+ShellCheck.

Cody also added the alt version which is based on the author’s remarks, a version that supposedly (:-) ) always wins.

Cody also fixed the make clobber rule where a file was left lying about when it @@ -1587,8 +1593,8 @@ should have been removed.

1992

-

1992/adrian

-

Source code: adrian.c

+

Winning entry: 1992/adrian

+

Winning entry source code: adrian.c

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 @@ -1641,8 +1647,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.

-

1992/albert

-

Source code: albert.c

+

Winning entry: 1992/albert

+

Winning entry source code: albert.c

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. @@ -1654,8 +1660,8 @@ return void.

try.alt.sh scripts that correspond to the entry and the alt code.

-

1992/ant

-

Source code: ant.c

+

Winning entry: 1992/ant

+

Winning entry source code: ant.c

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 @@ -1673,8 +1679,8 @@ necessary to include time.h so Cody did this as well as this exists systems too.

Cody also added the try.sh script.

-

1992/buzzard.1

-

Source code: buzzard.1.c

+

Winning entry: 1992/buzzard.1

+

Winning entry source code: buzzard.1.c

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 @@ -1683,8 +1689,8 @@ 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.

-

1992/buzzard.2

-

Source code: buzzard.2.c

+

Winning entry: 1992/buzzard.2

+

Winning entry source code: buzzard.2.c

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.

@@ -1692,25 +1698,25 @@ commands that we suggested and some additional ones that he provide for some fun try.alt.sh scripts that correspond to the entry and its alt code.

-

1992/gson

-

Source code: gson.c

+

Winning entry: 1992/gson

+

Winning entry source code: gson.c

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.

Cody also added the try.sh script.

Cody also added the mkdict.sh script that the author included in their remarks. See the index.html for its purpose. It was NOT fixed -for ShellCheck +for ShellCheck because the author deliberately obfuscated it so PLEASE DO NOT FIX THIS OR MODERNISE IT.

Cody also changed the buffer size in such a way that gets(3) should be safe (well, theoretically) as it comes from the command line (though it can also read input 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 +is a more problematic. See 1992/gson in bugs.html for more details if you’re interested in trying to understand it (or fix?).

-

1992/imc

-

Source code: imc.c

+

Winning entry: 1992/imc

+

Winning entry source code: imc.c

Cody provided the try.sh script.

The original code, imc.orig.c, assumed that exit(3) @@ -1719,8 +1725,8 @@ source code was modified to avoid this problem but like Cody did with other fixe 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

-

Source code: kivinen.c

+

Winning entry: 1992/kivinen

+

Winning entry source code: kivinen.c

It was observed that on modern systems this goes much too quick. Yusuke created a patch that calls usleep(3) but Cody thought the value was too slow so he @@ -1741,26 +1747,28 @@ 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.

-

1992/lush

-

Source code: lush.c

+

Winning entry: 1992/lush

+

Winning entry source code: lush.c

-

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.

+

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.

Cody also provided the lush.sh script to demonstrate it as using make was problematic.

Cody made it use fgets() instead of gets(). See FAQ 4.1 - Why were some calls to the libc function gets)3( changed to use fgets(3)? for why this was done.

NOTE: this entry cannot work with clang due to different compiler messages (it -will compile fine but it won’t work). See bugs.html for details.

+will compile fine but it won’t work). See 1992/lush in +bugs.html for details.

-

1992/marangon

-

Source code: marangon.c

+

Winning entry: 1992/marangon

+

Winning entry source code: marangon.c

Cody made this more portable by changing the void main() to be int main().

-

1992/nathan

-

Source code: nathan.c

+

Winning entry: 1992/nathan

+

Winning entry source code: nathan.c

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 @@ -1771,8 +1779,8 @@ 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.

-

1992/vern

-

Source code: vern.c

+

Winning entry: 1992/vern

+

Winning entry source code: vern.c

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 @@ -1786,8 +1794,8 @@ 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.

-

1992/westley

-

Source code: westley.c

+

Winning entry: 1992/westley

+

Winning entry source code: westley.c

Cody fixed this to work for clang by changing the third and fourth arg of main() to be char ** insidemain();clangrequires args 2 - 4 to bechar @@ -1828,38 +1836,40 @@ encourage you to try the original without two args :-)

1993

-

1993/ant

-

Source code: ant.c

+

Winning entry: 1993/ant

+

Winning entry source code: ant.c

Cody added the try.sh script and a data file, ants.txt, full of ants for the script.

-

1993/cmills

-

Source code: cmills.c

+

Winning entry: 1993/cmills

+

Winning entry source code: cmills.c

Yusuke suggested that with modern systems this goes too fast so he added a call to usleep(3) in a patch he made. Cody made it configurable at compilation by -using a macro. This is in the alt version which is the recommended one to try +using a macro. This is in the alt +version which is the recommended one to try first.

-

1993/dgibson

-

Source code: dgibson.c

+

Winning entry: 1993/dgibson

+

Winning entry source code: dgibson.c

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.

-

1993/ejb

-

Source code: ejb.c

+

Winning entry: 1993/ejb

+

Winning entry source code: ejb.c

Cody added the try.sh script.

-

1993/jonth

-

Source code: jonth.c

+

Winning entry: 1993/jonth

+

Winning entry source code: jonth.c

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 +provided some fixes of the X code (it is not known at the time of writing this +what changed) and Cody fixed the C pre-processor directives so that it would compile. It used to be that you could get away with code like:

    G        int i,j
     K        case
@@ -1867,16 +1877,16 @@ so that it would compile. It used to be that you could get away with code like:< case but that’s no longer the case so the offending lines had #define prepended to them.

-

1993/leo

-

Source code: leo.c

+

Winning entry: 1993/leo

+

Winning entry source code: leo.c

Cody fixed this to work with modern compilers. This involved different header files for functions.

-

1993/lmfjyh

-

Source code: lmfjyh.c

+

Winning entry: 1993/lmfjyh

+

Winning entry source code: lmfjyh.c

-

Cody added an alternate +

Cody added an alternate version which does what the program did with gcc < 2.3.3. See the index.html file for details and for why this was made the alternate version, not the actual entry.

@@ -1884,22 +1894,22 @@ the alternate version, not the actual entry.

would be compiled if gcc < 2.3.3) whether or not compilation succeeds (which is highly unlikely).

-

1993/plummer

-

Source code: plummer.c

+

Winning entry: 1993/plummer

+

Winning entry source code: plummer.c

Cody added check for two args during a time that this was considered a bug to fix.

-

Cody also added an alternate version which uses -usleep(3) so you can see what is happening with faster systems. This version -also checks for two args and it is the one we recommend one try first. See the -index.html files for details.

+

Cody also added an alternate version +which uses usleep(3) so you can see how this entry used to look, if you’re +using a more modern system. This version also checks for two args and it is the +one we recommend one try first. See the index.html files for details.

Cody also added the try.sh and 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).

-

1993/rince

-

Source code: rince.c

+

Winning entry: 1993/rince

+

Winning entry source code: rince.c

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.

@@ -1911,15 +1921,15 @@ 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.

-

1993/schnitzi

-

Source code: schnitzi.c

+

Winning entry: 1993/schnitzi

+

Winning entry source code: schnitzi.c

Cody made this use fgets(3) not gets(3). See FAQ 4.1 - Why were some calls to the libc function gets(3) changed to use fgets(3)? for why this was done.

-

1993/vanb

-

Source code: vanb.c

+

Winning entry: 1993/vanb

+

Winning entry source code: vanb.c

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 @@ -1943,8 +1953,8 @@ this code. Other code is also described there.

1994

-

1994/dodsond2

-

Source code: 1994/dodsond2

+

Winning entry: 1994/dodsond2

+

Winning entry source code: 1994/dodsond2

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 @@ -1955,8 +1965,8 @@ started over, doing nothing. This fix also seems to have fixed a problem where if you shoot your last arrow it would not move you to the room you shoot into (whereas if you had more arrows it would).

Cody added an alt version that allows one to cheat by specifying how many arrows -to start with (this was for fun but it turned out a good way to debug the above -infinite loop too which hanged the program).

+to start with (this does make for fun but it allowed to easily debug the above +mentioned infinite loop which hanged the program).

As in some places it would properly say that you have ‘1 arrow’ or else, if you have any other number of arrows (including 0), it would say ‘arrows’, Cody fixed a place where it always said ‘arrows’. A minor fix and not that important.

@@ -1971,8 +1981,8 @@ 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.

-

1994/horton

-

Source code: 1994/horton

+

Winning entry: 1994/horton

+

Winning entry source code: 1994/horton

Cody fixed this to check that four args were specified (at a time it was considered a bug to fix). With the use of the C pre-processor macro and @@ -1986,8 +1996,8 @@ shouldn’t be.

Finally he added the article (written by the entry’s author) cited in login_sept92-pp28-31.pdf.

-

1994/imc

-

Source code: imc.c

+

Winning entry: 1994/imc

+

Winning entry source code: imc.c

Cody added the try.sh script.

Cody also added inclusion of unistd.h for getpid(2). While strictly speaking @@ -1995,8 +2005,8 @@ 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).

-

1994/ldb

-

Source code: ldb.c

+

Winning entry: 1994/ldb

+

Winning entry source code: ldb.c

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 @@ -2020,28 +2030,28 @@ 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.

-

1994/schnitzi

-

Source code: schnitzi.c

+

Winning entry: 1994/schnitzi

+

Winning entry source code: schnitzi.c

Cody added two alt versions, one which uses fgets_() but when fed its own source code cannot generate code that compile and another one with a bigger buffer size which, when fed its own source code, will generate compilable code but not with the same buffer size but rather the -original buffer size. Cody explains this in the at 1994/schnitzi in +original buffer size. Cody explains this at 1994/schnitzi in bugs.html.

The purpose for these versions it both demonstrate how the magic works behind it and to help others, should they wish, get the code to work with fgets(3), with or without an increase in buffer size. Note that without this feeding longer -files, say the index.html file, will crash the program. See 1994/schnitzi in +files, say the index.html file, will crash the program. See 1994/schnitzi in bugs.html where Cody also explains the magic for more 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.

-

1994/shapiro

-

Source code: shapiro.c

+

Winning entry: 1994/shapiro

+

Winning entry source code: shapiro.c

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. @@ -2049,19 +2059,20 @@ However EOF is not required to be -1 but merely an int assumed that getc() will return -1 on EOF or error, not EOF. On systems 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.

+check 1994/shapiro in bugs.html.

-

1994/smr

-

Source code: smr.c

+

Winning entry: 1994/smr

+

Winning entry source code: smr.c

Cody added the try.sh script.

-

1994/tvr

-

Source code: 1994/tvr

+

Winning entry: 1994/tvr

+

Winning entry source code: 1994/tvr

Cody added the try scripts, four total, colour and black and white pairs for the original entry and the alt code. These scripts are -try.color.sh, try.bw.sh, +try.color.sh (color to match the author’s +remarks), try.bw.sh, try.alt.color.sh and try.alt.bw.sh, respectively. The scripts go through each mode allowed with two sizes, 128 and 256, allowing one to quit or skip each @@ -2076,8 +2087,8 @@ to use fgets() and the inclusion of stdio.h had to be more like the original entry this was done in the Makefile. The alt code was also changed to use fgets(3).

-

1994/weisberg

-

Source code: weisberg.c

+

Winning entry: 1994/weisberg

+

Winning entry source code: weisberg.c

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 @@ -2089,26 +2100,27 @@ lines of the weisberg, feeding it to primes(1), showin primes. It only does the reversed output because the program actually prints primes.

-

1994/westley

-

Source code: westley.c

+

Winning entry: 1994/westley

+

Winning entry source code: westley.c

Cody converted the spoiler compiler options (provided by the author) to be compiler commands and added a script try.sh to automate the spoiler commands to make it easier to see the game in action from 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.

+

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

-

1995/cdua

-

Source code: cdua.c

+

Winning entry: 1995/cdua

+

Winning entry source code: cdua.c

Cody fixed this so that it would work with macOS. Once it could compile it additionally segfaulted under macOS which he also fixed.

-

Cody also provided the Alternate code for fun :-) ) (in +

Cody also provided the alternate code for fun :-) ) (in particular to make it easier to see the program do what it does in systems that are too fast … if there is such a thing anyway :-) ). See the index.html for details on this.

@@ -2119,19 +2131,19 @@ 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.

-

1995/dodsond1

-

Source code: dodsond1.c

+

Winning entry: 1995/dodsond1

+

Winning entry source code: dodsond1.c

Cody added the try.sh script that uses the text file he provided which is input we suggested one try with the entry.

-

1995/esde

-

Source code: esde.c

+

Winning entry: 1995/esde

+

Winning entry source code: esde.c

Cody added the try.sh script.

-

1995/garry

-

Source code: garry.c

+

Winning entry: 1995/garry

+

Winning entry source code: garry.c

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 @@ -2145,38 +2157,38 @@ 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.

-

1995/heathbar

-

Source code: 1995/heathbar

+

Winning entry: 1995/heathbar

+

Winning entry source code: 1995/heathbar

Cody added the try.sh script.

-

1995/leo

-

Source code: leo.c

+

Winning entry: 1995/leo

+

Winning entry source code: leo.c

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.

-

1995/makarios

-

Source code: makarios.c

+

Winning entry: 1995/makarios

+

Winning entry source code: makarios.c

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.

-

1995/savastio

-

Source code: savastio.c

+

Winning entry: 1995/savastio

+

Winning entry source code: savastio.c

Cody added the try.sh script.

-

1995/schnitzi

-

Source code: schnitzi.c

+

Winning entry: 1995/schnitzi

+

Winning entry source code: schnitzi.c

Cody added the try.sh script.

-

1995/vanschnitz

-

Source code: vanschnitz.c

+

Winning entry: 1995/vanschnitz

+

Winning entry source code: vanschnitz.c

Cody added the authors’ spoiler as a C file as in 2023 we have decided that in most @@ -2185,11 +2197,11 @@ 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

-

1996/august

-

Source code: august.c

+

Winning entry: 1996/august

+

Winning entry source code: august.c

Cody fixed a segfault in this program that prevented it from working right and also fixed an infinite loop in the try commands.

@@ -2202,8 +2214,8 @@ problem existed in macOS.

commands that were given by the judges in the try section, with the fix above applied.

-

1996/dalbec

-

Source code: dalbec.c

+

Winning entry: 1996/dalbec

+

Winning entry source code: dalbec.c

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 @@ -2219,8 +2231,8 @@ 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.

-

1996/eldby

-

Source code: eldby.c

+

Winning entry: 1996/eldby

+

Winning entry source code: eldby.c

Cody provided an alternate version which uses usleep() in between writing the output to make it easier to see what is going @@ -2229,8 +2241,8 @@ 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.

-

1996/gandalf

-

Source code: gandalf.c

+

Winning entry: 1996/gandalf

+

Winning entry source code: gandalf.c

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 @@ -2241,26 +2253,26 @@ 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! :-)

-

1996/huffman

-

Source code: huffman.c

+

Winning entry: 1996/huffman

+

Winning entry source code: huffman.c

Cody added the try.sh script.

-

1996/jonth

-

Source code: jonth.c

+

Winning entry: 1996/jonth

+

Winning entry source code: jonth.c

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.

-

1996/rcm

-

Source code: rcm.c

+

Winning entry: 1996/rcm

+

Winning entry source code: rcm.c

Cody added the try.sh script.

-

1996/schweikh1

-

Source code: schweikh1.c

+

Winning entry: 1996/schweikh1

+

Winning entry source code: schweikh1.c

Cody added the try.sh script.

The author stated that -I/usr/include is needed by gcc in Solaris because @@ -2271,23 +2283,23 @@ 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.

-

1996/schweikh2

-

Source code: schweikh2.c

+

Winning entry: 1996/schweikh2

+

Winning entry source code: schweikh2.c

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).

-

1996/schweikh3

+

Winning entry: 1996/schweikh3

Source code: schweikh3.c

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

-

Source code: westley.c

+

Winning entry: 1996/westley

+

Winning entry source code: westley.c

Cody fixed a segfault in this entry as well as it displaying environmental variables. Although the scripts showed correct output, it somewhat lessened the @@ -2305,11 +2317,11 @@ 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

-

1998/banks

-

Source code: /banks.c

+

Winning entry: 1998/banks

+

Winning entry source code: /banks.c

Cody improved the Makefile to allow for easier redefining the control keys and time step that the author set up.

@@ -2322,8 +2334,8 @@ 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.

-

1998/bas1

-

Source code: bas1.c

+

Winning entry: 1998/bas1

+

Winning entry source code: bas1.c

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 @@ -2334,14 +2346,14 @@ be a problem at such a time.

Cody also added the bas1.sh script to simplify running the program.

-

1998/bas2

-

Source code: bas2.c

+

Winning entry: 1998/bas2

+

Winning entry source code: bas2.c

Cody added the try.sh script which runs some default actions as well as allowing one to pass in different file names or strings.

-

1998/chaos

-

Source code: chaos.c

+

Winning entry: 1998/chaos

+

Winning entry source code: chaos.c

Cody added a call to endwin() to restore terminal sanity (echo etc.) when exiting the program (in both versions).

@@ -2349,8 +2361,8 @@ exiting the program (in both versions).

all the data files, giving instructions on how to rotate and zoom in and out, prior to each run.

-

1998/df

-

Source code: df.c

+

Winning entry: 1998/df

+

Winning entry source code: df.c

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).

@@ -2362,8 +2374,8 @@ for why this has to be done this way.

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

-

Source code: dlowe.c

+

Winning entry: 1998/dlowe

+

Winning entry source code: dlowe.c

Cody made the program more portable by changing the void return type of main() to be int (in both versions).

@@ -2374,20 +2386,20 @@ program, a local pootifier of web pages and a CGI pootifier. See -

c1998/dloweneil

-

Source code: dloweneil.c

+

Winning entry: c1998/dloweneil

+

Winning entry source code: dloweneil.c

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.

-

1998/dorssel

-

Source code: dorssel.c

+

Winning entry: 1998/dorssel

+

Winning entry source code: dorssel.c

Cody added the try.sh script.

-

1998/fanf.html

-

Source code: fanf.c

+

Winning entry: 1998/fanf.html

+

Winning entry source code: fanf.c

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,8 +2416,8 @@ code look like the original with just an extra arg.

Cody also added the try.sh script to show the output of some of the expressions that we selected.

-

1998/schnitzi

-

Source code: schnitzi.c

+

Winning entry: 1998/schnitzi

+

Winning entry source code: schnitzi.c

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 @@ -2423,8 +2435,8 @@ doing:

Cody also added the try.sh script to help users try the commands that we recommended as well as some added by him.

-

index.html

-

Source code: 1998/schweikh1

+

Winning entry: index.html

+

Winning entry source code: 1998/schweikh1

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 @@ -2468,8 +2480,8 @@ the macros in the form of gcc -dM i.e., the lines are in the form < compute the character count in the code according to the contest rules of 1998 in the file charcount.pl.

-

1998/schweikh2

-

Source code: schweikh2.c

+

Winning entry: 1998/schweikh2

+

Winning entry source code: schweikh2.c

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]
@@ -2485,8 +2497,8 @@ have a problem with that in the future which is not entirely out of the
 question.

Cody also added the try.sh script.

-

1998/schweikh3

-

Source code: schweikh3.c

+

Winning entry: 1998/schweikh3

+

Winning entry source code: schweikh3.c

Cody added the alternate code which allows one to reconfigure the size constant in the rare case that the author wrote about @@ -2511,8 +2523,8 @@ 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.

-

1998/tomtorfs

-

Source code: /tomtorfs.c](https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/tomtorfs/tomtorfs.c)

+

Winning entry: 1998/tomtorfs

+

Winning entry source code: /tomtorfs.c](https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/tomtorfs/tomtorfs.c)

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 @@ -2524,11 +2536,11 @@ program had return 1).

Cody also added the try.sh script to try out a few commands that we recommended.

-

2000

+

2000

-

2000/anderson

-

Source code: anderson.c

+

Winning entry: 2000/anderson

+

Winning entry source code: anderson.c

Cody changed this entry to use fgets(3) instead of gets(3). See FAQ 4.1 - Why were some calls to @@ -2537,43 +2549,43 @@ fgets(3)? for why this was done. This involved changing the K arg to gets(3) to &K in fgets(3).

Cody also added the try.sh script.

-

2000/bmeyer

-

Source code: bmeyer.c

+

Winning entry: 2000/bmeyer

+

Winning entry source code: bmeyer.c

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.

-

2000/briddlebane

-

Source code: briddlebane.c

+

Winning entry: 2000/briddlebane

+

Winning entry source code: briddlebane.c

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 :-)

-

2000/dhyang

-

Source code: dhyang.c

+

Winning entry: 2000/dhyang

+

Winning entry source code: dhyang.c

Cody made this more portable by changing the void main to int main.

He also added the try.sh script.

-

2000/dlowe

-

Source code: dlowe.c

+

Winning entry: 2000/dlowe

+

Winning entry source code: dlowe.c

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.

-

2000/jarijyrki

-

Source code: jarijyrki.c

+

Winning entry: 2000/jarijyrki

+

Winning entry source code: jarijyrki.c

Cody made it easier to compile this in some cases by adding X11/ to the includes of Xlib.h and keysym.h.

-

2000/natori

-

Source code: natori.c

+

Winning entry: 2000/natori

+

Winning entry source code: natori.c

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).

@@ -2593,19 +2605,19 @@ like the original entry but with the two fixes.

variable which although works it is incongruent with the other Makefiles and is more confusing (even if not confusing).

-

2000/primenum

-

Source code: primenum.c

+

Winning entry: 2000/primenum

+

Winning entry source code: primenum.c

Cody made this more portable by changing the void main to int main.

Cody also added the try.sh script.

-

2000/rince

-

Source code: rince.c

+

Winning entry: 2000/rince

+

Winning entry source code: rince.c

Cody added the try.sh script.

-

2000/robison

-

Source code: robison.c

+

Winning entry: 2000/robison

+

Winning entry source code: robison.c

Cody fixed an infinite loop that occurred if invalid input was entered, flooding the screen with:

@@ -2614,13 +2626,13 @@ the screen with:

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.

-

2000/schneiderwent

-

Source code: schneiderwent.c

+

Winning entry: 2000/schneiderwent

+

Winning entry source code: schneiderwent.c

Cody added the try.sh script.

-

2000/thadgavin

-

Source code: thadgavin.c

+

Winning entry: 2000/thadgavin

+

Winning entry source code: thadgavin.c

Cody fixed the code and added an appropriate make rule so that the SDL version works independent from the curses version @@ -2656,8 +2668,8 @@ index.html for details on that. Note that this alternate version only will impac the curses and the SDL versions as Cody does not have a DOS system to test the other version in.

-

2000/tomx

-

Source code: tomx.c

+

Winning entry: 2000/tomx

+

Winning entry source code: tomx.c

Cody added the alt code based on the author’s remarks with a fix for modern systems and he also added the two @@ -2666,11 +2678,11 @@ the main code and the alt code respectively.

And although the scripts do chmod +x on the source code (see the index.html for details) the source code is now executable by default.

-

2001

+

2001

-

2001/anonymous

-

Source code: anonymous.c

+

Winning entry: 2001/anonymous

+

Winning entry source code: anonymous.c

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 @@ -2729,8 +2741,8 @@ sings Ten in the Bed 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

-

Source code: bellard.c

+

Winning entry: 2001/bellard

+

Winning entry source code: bellard.c

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 @@ -2766,8 +2778,8 @@ versions of clang it is. With gcc we can get away with compiler that does not support this would not work. Thus we use the modification by Yusuke.

-

2001/cheong

-

Source code: cheong.c

+

Winning entry: 2001/cheong

+

Winning entry source code: cheong.c

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 letter word that would match the format and because it's pain thatclang` forces @@ -2776,8 +2788,8 @@ valid, BTW.

Cody also added the try.sh script.

He also fixed it to check the number of args.

-

2001/coupard

-

Source code: coupard.c

+

Winning entry: 2001/coupard

+

Winning entry source code: coupard.c

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 @@ -2799,8 +2811,8 @@ those with macOS) (to do with sound; see his sound devices in macOS).

Cody added the try.sh.

-

2001/ctk

-

Source code: ctk.c

+

Winning entry: 2001/ctk

+

Winning entry source code: ctk.c

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.

@@ -2811,8 +2823,8 @@ end of main().

Cody also added the alt code that adds vi(m) movement keys.

-

2001/dgbeards

-

Source code: dgbeards.c

+

Winning entry: 2001/dgbeards

+

Winning entry source code: dgbeards.c

The author provided two changes: one to speed it up and one to make it not crash on losing. Cody provided an alternate version which does the former but he felt @@ -2821,8 +2833,8 @@ 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?

-

2001/herrmann1

-

Source code: herrmann1.c

+

Winning entry: 2001/herrmann1

+

Winning entry source code: herrmann1.c

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 @@ -2837,8 +2849,8 @@ shellcheck. In particular there were quite a few:

errors/warnings.

Cody also added the try.sh script.

-

2001/herrmann2

-

Source code: herrmann2.c

+

Winning entry: 2001/herrmann2

+

Winning entry source code: herrmann2.c

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 @@ -2848,8 +2860,8 @@ useful than any other place as the command to try is quite long with C code.

For some reason the original code was missing (presumingly because it had been added to .gitignore by accident) but Cody restored it from the archive.

-

2001/kev

-

Source code: kev.c

+

Winning entry: 2001/kev

+

Winning entry source code: kev.c

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.

@@ -2865,40 +2877,40 @@ done). The speed, SPEED, will be set to 50 if it’s not defined at 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

-

Source code: ollinger.c

+

Winning entry: 2001/ollinger

+

Winning entry source code: ollinger.c

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.

-

2001/schweikh

-

Source code: schweikh.c

+

Winning entry: 2001/schweikh

+

Winning entry source code: schweikh.c

Cody fixed this to not crash if not enough args as this was not documented by the author. The other problems are documented so were not fixed. See index.html for details.

Cody also added the try.sh script.

-

2001/westley

-

Source code: westley.c

+

Winning entry: 2001/westley

+

Winning entry source code: westley.c

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

-

2004/anonymous

-

Source code: anonymous.c

+

Winning entry: 2004/anonymous

+

Winning entry source code: anonymous.c

Cody added the try.sh script.

-

2004/arachnid

-

Source code: arachnid.c

+

Winning entry: 2004/arachnid

+

Winning entry source code: arachnid.c

Cody added an alternate version which allows those like himself used to h, j, k and l movement keys to not get @@ -2909,8 +2921,8 @@ use the original version)! :-)

file but a maze file. The extension .maz was not chosen to help with (some?) browsers knowing what to do with it.

-

2004/burley

-

Source code: burley.c

+

Winning entry: 2004/burley

+

Winning entry source code: burley.c

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).

@@ -2938,8 +2950,8 @@ nowadays and other entries had to have this same kind of change,

Finally the optimiser cannot be enabled so the compiler flags were changed for this, forcing -O0.

-

2004/gavare

-

Source code: gavare.c

+

Winning entry: 2004/gavare

+

Winning entry source code: gavare.c

Cody added three different alternate versions:

@@ -2954,8 +2966,8 @@ that was used during development, found on their -

2004/gavin

-

Source code: gavin.c

+

Winning entry: 2004/gavin

+

Winning entry source code: gavin.c

Cody provided the alt code for those who want to use QEMU. The most important part of this is the macro K has @@ -2967,8 +2979,8 @@ the img/fs.tar extracts into fs/ so you will have to f 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

-

Source code: hibachi.c

+

Winning entry: 2004/hibachi

+

Winning entry source code: hibachi.c

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 @@ -2976,13 +2988,13 @@ instead of http for instance). In most cases a new link or change t all that was necessary but at least one or two URLs required the Internet Wayback Machine.

-

2004/hoyle

-

Source code: hoyle.c

+

Winning entry: 2004/hoyle

+

Winning entry source code: hoyle.c

Cody added the try.sh script.

-

2004/jdalbec

-

Source code: jdalbec.c

+

Winning entry: 2004/jdalbec

+

Winning entry source code: jdalbec.c

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 @@ -3009,8 +3021,8 @@ a lot of numbers this will be harder to see).

Finally Cody added try.sh and try.alt.sh to demonstrate both versions.

-

2004/kopczynski

-

Source code: kopczynski.c

+

Winning entry: 2004/kopczynski

+

Winning entry source code: kopczynski.c

Cody reported that this entry cannot be optimised by the compiler as otherwise it will not work.

@@ -3023,21 +3035,21 @@ like a letter is fed to the program and the kopczynski*-rev files w 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

-

Source code: newbern.c

+

Winning entry: 2004/newbern

+

Winning entry source code: newbern.c

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).

-

2004/omoikane

-

Source code: omoikane.c

+

Winning entry: 2004/omoikane

+

Winning entry source code: omoikane.c

Cody added the try.sh script.

-

2004/schnitzi

-

Source code: schnitzi.c

+

Winning entry: 2004/schnitzi

+

Winning entry source code: schnitzi.c

Cody made this use fgets(3). See FAQ 4.1 - Why were some calls to the libc function gets(3) changed to use @@ -3047,16 +3059,16 @@ fast in modern systems, especially the scrolling text of schnitzi.inp1.

Cody also added the try.sh script.

-

2004/sds

-

Source code: sds.c

+

Winning entry: 2004/sds

+

Winning entry source code: sds.c

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.

-

2004/vik2

-

Source code: vik2.c

+

Winning entry: 2004/vik2

+

Winning entry source code: vik2.c

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:

@@ -3109,11 +3121,11 @@ which used to be generated by the Makefile via cc -E.

vik2.possible.cat.death.c!) __FILE__ just to make it a bit easier to compile.

-

2005

+

2005

-

2005/aidan

-

Source code: aidan.c

+

Winning entry: 2005/aidan

+

Winning entry source code: aidan.c

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 @@ -3128,8 +3140,8 @@ alt code respectively.

Cody added the make test and make test-n0 rules for easier use of the test suite.

-

2005/anon

-

Source code: anon.c

+

Winning entry: 2005/anon

+

Winning entry source code: anon.c

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.

@@ -3139,15 +3151,15 @@ explained in the index.html.

Cody added the alt code with vi(m) like movements.

-

2005/boutines

-

Source code: boutines.c

+

Winning entry: 2005/boutines

+

Winning entry source code: boutines.c

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.

-

2005/giljade

-

Source code: giljade.c

+

Winning entry: 2005/giljade

+

Winning entry source code: giljade.c

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 @@ -3193,19 +3205,19 @@ uses grep -c on the file to show that there are indeed as many vers 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/jetro

-

Source code: jetro.c

+

Winning entry: 2005/jetro

+

Winning entry source code: jetro.c

Cody added explicit linking of libm (-lm) for systems like Linux that seem to not do it implicitly (like macOS does).

-

2005/klausler

-

Source code: klausler.c

+

Winning entry: 2005/klausler

+

Winning entry source code: klausler.c

Cody added the try.sh script.

-

2005/mikeash

-

Source code: mikeash.c

+

Winning entry: 2005/mikeash

+

Winning entry source code: mikeash.c

Cody fixed this to work in Linux. The problem was an unknown escape sequence, \N, which caused a funny compiler error:

@@ -3229,8 +3241,8 @@ what is supposed to happen. It is not known, however, if having to change the also show correct output though.

Cody also added the try.sh script.

-

2005/mynx

-

Source code: mynx.c

+

Winning entry: 2005/mynx

+

Winning entry source code: mynx.c

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 @@ -3240,8 +3252,8 @@ 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.

-

2005/persano

-

Source code: persano.c

+

Winning entry: 2005/persano

+

Winning entry source code: persano.c

Cody added the (untested) alternate code which should work for Windows as it @@ -3249,8 +3261,8 @@ sets binary mode on stdout. It is untested as Cody has no Windows s test it on.

Cody also added the try.sh script.

-

2005/sykes

-

Source code: sykes.c

+

Winning entry: 2005/sykes

+

Winning entry source code: sykes.c

Cody added the saved (with the SAVE command) BASIC program PET which was:

    10 PRINT "2005'S IOCCC BEST EMULATOR"
@@ -3277,23 +3289,23 @@ 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.

-

2005/timwi

-

Source code: timwi.c

+

Winning entry: 2005/timwi

+

Winning entry source code: timwi.c

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. :-)

-

2005/toledo

-

Source code: toledo.c

+

Winning entry: 2005/toledo

+

Winning entry source code: toledo.c

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.

-

2005/vince

-

Source code: vince.c

+

Winning entry: 2005/vince

+

Winning entry source code: vince.c

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 @@ -3305,37 +3317,37 @@ find it’ but the source code file name is not always the same as the executabl 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

-

Source code: birken.c

+

Winning entry: 2006/birken

+

Winning entry source code: birken.c

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.

-

2006/borsanyi

-

Source code: borsanyi.c

+

Winning entry: 2006/borsanyi

+

Winning entry source code: borsanyi.c

Cody fixed the Makefile to work in systems where the lpthread is not implicitly linked in.

Cody also added the try.sh script.

-

2006/grothe

-

Source code: grothe.c

+

Winning entry: 2006/grothe

+

Winning entry source code: grothe.c

Cody added the try.sh script.

-

2006/hamre

-

Source code: hamre.c

+

Winning entry: 2006/hamre

+

Winning entry source code: hamre.c

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.

-

2006/monge

-

Source code: monge.c

+

Winning entry: 2006/monge

+

Winning entry source code: monge.c

Cody added the alternate code that lets one resize the image and redefine the number of iterations.

@@ -3351,14 +3363,14 @@ the original it was simply made to link in SDL1.

feature but one which we will accept fixes to. See 2006/monge in bugs.html.

-

2006/night

-

Source code: night.c

+

Winning entry: 2006/night

+

Winning entry source code: night.c

As Cody is a lost :-) vim user he took the author’s remarks to add support back for arrow keys in the alternate version.

-

2006/sloane

-

Source code: sloane.c

+

Winning entry: 2006/sloane

+

Winning entry source code: sloane.c

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 @@ -3381,16 +3393,16 @@ 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.

-

2006/stewart

-

Source code: stewart.c

+

Winning entry: 2006/stewart

+

Winning entry source code: stewart.c

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.

-

2006/sykes1

-

Source code: sykes1.c

+

Winning entry: 2006/sykes1

+

Winning entry source code: sykes1.c

Cody provided the alt code based on the author’s remarks.

@@ -3400,8 +3412,8 @@ 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.

-

2006/sykes2

-

Source code: sykes2.c

+

Winning entry: 2006/sykes2

+

Winning entry source code: sykes2.c

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 @@ -3409,13 +3421,13 @@ 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.

-

2006/toledo1

-

Source code: toledo1.c

+

Winning entry: 2006/toledo1

+

Winning entry source code: toledo1.c

Cody added the try.sh script.

-

2006/toledo2

-

Source code: toledo2.c

+

Winning entry: 2006/toledo2

+

Winning entry source code: toledo2.c

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 @@ -3430,8 +3442,8 @@ the program and modified the fread(3)/fwrite(3) sectio (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.

-

2006/toledo3

-

Source code: toledo3.c

+

Winning entry: 2006/toledo3

+

Winning entry source code: toledo3.c

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 @@ -3442,45 +3454,45 @@ have been a problem in Linux with the old ints but this is no longe toledo3.alt.c, based on the author’s remarks. We’re not able to test this.

-

2011

+

2011

-

2011/akari

-

Source code: akari.c

+

Winning entry: 2011/akari

+

Winning entry source code: akari.c

Cody added the try.sh script.

-

2011/blakely

-

Source code: blakely.c

+

Winning entry: 2011/blakely

+

Winning entry source code: blakely.c

Cody added the try.sh script.

-

2011/borsanyi

-

Source code: borsanyi.c

+

Winning entry: 2011/borsanyi

+

Winning entry source code: borsanyi.c

Cody, out of an abundance of caution, added a second arg to main() as some versions of clang complain about not only the type of each arg to main() but the number of args as well.

Cody also added the try.sh script.

-

2011/dlowe

-

Source code: dlowe.c

+

Winning entry: 2011/dlowe

+

Winning entry source code: dlowe.c

Cody added the try.sh script.

-

2011/eastman

-

Source code: eastman.c

+

Winning entry: 2011/eastman

+

Winning entry source code: eastman.c

Cody added the video file boing-ball.mp4 which is the demo the author referred to.

-

2011/fredriksson

-

Source code: fredriksson.c

+

Winning entry: 2011/fredriksson

+

Winning entry source code: fredriksson.c

Cody added the try.sh script.

-

2011/goren

-

Source code: goren.c

+

Winning entry: 2011/goren

+

Winning entry source code: goren.c

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 @@ -3490,8 +3502,8 @@ 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'.

-

2011/hamaji

-

Source code: hamaji.c

+

Winning entry: 2011/hamaji

+

Winning entry source code: hamaji.c

Cody added the try.sh script and the .nono files conway-game-of-life.nono, @@ -3502,20 +3514,20 @@ 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.

-

2011/hou

-

Source code: hou.c

+

Winning entry: 2011/hou

+

Winning entry source code: hou.c

Cody added the try.sh script.

-

2011/konno

-

Source code: konno.c

+

Winning entry: 2011/konno

+

Winning entry source code: konno.c

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.

-

2011/richards

-

Source code: richards.c

+

Winning entry: 2011/richards

+

Winning entry source code: richards.c

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 @@ -3532,8 +3544,8 @@ not be worth, as it is a possible starting point that Cody added.

helpful to test any fixes for Apple silicon chips (see 2011/richards in bugs.html for more details).

-

2011/toledo

-

Source code: toledo.c

+

Winning entry: 2011/toledo

+

Winning entry source code: toledo.c

Cody added two alternate versions: one that lets one reconfigure the controls and also the size of the game and another @@ -3542,16 +3554,16 @@ file, layer.c.

The Makefile was also modified by Cody to make it simpler to redefine the controls, width and height.

-

2011/vik

-

Source code: vik.c

+

Winning entry: 2011/vik

+

Winning entry source code: vik.c

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.

-

2011/zucker

-

Source code: zucker.c

+

Winning entry: 2011/zucker

+

Winning entry source code: zucker.c

Cody added the try.sh script.

Cody also added alt code that should work on @@ -3561,23 +3573,23 @@ and text then stdout needs to be set to binary mode.

sphere-tracing.pdf in case the link eventually dies.

-

2012

+

2012

-

2012/blakely

-

Source code: blakely.c

+

Winning entry: 2012/blakely

+

Winning entry source code: blakely.c

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.

-

2012/deckmyn

-

Source code: deckmyn.c

+

Winning entry: 2012/deckmyn

+

Winning entry source code: deckmyn.c

Cody added the try.sh script.

-

2012/endoh1

-

Source code: endoh1.c

+

Winning entry: 2012/endoh1

+

Winning entry source code: endoh1.c

Cody added explicit linking of libm (-lm) as not all systems do this implicitly (Linux doesn’t seem to but macOS does).

@@ -3604,16 +3616,16 @@ version without colour, endoh1.alt2.c was provided by the author, Yusuke, at the time of the contest as a de-obfuscated version.

-

2012/endoh2

-

Source code: endoh2.c

+

Winning entry: 2012/endoh2

+

Winning entry source code: endoh2.c

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.

-

2012/grothe

-

Source code: grothe.c

+

Winning entry: 2012/grothe

+

Winning entry source code: grothe.c

Cody added the try.sh script.

Cody also changed argv to be not const char ** butchar , mostly out of an @@ -3628,15 +3640,15 @@ 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.

-

2012/hamano

-

Source code: hamano.c

+

Winning entry: 2012/hamano

+

Winning entry source code: hamano.c

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.

-

2012/hou

-

Source code: hou.c

+

Winning entry: 2012/hou

+

Winning entry source code: hou.c

Cody added the try.sh script and restored the original hint markdown file as the changes made when converting to a GitHub @@ -3644,8 +3656,8 @@ 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.

-

2012/kang

-

Source code: kang.c

+

Winning entry: 2012/kang

+

Winning entry source code: kang.c

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 @@ -3670,13 +3682,13 @@ the other defaults to the submitted entry. See the index.html for details.

show different languages and numbers with the submitted and alternate version respectively. Notice how a single letter changes so much!

-

2012/konno

-

Source code: konno.c

+

Winning entry: 2012/konno

+

Winning entry source code: konno.c

Cody added the try.sh script.

-

2012/omoikane

-

Source code: omoikane.c

+

Winning entry: 2012/omoikane

+

Winning entry source code: omoikane.c

Cody added the alternate versions which will, if no arg is specified, read in the program itself, rather than @@ -3687,21 +3699,21 @@ theoretically make it work in Windows.

Cody also added the try.sh and try.alt.sh scripts.

-

2012/tromp

-

Source code: tromp.c

+

Winning entry: 2012/tromp

+

Winning entry source code: tromp.c

Cody added the try.sh script.

-

2012/vik

-

Source code: vik.c

+

Winning entry: 2012/vik

+

Winning entry source code: vik.c

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.

-

2012/zeitak

-

Source code: zeitak.c

+

Winning entry: 2012/zeitak

+

Winning entry source code: zeitak.c

Cody added the test.sh script and the make test rule that uses the script along with a number of files that will correctly be flagged @@ -3717,11 +3729,11 @@ 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

-

2013/birken

-

Source code: birken.c

+

Winning entry: 2013/birken

+

Winning entry source code: birken.c

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 @@ -3735,19 +3747,19 @@ 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.

-

2013/cable1

-

Source code: cable1.c

+

Winning entry: 2013/cable1

+

Winning entry source code: cable1.c

Cody added the try.sh script which also has an joke Easter egg in it based on the judges’ remarks.

-

2013/cable2

-

Source code: cable2.c

+

Winning entry: 2013/cable2

+

Winning entry source code: cable2.c

Cody added the try.sh script.

-

2013/cable3

-

Source code: cable3.c

+

Winning entry: 2013/cable3

+

Winning entry source code: cable3.c

Cody fixed this to compile with modern systems. The problems were that localtime() is used differently and time.h being included (with @@ -3778,8 +3790,8 @@ entry, and the ‘ready-made 40MB hard disk image containing a whole bunch of software’ in hd.img that the author linked to at https://bitly.com/1bU8URK.

-

2013/dlowe

-

Source code: dlowe.c

+

Winning entry: 2013/dlowe

+

Winning entry source code: dlowe.c

Cody added the source code that we suggested one should compile and run with different compilers as fun.c. He modified the Makefile so @@ -3798,13 +3810,13 @@ program.

He also added the diff.sh script which is based on some commands to try that he suggested to see how different lengths look.

-

2013/endoh1

-

Source code: endoh1.c

+

Winning entry: 2013/endoh1

+

Winning entry source code: endoh1.c

Cody added the try.sh script.

-

2013/endoh2

-

Source code: endoh2.c

+

Winning entry: 2013/endoh2

+

Winning entry source code: endoh2.c

Cody fixed the Makefile check rule so that it checks :-) that both Ruby and ImageMagick are @@ -3822,15 +3834,15 @@ 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.

-

2013/endoh3

-

Source code: endoh3.c

+

Winning entry: 2013/endoh3

+

Winning entry source code: endoh3.c

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().

-

2013/endoh4

-

Source code: endoh4.c

+

Winning entry: 2013/endoh4

+

Winning entry source code: endoh4.c

Cody added the endoh4.sh script which temporarily turns off the cursor as suggested by the author, with the addition that if no @@ -3842,8 +3854,8 @@ pass more than one file to the script.

author’s remarks for more details on what this means). The endoh4.sh script allows one to redefine it as well.

-

2013/hou

-

Source code: hou.c

+

Winning entry: 2013/hou

+

Winning entry source code: hou.c

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 @@ -3868,7 +3880,7 @@ restored so that one can see what the author is talking about.

this broke make which Cody also fixed.

Cody also added the try.sh script.

-

2013/mills

+

Winning entry: 2013/mills

Source code: mills.c

Cody fixed this so that the server would not refuse the connection @@ -3878,28 +3890,28 @@ 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.

-

2013/misaka

-

Source code: misaka.c

+

Winning entry: 2013/misaka

+

Winning entry source code: misaka.c

Cody added the try.sh script.

-

2013/morgan1

-

Source code: morgan1.c

+

Winning entry: 2013/morgan1

+

Winning entry source code: morgan1.c

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.

-

2013/robison

-

Source code: robison.c

+

Winning entry: 2013/robison

+

Winning entry source code: robison.c

Cody added the try.sh script.

-

2014

+

2014

-

2014/birken

-

Source code: prog.c

+

Winning entry: 2014/birken

+

Winning entry source code: prog.c

Cody provided the alternate code that lets one redefine the port to @@ -3909,8 +3921,8 @@ you redefine the timing constant STARDATE (see the author’s remar details on this macro). The Makefile was made to use variables so it’s easier to redefine the port and timing constant.

-

2014/deak

-

Source code: prog.c

+

Winning entry: 2014/deak

+

Winning entry source code: prog.c

Cody added alt code that lets one (via the Makefile) reconfigure the coordinates but instead of being a @@ -3927,8 +3939,8 @@ that was fixed and it also has #include <stdio.h> for p #ifndef..#define..#endif was not part of the original alt code, of course.

Cody also added the try.alt.sh script.

-

2014/endoh1

-

Source code: prog.c

+

Winning entry: 2014/endoh1

+

Winning entry source code: prog.c

Cody added the rake.sh script and make rake rule that runs the script. This script will check that rake is installed and @@ -3949,13 +3961,13 @@ symbols from being built with rake Cody also updated the file to spoilers.html to be clearer in its purpose as it is a file with spoilers (and too close to index.html?).

-

2014/endoh2

-

Source code: prog.c

+

Winning entry: 2014/endoh2

+

Winning entry source code: prog.c

Cody added the try.sh script.

-

2014/maffiodo1

-

Source code: prog.c

+

Winning entry: 2014/maffiodo1

+

Winning entry source code: prog.c

Cody fixed the build for this entry: it does not require SDL2 but SDL1 so there were linking errors.

@@ -3965,20 +3977,20 @@ Mario Bros and one of -

2014/maffiodo2

-

Source code: prog.c

+

Winning entry: 2014/maffiodo2

+

Winning entry source code: prog.c

Cody added the try.sh script.

He also added the alternate code provided by the author.

-

2014/morgan

-

Source code: prog.c

+

Winning entry: 2014/morgan

+

Winning entry source code: prog.c

Cody added the try.sh script.

-

2014/sinon

-

Source code: prog.c

+

Winning entry: 2014/sinon

+

Winning entry source code: prog.c

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 @@ -3992,8 +4004,8 @@ 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).

-

2014/skeggs

-

Source code: prog.c

+

Winning entry: 2014/skeggs

+

Winning entry source code: prog.c

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 @@ -4007,8 +4019,8 @@ 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.

-

2014/vik

-

Source code: prog.c

+

Winning entry: 2014/vik

+

Winning entry source code: prog.c

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 @@ -4018,8 +4030,8 @@ 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.

-

2014/wiedijk

-

Source code: prog.c

+

Winning entry: 2014/wiedijk

+

Winning entry source code: prog.c

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 @@ -4028,11 +4040,11 @@ 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

-

2015/burton

-

Source code: prog.c

+

Winning entry: 2015/burton

+

Winning entry source code: prog.c

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 @@ -4060,8 +4072,8 @@ to not have to maintain two copies of the same text.

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/dogon

-

Source code: prog.c

+

Winning entry: 2015/dogon

+

Winning entry source code: prog.c

Cody improved the Makefile so that one can easily change the dimensions at compilation time via make(1).

@@ -4069,18 +4081,18 @@ at compilation time via make(1).

one change the value of q to a different number, in order to see a bug that they avoided.

-

2015/duble

-

Source code: prog.c

+

Winning entry: 2015/duble

+

Winning entry source code: prog.c

Cody added the try.sh script.

-

2015/endoh2

-

Source code: prog.c

+

Winning entry: 2015/endoh2

+

Winning entry source code: prog.c

Cody added the try.sh script.

-

2015/endoh3

-

Source code: prog.c

+

Winning entry: 2015/endoh3

+

Winning entry source code: prog.c

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 @@ -4091,13 +4103,13 @@ Future using this entry by simply typing make back_to or make mullender) and then runs the famous 1984/mullender.c.

-

2015/endoh4

-

Source code: prog.c

+

Winning entry: 2015/endoh4

+

Winning entry source code: prog.c

Cody added the try.sh script.

-

2015/hou

-

Source code: prog.c

+

Winning entry: 2015/hou

+

Winning entry source code: prog.c

Cody added explicit linking of libm (-lm) for systems that do not do this (Linux doesn’t seem to but macOS does).

@@ -4107,8 +4119,8 @@ which the try.sh script uses.

the directory, to make it so one need not download it, and which the index.html file now links to.

-

2015/howe

-

Source code: prog.c

+

Winning entry: 2015/howe

+

Winning entry source code: prog.c

Cody added the try.sh script, downloaded the War and Peace text file, fixed the avgtime.sh script (it @@ -4116,8 +4128,8 @@ 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).

-

2015/mills1

-

Source code: prog.c

+

Winning entry: 2015/mills1

+

Winning entry source code: prog.c

Cody added the try.sh script which changes the parameters to what we had in the judges’ remarks to make it easier (he only died @@ -4126,18 +4138,18 @@ 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).

-

2015/mills2

-

Source code: prog.c

+

Winning entry: 2015/mills2

+

Winning entry source code: prog.c

Cody added the try.sh script.

-

2015/muth

-

Source code: prog.c

+

Winning entry: 2015/muth

+

Winning entry source code: prog.c

Cody added the try.sh script.

-

2015/schweikhardt

-

Source code: prog.c

+

Winning entry: 2015/schweikhardt

+

Winning entry source code: prog.c

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 @@ -4145,8 +4157,8 @@ the code any with C preprocessor directives (the preferred way) or changing EOF to -1.

Cody also added the try.sh script.

-

2015/yang

-

Source code: prog.c

+

Winning entry: 2015/yang

+

Winning entry source code: prog.c

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.

@@ -4154,22 +4166,22 @@ files from compiling properly, trying instead to compile already compiled code.< (Linux seems to not but macOS does).

He also added the try.sh script.

-

2018

+

2018

-

2018/anderson

-

Source code: prog.c

+

Winning entry: 2018/anderson

+

Winning entry source code: prog.c

Cody added the try.sh and try.alt.sh scripts.

-

2018/algmyr

-

Source code: prog.c

+

Winning entry: 2018/algmyr

+

Winning entry source code: prog.c

Cody added the try.sh script.

-

2018/bellard

-

Source code: prog.c

+

Winning entry: 2018/bellard

+

Winning entry source code: prog.c

Cody added the try.sh script.

Cody also, out of abundance of caution, added a second arg to main() because @@ -4184,8 +4196,8 @@ work for Windows, based on the author’s remarks. The same thing with the numbe of args to main() that was done in the original entry was done with this version as well.

-

2018/burton1

-

Source code: prog.c

+

Winning entry: 2018/burton1

+

Winning entry source code: prog.c

Cody fixed the scripthd script (referred to prog not ./prog) and renamed it to scripthd.sh to help browsers and @@ -4193,8 +4205,8 @@ 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.

-

2018/burton2

-

Source code: prog.c

+

Winning entry: 2018/burton2

+

Winning entry source code: prog.c

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 @@ -4212,16 +4224,16 @@ format.

included in the remarks of the author but not an included file.

Finally Cody added the try.sh script.

-

2018/ciura

-

Source code: prog.c

+

Winning entry: 2018/ciura

+

Winning entry source code: prog.c

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.

-

2018/endoh1

-

Source code: prog.c

+

Winning entry: 2018/endoh1

+

Winning entry source code: prog.c

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 @@ -4231,8 +4243,8 @@ 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.

-

2018/endoh2

-

Source code: prog.c

+

Winning entry: 2018/endoh2

+

Winning entry source code: prog.c

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 @@ -4243,8 +4255,8 @@ 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.

-

2018/ferguson

-

Source code: prog.c

+

Winning entry: 2018/ferguson

+

Winning entry source code: prog.c

Cody, with irony well intended :-), fixed the test.sh script for portability, shellcheck, making it executable @@ -4255,15 +4267,15 @@ and -

2018/hou

-

Source code: prog.c

+

Winning entry: 2018/hou

+

Winning entry source code: prog.c

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.

-

2018/mills

-

Source code: prog.c

+

Winning entry: 2018/mills

+

Winning entry source code: prog.c

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 @@ -4274,8 +4286,8 @@ file you should run sync prior to exiting or else the file might no it might be corrupt. See 2018/mills in bugs.html for more details on the bug.

-

2018/poikola

-

Source code: prog.c

+

Winning entry: 2018/poikola

+

Winning entry source code: prog.c

Cody added the missing docs rule to the Makefile that forms a PDF file. The rule requires the tool pdflatex.

@@ -4285,30 +4297,30 @@ problem where the macOS Terminal.app does not work properly for thi We added some additional notes on what might happen (it varies depending on configuration).

-

2018/vokes

-

Source code: prog.c

+

Winning entry: 2018/vokes

+

Winning entry source code: prog.c

Cody added the try.sh script.

-

2018/yang

-

Source code: prog.c

+

Winning entry: 2018/yang

+

Winning entry source code: prog.c

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

-

2019/adamovsky

-

Source code: prog.c

+

Winning entry: 2019/adamovsky

+

Winning entry source code: prog.c

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.

-

2019/burton

-

Source code: prog.c

+

Winning entry: 2019/burton

+

Winning entry source code: prog.c

Cody fixed the Makefile which had a bad character, a ‘%’ instead of a ‘$’ which caused a rule to fail.

@@ -4325,8 +4337,8 @@ wrong about) in on.one.liners.txt to help with browsers/GitHub.

-

2019/ciura

-

Source code: prog.c

+

Winning entry: 2019/ciura

+

Winning entry source code: prog.c

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 @@ -4343,8 +4355,8 @@ website.

version but with the caveat that only English appears to work. See the entry in bugs.html for more details.

-

2019/diels-grabsch1

-

Source code: prog.c

+

Winning entry: 2019/diels-grabsch1

+

Winning entry source code: prog.c

Cody added the try.sh script.

Cody also added the file Shakespeare.txt @@ -4353,8 +4365,8 @@ not worry about having the entire IOCCC winning entry tree (or at least the 2019 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

-

Source code: prog.c

+

Winning entry: 2019/diels-grabsch2

+

Winning entry source code: prog.c

Cody added the try.sh script. This script will try and show the difference (i.e. the same output) between the @@ -4362,8 +4374,8 @@ program and the result of sha512sum or shasum -a 512 i tools can be found but otherwise it’ll just run the program itself, showing its own sha512sum value.

-

2019/dogon

-

Source code: prog.c

+

Winning entry: 2019/dogon

+

Winning entry source code: prog.c

Cody added explicit linking of libm (-lm) for systems that do not do this (Linux does not seem to but macOS does).

@@ -4376,8 +4388,8 @@ 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).

-

2019/duble

-

Source code: prog.c

+

Winning entry: 2019/duble

+

Winning entry source code: prog.c

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 @@ -4389,8 +4401,8 @@ variables LINES and COLUMNS are set. But even if they 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

-

Source code: prog.c

+

Winning entry: 2019/endoh

+

Winning entry source code: prog.c

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 @@ -4402,13 +4414,13 @@ combined with the -

2019/giles

-

Source code: prog.c

+

Winning entry: 2019/giles

+

Winning entry source code: prog.c

Cody added the try.sh script.

-

2019/karns

-

Source code: prog.c

+

Winning entry: 2019/karns

+

Winning entry source code: prog.c

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 @@ -4418,8 +4430,8 @@ debugging it since it works with -O0.

He also added the script try.sh to showcase the entry a bit more easily.

-

2019/lynn

-

Source code: prog.c

+

Winning entry: 2019/lynn

+

Winning entry source code: prog.c

Cody added the try.sh script.

Cody also added the example-1.txt and @@ -4427,13 +4439,13 @@ bit more easily.

2018/vokes so that the entry does not rely on any other entry existing.

-

2019/mills

-

Source code: prog.c

+

Winning entry: 2019/mills

+

Winning entry source code: prog.c

Cody added the try.sh script.

-

2019/poikola

-

Source code: prog.c

+

Winning entry: 2019/poikola

+

Winning entry source code: prog.c

Cody added the missing docs rule to the Makefile that forms a PDF file. The rule requires the tool @@ -4448,19 +4460,19 @@ suggesting that with some versions of GCC it might not be correct w tested: gnu17 was not tested but gnu11 was so the standard was set to gnu11.

-

2019/yang

-

Source code: prog.c

+

Winning entry: 2019/yang

+

Winning entry source code: prog.c

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

-

2020/burton

-

Source code: prog.c

+

Winning entry: 2020/burton

+

Winning entry source code: prog.c

Cody fixed the script check_be.sh: it assumed that prog_be was in PATH which is unlikely so it was changed to @@ -4470,24 +4482,24 @@ Endian counterpart) so that it shows that the files are identical rather than showing nothing at all.

Cody also added the try.sh script.

-

2020/carlini

-

Source code: prog.c

+

Winning entry: 2020/carlini

+

Winning entry source code: prog.c

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.

-

2020/endoh2

-

Source code: prog.c

+

Winning entry: 2020/endoh2

+

Winning entry source code: prog.c

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.

-

2020/endoh3

-

Source code: prog.c

+

Winning entry: 2020/endoh3

+

Winning entry source code: prog.c

Cody fixed the script run_clock.sh which gave a funny error when running it:

@@ -4516,8 +4528,8 @@ knows it so he might be called unusual (and he argues, with pride, eccentric :-) which is analogous to the run_clock.sh but for the alt code provided by the author, Yusuke.

-

2020/ferguson1

-

Source code: prog.c

+

Winning entry: 2020/ferguson1

+

Winning entry source code: prog.c

Cody, with intentional irony here :-), fixed formatting, links and typos in various files.

@@ -4533,8 +4545,8 @@ 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!

-

2020/ferguson2

-

Source code: prog.c

+

Winning entry: 2020/ferguson2

+

Winning entry source code: prog.c

Cody, with intentional irony here :-), fixed formatting, links and typos in various files.

@@ -4552,8 +4564,8 @@ 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!

-

2020/giles

-

Source code: prog.c

+

Winning entry: 2020/giles

+

Winning entry source code: prog.c

Cody added the try.sh script. This script does the conversion of pi.wav (showing the digits) and also converts the number for @@ -4565,13 +4577,13 @@ 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).

-

2020/kurdyukov1

-

Source code: prog.c

+

Winning entry: 2020/kurdyukov1

+

Winning entry source code: prog.c

Cody added the try.sh script.

-

2020/kurdyukov2

-

Source code: prog.c

+

Winning entry: 2020/kurdyukov2

+

Winning entry source code: prog.c

Cody added the try.sh script.

Cody also added -L/-I paths to the Makefile to let this compile more easily if @@ -4584,16 +4596,16 @@ specify which compiler to use with CC=foo ./makegif.sh ...), checki convert(1) is found and that it worked properly (linking to the proper FAQ entry if not installed or it fails).

-

2020/kurdyukov3

-

Source code: prog.c

+

Winning entry: 2020/kurdyukov3

+

Winning entry source code: prog.c

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.

-

2020/kurdyukov4

-

Source code: prog.c

+

Winning entry: 2020/kurdyukov4

+

Winning entry source code: prog.c

Cody added the try.sh script.

Cody also added from 2019/mills the text file @@ -4605,8 +4617,8 @@ volume X, Morgoth’s Ring, which he also has (and which is part of the 12 volum set by the late Christopher Tolkien, son and literary executor and heir to J.R.R. Tolkien).

-

2020/otterness

-

Source code: prog.c

+

Winning entry: 2020/otterness

+

Winning entry source code: prog.c

Cody added the MIDI files cvikl.mid and entertainer.mid from the URLs we suggested so @@ -4614,15 +4626,15 @@ 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.

-

2020/tsoj

-

Source code: prog.c

+

Winning entry: 2020/tsoj

+

Winning entry source code: prog.c

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 :-)

-

2020/yang

-

Source code: prog.c

+

Winning entry: 2020/yang

+

Winning entry source code: prog.c

Cody added the try.sh script.

Cody also added a make rule (make cppp) for the author’s provided C++ code diff --git a/thanks-for-help.md b/thanks-for-help.md index 104fc7534..26178c7bd 100644 --- a/thanks-for-help.md +++ b/thanks-for-help.md @@ -35,8 +35,8 @@ on an IOCCC entry by entry basis.

-## [1984/anonymous](1984/anonymous/index.html) -### Source code: [anonymous.c](%%REPO_URL%%/1984/anonymous/anonymous.c) +## Winning entry: [1984/anonymous](1984/anonymous/index.html) +### Winning entry source code: [anonymous.c](%%REPO_URL%%/1984/anonymous/anonymous.c)
[Cody](#cody) fixed this to work for macOS. @@ -65,8 +65,8 @@ Scovell](https://web.archive.org/web/20070120220721/https://thomasscovell.com/ta
-## [1984/decot](1984/decot/index.html) -### Source code: [decot.c](%%REPO_URL%%/1984/decot/decot.c) +## Winning entry: [1984/decot](1984/decot/index.html) +### Winning entry source code: [decot.c](%%REPO_URL%%/1984/decot/decot.c)
[Cody](#cody) fixed this to not require `-traditional-cpp` which some compilers like @@ -134,8 +134,8 @@ To see the difference from start to fixed:
-## [1984/laman](1984/laman/index.html) -### Source code: [laman.c](%%REPO_URL%%/1984/laman/laman.c) +## Winning entry: [1984/laman](1984/laman/index.html) +### Winning entry source code: [laman.c](%%REPO_URL%%/1984/laman/laman.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1984/laman/try.sh) script. @@ -147,8 +147,8 @@ This was fixed on 30 October 2023 after the bug status was changed from INABIAF
-## [1984/mullender](1984/mullender/index.html) -### Source code: [mullender.c](%%REPO_URL%%/1984/mullender/mullender.c) +## Winning entry: [1984/mullender](1984/mullender/index.html) +### Winning entry source code: [mullender.c](%%REPO_URL%%/1984/mullender/mullender.c)
[Cody](#cody) provided an [alternate version](%%REPO_URL%%/1984/mullender/mullender.alt.c), @@ -178,8 +178,8 @@ Repo](https://github.com/dspinellis/unix-history-repo/tree/Research-Release).
-## [1984/applin](1985/applin/index.html) -### Source code: [applin.c](%%REPO_URL%%/1985/applin/applin.c) +## Winning entry: [1984/applin](1985/applin/index.html) +### Winning entry source code: [applin.c](%%REPO_URL%%/1985/applin/applin.c)
Both [Cody](#cody) and [Yusuke](#yusuke) fixed this; Yusuke got this to not crash and Cody fixed it @@ -205,8 +205,8 @@ returning to the shell. The original code does not have this change.
-## [1985/august](1985/august/index.html) -### Source code: [august.c](%%REPO_URL%%/1985/august/august.c) +## Winning entry: [1985/august](1985/august/index.html) +### Winning entry source code: [august.c](%%REPO_URL%%/1985/august/august.c)
[Cody](#cody), out of abundance of caution, added a second arg to `main()` because some @@ -227,8 +227,8 @@ default value).
-## [1985/lycklama](1985/lycklama/index.html) -### Source code: [lycklama.c](%%REPO_URL%%/1985/lycklama/lycklama.c) +## Winning entry: [1985/lycklama](1985/lycklama/index.html) +### Winning entry source code: [lycklama.c](%%REPO_URL%%/1985/lycklama/lycklama.c)
[Cody](#cody) fixed this to compile with modern compilers. In the past one could get away @@ -243,8 +243,8 @@ Cody also provided the [try.alt.sh](%%REPO_URL%%/1985/lycklama/try.alt.sh) scrip
-## [1985/shapiro](1985/shapiro/index.html) -### Source code: [shapiro.c](%%REPO_URL%%/1985/shapiro/shapiro.c) +## Winning entry: [1985/shapiro](1985/shapiro/index.html) +### Winning entry source code: [shapiro.c](%%REPO_URL%%/1985/shapiro/shapiro.c)
[Cody](#cody) added the [alt code](%%REPO_URL%%/1985/shapiro/shapiro.alt.c) @@ -257,8 +257,8 @@ input (this includes negative numbers which in the code actually sets it back to
-## [1985/sicherman](1985/sicherman/index.html) -### Source code: [1985/sicherman](%%REPO_URL%%/1985/sicherman/sicherman.c) +## Winning entry: [1985/sicherman](1985/sicherman/index.html) +### Winning entry source code: [1985/sicherman](%%REPO_URL%%/1985/sicherman/sicherman.c)
[Cody](#cody) fixed this _very twisted entry_ to not require `-traditional-cpp`. Fixing @@ -376,8 +376,8 @@ Cody also added the [try.sh](%%REPO_URL%%/1985/sicherman/try.sh) and
-## [1986/applin](1986/applin/index.html) -### Source code: [applin.c](%%REPO_URL%%/1986/applin/applin.c) +## Winning entry: [1986/applin](1986/applin/index.html) +### Winning entry source code: [applin.c](%%REPO_URL%%/1986/applin/applin.c)
[Cody](#cody) made the C file executable so one does not have to do `sh @@ -385,16 +385,16 @@ Cody also added the [try.sh](%%REPO_URL%%/1985/sicherman/try.sh) and
-## [1986/bright](1986/bright/index.html) -### Source code: [bright.c](%%REPO_URL%%/1986/bright/bright.c) +## Winning entry: [1986/bright](1986/bright/index.html) +### Winning entry source code: [bright.c](%%REPO_URL%%/1986/bright/bright.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1986/bright/try.sh) script.
-## [1986/hague](1986/hague/index.html) -### Source code: [hague.c](%%REPO_URL%%/1986/hague/hague.c) +## Winning entry: [1986/hague](1986/hague/index.html) +### Winning entry source code: [hague.c](%%REPO_URL%%/1986/hague/hague.c)
[Cody](#cody) made this use `fgets()`. See [FAQ 4.1 - Why were some calls to @@ -406,8 +406,8 @@ program the `input.txt` text file that Cody added.
-## [1986/holloway](1986/holloway/index.html) -### Source code: [holloway.c](%%REPO_URL%%/1986/holloway/holloway.c) +## Winning entry: [1986/holloway](1986/holloway/index.html) +### Winning entry source code: [holloway.c](%%REPO_URL%%/1986/holloway/holloway.c)
[Cody](#cody) fixed this to compile and work with `clang` (it already worked with `gcc`). @@ -420,8 +420,8 @@ and then using `t` instead of `s` it compiles and runs successfully under
-## [1986/marshall](1986/marshall/index.html) -### Source code: [marshall.c](%%REPO_URL%%/1986/marshall/marshall.c) +## Winning entry: [1986/marshall](1986/marshall/index.html) +### Winning entry source code: [marshall.c](%%REPO_URL%%/1986/marshall/marshall.c)
[Cody](#cody) got this to compile and work with `clang` and `gcc`. He noted that he tried to @@ -487,18 +487,18 @@ are produced.
-## [1986/pawka](1986/pawka/index.html) -### Source code: [pawka.c](%%REPO_URL%%/1986/pawka/pawka.c) +## Winning entry: [1986/pawka](1986/pawka/index.html) +### Winning entry source code: [pawka.c](%%REPO_URL%%/1986/pawka/pawka.c)
[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. +`-D` needed to compile the entry but this is not actually so.
-## [1986/stein](1986/stein/index.html) -### Source code: [stein.c](%%REPO_URL%%/1986/stein/stein.c) +## Winning entry: [1986/stein](1986/stein/index.html) +### Winning entry source code: [stein.c](%%REPO_URL%%/1986/stein/stein.c)
[Cody](#cody) restored the [original @@ -512,8 +512,8 @@ commands that we suggest in order to get it to show clean output.
-## [1986/wall](1986/wall/index.html) -### Source code: [wall.c](%%REPO_URL%%/1986/wall/wall.c) +## Winning entry: [1986/wall](1986/wall/index.html) +### Winning entry source code: [wall.c](%%REPO_URL%%/1986/wall/wall.c)
[Cody](#cody) fixed this so that it does not require `-traditional-cpp`. This took a fair @@ -629,16 +629,16 @@ There might have been other changes as well.
-## [1987/biggar](1987/biggar/index.html) -### Source code: [biggar.c](%%REPO_URL%%/1987/biggar/biggar.c) +## Winning entry: [1987/biggar](1987/biggar/index.html) +### Winning entry source code: [biggar.c](%%REPO_URL%%/1987/biggar/biggar.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1987/biggar/try.sh) script.
-## [1987/heckbert](1987/heckbert/index.html) -### Source code: [heckbert.c](%%REPO_URL%%/1987/heckbert/heckbert.c) +## Winning entry: [1987/heckbert](1987/heckbert/index.html) +### Winning entry source code: [heckbert.c](%%REPO_URL%%/1987/heckbert/heckbert.c)
[Cody](#cody) made this look more like the [original @@ -655,8 +655,8 @@ that for System V we had to do this) Cody added to the Makefile
-## [1987/hines](1987/hines/index.html) -### Source code: [hines.c](%%REPO_URL%%/1987/hines/hines.c) +## Winning entry: [1987/hines](1987/hines/index.html) +### Winning entry source code: [hines.c](%%REPO_URL%%/1987/hines/hines.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1987/hines/try.sh) script, the C file @@ -666,8 +666,8 @@ running the program on the text file demonstrates.
-## [1987/lievaart](1987/lievaart/index.html) -### Source code: [lievaart.c](%%REPO_URL%%/1987/lievaart/lievaart.c) +## Winning entry: [1987/lievaart](1987/lievaart/index.html) +### Winning entry source code: [lievaart.c](%%REPO_URL%%/1987/lievaart/lievaart.c)
[Cody](#cody) added back the documented checks for invalid input which no longer worked @@ -714,8 +714,8 @@ size constraints of the contest).
-## [1987/wall](1987/wall/index.html) -### Source code: [wall.c](%%REPO_URL%%/1987/wall/wall.c) +## Winning entry: [1987/wall](1987/wall/index.html) +### Winning entry source code: [wall.c](%%REPO_URL%%/1987/wall/wall.c)
[Cody](#cody) made this use `fgets(3)`. See [FAQ 4.1 - Why were some calls to @@ -727,8 +727,8 @@ Cody also added the [try.sh](%%REPO_URL%%/1987/wall/try.sh) script.
-## [1987/westley](1987/westley/index.html) -### Source code: [westley.c](%%REPO_URL%%/1987/westley/westley.c) +## Winning entry: [1987/westley](1987/westley/index.html) +### Winning entry source code: [westley.c](%%REPO_URL%%/1987/westley/westley.c)
[Cody](#cody) fixed this for modern systems. The problem was `'assignment to cast is @@ -752,8 +752,8 @@ unlikely(?) but nevertheless suggested case that `putchar(3)` is not available.
-## [1988/dale](1988/dale/index.html) -### Source code: [dale.c](%%REPO_URL%%/1988/dale/dale.c) +## Winning entry: [1988/dale](1988/dale/index.html) +### Winning entry source code: [dale.c](%%REPO_URL%%/1988/dale/dale.c)
[Cody](#cody) fixed this twisted entry (as we called it :-) ) for modern compilers, @@ -832,8 +832,8 @@ Cody also provided the [try.sh](%%REPO_URL%%/1988/dale/try.sh) script.
-## [1988/isaak](1988/isaak/index.html) -### Source code: [isaak.c](%%REPO_URL%%/1988/isaak/isaak.c) +## Winning entry: [1988/isaak](1988/isaak/index.html) +### Winning entry source code: [isaak.c](%%REPO_URL%%/1988/isaak/isaak.c)
[Cody](#cody) fixed this to work for modern systems. The problem was that the important @@ -848,8 +848,8 @@ found in the index.html file.
-## [1988/litmaath](1988/litmaath/index.html) -### Source code: [litmaath.c](%%REPO_URL%%/1988/litmaath/litmaath.c) +## Winning entry: [1988/litmaath](1988/litmaath/index.html) +### Winning entry source code: [litmaath.c](%%REPO_URL%%/1988/litmaath/litmaath.c)
[Cody](#cody) added the [alt code](%%REPO_URL%%/1988/litmaath/litmaath.alt.c) @@ -858,8 +858,8 @@ help understand the entry, and for fun.
-## [1988/phillipps](1988/phillipps/index.html) -### Source code: [phillipps.c](%%REPO_URL%%/1988/phillipps/phillipps.c) +## Winning entry: [1988/phillipps](1988/phillipps/index.html) +### Winning entry source code: [phillipps.c](%%REPO_URL%%/1988/phillipps/phillipps.c)
[Cody](#cody) fixed this for modern systems. It did not compile with `clang` because it @@ -880,8 +880,8 @@ same code, just a `p` instead of an `m` in the name. Additionally, `main()` retu
-## [1988/reddy](1988/reddy/index.html) -### Source code: [reddy.c](%%REPO_URL%%/1988/reddy/reddy.c) +## Winning entry: [1988/reddy](1988/reddy/index.html) +### Winning entry source code: [reddy.c](%%REPO_URL%%/1988/reddy/reddy.c)
[Cody](#cody) made this use `fgets(3)`. See [FAQ 4.1 - Why were some calls to @@ -891,8 +891,8 @@ fgets(3)?](faq.html#faq4_1) for why this was done.
-## [1988/spinellis](1988/spinellis/index.html) -### Source code: [spinellis.c](%%REPO_URL%%/1988/spinellis/spinellis.c) +## Winning entry: [1988/spinellis](1988/spinellis/index.html) +### Winning entry source code: [spinellis.c](%%REPO_URL%%/1988/spinellis/spinellis.c)
[Cody](#cody) provided an [alternate version](%%REPO_URL%%/1988/spinellis/spinellis.alt.c) so that @@ -910,8 +910,8 @@ thank him for this ghastly point! :-)
-## [1988/westley](1988/westley/index.html) -### Source code: [westley.c](%%REPO_URL%%/1988/westley/westley.c) +## Winning entry: [1988/westley](1988/westley/index.html) +### Winning entry source code: [westley.c](%%REPO_URL%%/1988/westley/westley.c)
The [original version](%%REPO_URL%%/1988/westley/westley.alt.c), provided as alternate code, @@ -934,8 +934,8 @@ not strictly necessary but nonetheless more correct, even if not warned against.
-## [1989/fubar](1989/fubar/index.html) -### Source code: [fubar.c](%%REPO_URL%%/1989/fubar/fubar.c) +## Winning entry: [1989/fubar](1989/fubar/index.html) +### Winning entry source code: [fubar.c](%%REPO_URL%%/1989/fubar/fubar.c)
[Cody](#cody) got this to work with modern systems. The main issues were that an @@ -971,8 +971,8 @@ Cody also added the [try.sh](%%REPO_URL%%/1989/fubar/try.sh) script.
-## [1989/jar.1](1989/jar.1/index.html) -### Source code: [jar.1.c](%%REPO_URL%%/1989/jar.1/jar.1.c) +## Winning entry: [1989/jar.1](1989/jar.1/index.html) +### Winning entry source code: [jar.1.c](%%REPO_URL%%/1989/jar.1/jar.1.c)
To prevent annoying output to `/dev/tty` we changed the code to simulate the @@ -991,8 +991,8 @@ entry and the alt code) anyway, it works out well.
-## [1989/jar.2](1989/jar.2/index.html) -### Source code: [jar.2.c](%%REPO_URL%%/1989/jar.2/jar.2.c) +## Winning entry: [1989/jar.2](1989/jar.2/index.html) +### Winning entry source code: [jar.2.c](%%REPO_URL%%/1989/jar.2/jar.2.c)
[Cody](#cody) fixed this to work with modern compilers. Modern compilers do not allow @@ -1013,7 +1013,7 @@ The old `#define`s are left in to make it look like the original as much as possible but they are not used. Cody also provided the [try.sh](%%REPO_URL%%/1989/jar.2/try.sh) script and the -supplementary files [try.lisp](1989/jar.2/try.lisp), +supplementary files [try.lisp](%%REPO_URL%%/1989/jar.2/try.lisp), [fib.lisp](%%REPO_URL%%/1989/jar.2/fib.lisp) and [chocolate_cake.lisp](%%REPO_URL%%/1989/jar.2/chocolate_cake.lisp). The `try.lisp` comes from the author and the `fib.lisp` comes from @@ -1036,8 +1036,8 @@ because the `alt` rule had what normally is in the `${PROG}.alt` rule.
-## [1989/ovdluhe](1989/ovdluhe/index.html) -### Source code: [ovdluhe.c](%%REPO_URL%%/1989/ovdluhe/ovdluhe.c) +## Winning entry: [1989/ovdluhe](1989/ovdluhe/index.html) +### Winning entry source code: [ovdluhe.c](%%REPO_URL%%/1989/ovdluhe/ovdluhe.c)
[Cody](#cody) fixed an infinite loop where the program would print the same thing over @@ -1059,8 +1059,8 @@ discovered and fixed.
-## [1989/paul](1989/paul/index.html) -### Source code: [paul.c](%%REPO_URL%%/1989/paul/paul.c) +## Winning entry: [1989/paul](1989/paul/index.html) +### Winning entry source code: [paul.c](%%REPO_URL%%/1989/paul/paul.c)
[Cody](#cody) fixed a segfault under macOS that prevented it from working. The problem @@ -1073,8 +1073,8 @@ index.html for details.
-## [1989/robison](1989/robison/index.html) -### Source code: [robison.c](%%REPO_URL%%/1989/robison/robison.c) +## Winning entry: [1989/robison](1989/robison/index.html) +### Winning entry source code: [robison.c](%%REPO_URL%%/1989/robison/robison.c)
[Yusuke Endoh](#yusuke) fixed this to compile under modern systems. To see the changes @@ -1091,8 +1091,8 @@ Cody added the [try.sh](%%REPO_URL%%/1989/robison/try.sh) script.
-## [1989/tromp](1989/tromp/index.html) -### Source code: [tromp.c](%%REPO_URL%%/1989/tromp/tromp.c) +## Winning entry: [1989/tromp](1989/tromp/index.html) +### Winning entry source code: [tromp.c](%%REPO_URL%%/1989/tromp/tromp.c)
[Cody](#cody) and [Yusuke](#yusuke) fixed this entry: Yusuke fixed this to compile with `gcc` and Cody @@ -1123,24 +1123,28 @@ not his only reason :-) )
-## [1989/vanb](1989/vanb/index.html) -### Source code: [vanb.c](%%REPO_URL%%/1989/vanb/vanb.c) +## Winning entry: [1989/vanb](1989/vanb/index.html) +### Winning entry source code: [vanb.c](%%REPO_URL%%/1989/vanb/vanb.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1989/vanb/try.sh) script.
-## [1989/westley](1989/westley/index.html) -### Source code: [westley.c](%%REPO_URL%%/1989/westley/westley.c) +## Winning entry: [1989/westley](1989/westley/index.html) +### Winning entry source code: [westley.c](%%REPO_URL%%/1989/westley/westley.c)
-[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 -entry works. This is an **incredibly hard** one to fix for `clang` whilst still -being compilable with `gcc` (and `gcc` can compile every generated version with the -fix) and even if one fixes it to compile with `clang` it does not mean that any -other version will compile! It is, however, possible to get `clang` to work with +[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 entry works. This is an **incredibly hard** one to fix for `clang` +whilst still being compilable with `gcc` (`gcc` can compile every generated +version with the fix but if one fixes all to compile with `clang`, which was +attempted, it introduced compile errors for `gcc`) and even if one fixes it to +compile with `clang` it does not, depending on how it's done, mean that any +other version will compile! + +It is, however, possible to get `clang` to work with two versions generated, `ver0` and `ver1`, though `ver0` is actually just the main entry (but still generated by the program itself). @@ -1209,8 +1213,8 @@ environmental variable; see the index.html for details.
-## [1990/baruch](1990/baruch/index.html) -### Source code: [baruch.c](%%REPO_URL%%/1990/baruch/baruch.c) +## Winning entry: [1990/baruch](1990/baruch/index.html) +### Winning entry source code: [baruch.c](%%REPO_URL%%/1990/baruch/baruch.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1990/baruch/try.sh) script. @@ -1221,19 +1225,14 @@ did not change the `" #Q"` string as that appeared to show worse looking output instead of improved output though he has no way to test the compilers in question (i.e. it was only tested in the original entry). YMMV. -Although this is appreciated we agree with him that no one -[very few](https://en.wikipedia.org/wiki/0) -[users](https://en.wikipedia.org/wiki/Microsoft_Windows) -[here](https://www.ioccc.org) will need it! :-) - -Cody made the code look more like the original, removing the `int` from +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.
-## [1990/cmills](1990/cmills/index.html) -### Source code: [cmills.c](%%REPO_URL%%/1990/cmills/cmills.c) +## Winning entry: [1990/cmills](1990/cmills/index.html) +### Winning entry source code: [cmills.c](%%REPO_URL%%/1990/cmills/cmills.c)
[Yusuke](#yusuke) got this to work in modern systems (it previously resulted in a bus @@ -1246,15 +1245,15 @@ fgets(3)?](faq.html#faq4_1) for why this was done.
-## [1990/dds](1990/dds/index.html) -### Source code: [dds.c](%%REPO_URL%%/1990/dds/dds.c) +## Winning entry: [1990/dds](1990/dds/index.html) +### Winning entry source code: [dds.c](%%REPO_URL%%/1990/dds/dds.c)
[Yusuke](#yusuke) and [Cody](#cody) in conjunction fixed this for modern systems (both fixed a different compiler error but more fixes were also made). Yusuke added the comma operator for a binary expression with `free(3)` which is -a compiler error because `free()` returns `void`. Cody then made it slightly +a compiler error because `free(3)` returns `void`. Cody then made it slightly more like the original in this way by redefining `free` to have the comma operator itself. @@ -1269,8 +1268,8 @@ fgets(3)?](faq.html#faq4_1) for why this was done.
-## [1990/dg](1990/dg/index.html) -### Source code: [dg.c](%%REPO_URL%%/1990/dg/dg.c) +## Winning entry: [1990/dg](1990/dg/index.html) +### Winning entry source code: [dg.c](%%REPO_URL%%/1990/dg/dg.c)
[Cody](#cody) fixed this for modern systems. There were two problems to be resolved. @@ -1289,14 +1288,14 @@ so the use of `#d` is now instead `#define` (the macro was originally deleted 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. +with if the C preprocessor botches single quotes in `cpp` expansion. Cody also added the [try.sh](%%REPO_URL%%/1990/dg/try.sh) script.
-## [1990/jaw](1990/jaw/index.html) -### Source code: [jaw.c](%%REPO_URL%%/1990/jaw/jaw.c) +## Winning entry: [1990/jaw](1990/jaw/index.html) +### Winning entry source code: [jaw.c](%%REPO_URL%%/1990/jaw/jaw.c)
[Cody](#cody) fixed the script to work properly in modern environments including writing @@ -1312,12 +1311,12 @@ the time of releasing the winning entries of 1990. NOTE: as `btoa` is not common we used a ruby script from [Yusuke](#yusuke) but with a minor fix applied by Cody that made the program just show `oops` twice (twice is not -an error here) from invalid input but which now works. +a typo here) from invalid input but which now works.
-## [1990/pjr](1990/pjr/index.html) -### Source code: [pjr.c](%%REPO_URL%%/1990/pjr/pjr.c) +## Winning entry: [1990/pjr](1990/pjr/index.html) +### Winning entry source code: [pjr.c](%%REPO_URL%%/1990/pjr/pjr.c)
[Cody](#cody) added the [alt code](%%REPO_URL%%/1990/pjr/pjr.alt.c) which was suggested by the judges @@ -1326,20 +1325,21 @@ something else and is recommended by the author as well.
-## [1990/scjones](1990/scjones/index.html) -### Source code: [scjones.c](%%REPO_URL%%/1990/scjones/scjones.c) +## Winning entry: [1990/scjones](1990/scjones/index.html) +### Winning entry source code: [scjones.c](%%REPO_URL%%/1990/scjones/scjones.c)
[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. +suggested `-trigraphs`. Both work but we used Yusuke's idea as this was seen +first. Cody added the [try.sh](%%REPO_URL%%/1990/scjones/try.sh) script to show exactly what the entry does.
-## [1990/tbr](1990/tbr/index.html) -### Source code: [tbr.c](%%REPO_URL%%/1990/tbr/tbr.c) +## Winning entry: [1990/tbr](1990/tbr/index.html) +### Winning entry source code: [tbr.c](%%REPO_URL%%/1990/tbr/tbr.c)
[Cody](#cody) fixed this to work with modern compilers; `exit(3)` returns `void` but the @@ -1359,8 +1359,8 @@ done more generally.
-## [1990/theorem](1990/theorem/index.html) -### Source code: [theorem.c](%%REPO_URL%%/1990/theorem/theorem.c) +## Winning entry: [1990/theorem](1990/theorem/index.html) +### Winning entry source code: [theorem.c](%%REPO_URL%%/1990/theorem/theorem.c)
[Cody](#cody) fixed this to compile with modern systems. @@ -1407,8 +1407,8 @@ incomplete).
-## [1990/stig](1990/stig/index.html) -### Source code: [stig.c](%%REPO_URL%%/1990/stig/stig.c) +## Winning entry: [1990/stig](1990/stig/index.html) +### Winning entry source code: [stig.c](%%REPO_URL%%/1990/stig/stig.c)
[Cody](#cody) fixed the paths in the `Makefile` so that this would build in Linux (it @@ -1419,14 +1419,15 @@ He also changed the `Makefile` to use `bash` not `zsh` as not all systems have
-## [1990/westley](1990/westley/index.html) -### Source code: [westley.c](%%REPO_URL%%/1990/westley/westley.c) +## Winning entry: [1990/westley](1990/westley/index.html) +### Winning entry source code: [westley.c](%%REPO_URL%%/1990/westley/westley.c)
-[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 -differences he has provided an alternate version, -[westley.alt.c](%%REPO_URL%%/1990/westley/westley.alt.c), which is the original code. +[Cody](#cody) fixed this for modern systems. It had `1s` (digit one, letter s) +in places for a `short int` which was changed to just `1`. Since it's +instructional to see the differences he has provided an alternate version, +[westley.alt.c](%%REPO_URL%%/1990/westley/westley.alt.c), which is the original +code. He also changed the `argc` to be an `int`, not a `char`, even though it might often be the same (this in particular was done for `clang`). @@ -1448,8 +1449,8 @@ Cody also added the [try.sh](%%REPO_URL%%/1990/westley/try.sh) script.
-## [1991/ant](1991/ant/index.html) -### Source code: [ant.c](%%REPO_URL%%/1991/ant/ant.c) +## Winning entry: [1991/ant](1991/ant/index.html) +### Winning entry source code: [ant.c](%%REPO_URL%%/1991/ant/ant.c)
[Cody](#cody) added [alt code](%%REPO_URL%%/1991/ant/ant.alt.c) that will be a bit easier to use for @@ -1467,8 +1468,8 @@ The other keys were left unchanged.
-## [1991/brnstnd](1991/brnstnd/index.html) -### Source code: [brnstnd.c](%%REPO_URL%%/1991/brnstnd/brnstnd.c) +## Winning entry: [1991/brnstnd](1991/brnstnd/index.html) +### Winning entry source code: [brnstnd.c](%%REPO_URL%%/1991/brnstnd/brnstnd.c)
[Cody](#cody) fixed this for modern systems. There were two invalid operands to binary @@ -1484,10 +1485,12 @@ slightly more like the original, even though it's unused. Cody also added the [try.sh](%%REPO_URL%%/1991/brnstnd/try.sh) script and [try.txt](1991/brnstnd/try.txt) which the script uses. +Cody also fixed the make clobber rule which left a symbolic link in the +directory even after the target file was deleted (from make clobber).
-## [1991/buzzard](1991/buzzard/index.html) -### Source code: [buzzard.c](%%REPO_URL%%/1991/buzzard/buzzard.c) +## Winning entry: [1991/buzzard](1991/buzzard/index.html) +### Winning entry source code: [buzzard.c](%%REPO_URL%%/1991/buzzard/buzzard.c)
[Cody](#cody) fixed this so that the coordinates being specified, a documented @@ -1507,8 +1510,8 @@ program. We still recommend you try the original version first, of course.
-## [1991/davidguy](1991/davidguy/index.html) -### Source code: [davidguy.c](%%REPO_URL%%/1991/davidguy/davidguy.c) +## Winning entry: [1991/davidguy](1991/davidguy/index.html) +### Winning entry source code: [davidguy.c](%%REPO_URL%%/1991/davidguy/davidguy.c)
As some systems like macOS can be particular about not declaring functions @@ -1518,8 +1521,8 @@ being a problem not being declared first, to hopefully future-proof it.
-## [1991/dds](1991/dds/index.html) -### Source code: [dds.c](%%REPO_URL%%/1991/dds/dds.c) +## Winning entry: [1991/dds](1991/dds/index.html) +### Winning entry source code: [dds.c](%%REPO_URL%%/1991/dds/dds.c)
[Cody](#cody) fixed a segfault that prevented this entry from working in any @@ -1532,12 +1535,13 @@ the libc function gets(3) changed to use fgets(3)?](faq.html#faq4_1) for why this was done. For the magic of `clang` (which was done manually except the returning a value -in `main()`) and `fgets(3)`, see below. The problem with `clang` can be -described simply as: `clang` (at least in some systems?) defaults to having -`-Werror` and the code that the entry generates had some warnings that were -causing compilation to fail if `cc` is `clang` (the entry runs `cc a.c`). An -example problem that had to be fixed is that the generated code returned from -`main()` no value but rather just had `return;`. +in `main()` in the generated code and possibly `fgets(3)`) and `fgets(3)`, see +below. The problem with `clang` can be described simply as: `clang` (at least in +some systems?) defaults to having `-Werror` and the code that the entry +generates had some warnings that were causing compilation to fail if `cc` is +`clang` (the entry runs `cc a.c`). An example problem that had to be fixed is +that the generated code returned from `main()` no value but rather just had +`return;`. The code used to run `cc a.c` by what was once `system(q-6);` but if `cc` is `clang` like in macOS this is not enough. @@ -1659,13 +1663,14 @@ entry was fixed. It has not been done in all.
-## [1991/fine](1991/fine/index.html) -### Source code: [fine.c](%%REPO_URL%%/1991/fine/fine.c) +## Winning entry: [1991/fine](1991/fine/index.html) +### Winning entry source code: [fine.c](%%REPO_URL%%/1991/fine/fine.c)
[Cody](#cody) made it look much more like the original entry even after the fix -for `clang` (by the judges) that increased the count in characters from 80 to -106, getting it back down to just 85 (and later back down to 80, see below). +for `clang` (made by the judges) that increased the count in characters from 80 to +106, getting it back down to just 85 (and later back down to the original 80, +see below). This was done by redefining `main` at the compiler line so that it looks like the original where one didn't have to worry about the type of args of `main()` @@ -1686,8 +1691,8 @@ which ones? :-) )
-## [1991/rince](1991/rince/index.html) -### Source code: [rince.c](%%REPO_URL%%/1991/rince/rince.c) +## Winning entry: [1991/rince](1991/rince/index.html) +### Winning entry source code: [rince.c](%%REPO_URL%%/1991/rince/rince.c)
[Cody](#cody) fixed it so that the messages that show if you won or lost will be seen @@ -1704,8 +1709,8 @@ the above fix was applied to these versions too.
-## [1991/westley](1991/westley/index.html) -### Source code: [westley.c](%%REPO_URL%%/1991/westley/westley.c) +## Winning entry: [1991/westley](1991/westley/index.html) +### Winning entry source code: [westley.c](%%REPO_URL%%/1991/westley/westley.c)
[Cody](#cody) fixed a segfault in this program which prevented it from working. The @@ -1719,7 +1724,7 @@ Cody also fixed the `ttt.sh` script that prevented the game from working and he also improved it so that warnings/errors/about to compile messages are not shown unless the `-e` option is used. This is because the errors being shown kind of ruins the experience. Finally he made it pass -[ShellCheck](https://github.com/koalaman/shellcheck). +[ShellCheck](https://www.shellcheck.net). Cody also added the [alt version](%%REPO_URL%%/1991/westley/westley.alt.c) which is based on the author's remarks, a version that supposedly (:-) ) always wins. @@ -1734,8 +1739,8 @@ should have been removed.
-## [1992/adrian](1992/adrian/index.html) -### Source code: [adrian.c](%%REPO_URL%%/1992/adrian/adrian.c) +## Winning entry: [1992/adrian](1992/adrian/index.html) +### Winning entry source code: [adrian.c](%%REPO_URL%%/1992/adrian/adrian.c)
[Cody](#cody) fixed the code so that it will try opening the file the code was compiled @@ -1815,8 +1820,8 @@ generated.
-## [1992/albert](1992/albert/index.html) -### Source code: [albert.c](%%REPO_URL%%/1992/albert/albert.c) +## Winning entry: [1992/albert](1992/albert/index.html) +### Winning entry source code: [albert.c](%%REPO_URL%%/1992/albert/albert.c)
[Cody](#cody) fixed this to compile with modern systems. Note that in 1996 a bug fix was @@ -1832,8 +1837,8 @@ the alt code.
-## [1992/ant](1992/ant/index.html) -### Source code: [ant.c](%%REPO_URL%%/1992/ant/ant.c) +## Winning entry: [1992/ant](1992/ant/index.html) +### Winning entry source code: [ant.c](%%REPO_URL%%/1992/ant/ant.c)
[Cody](#cody) fixed the Makefile so that the program will actually work with it (or at @@ -1857,8 +1862,8 @@ Cody also added the [try.sh](%%REPO_URL%%/1992/ant/try.sh) script.
-## [1992/buzzard.1](1992/buzzard.1/index.html) -### Source code: [buzzard.1.c](%%REPO_URL%%/1992/buzzard.1/buzzard.1.c) +## Winning entry: [1992/buzzard.1](1992/buzzard.1/index.html) +### Winning entry source code: [buzzard.1.c](%%REPO_URL%%/1992/buzzard.1/buzzard.1.c)
[Cody](#cody) added a check for the right number of args, exiting 1 if not enough (2) @@ -1871,8 +1876,8 @@ commands that we suggested and some additional ones that he provide for some fun
-## [1992/buzzard.2](1992/buzzard.2/index.html) -### Source code: [buzzard.2.c](%%REPO_URL%%/1992/buzzard.2/buzzard.2.c) +## Winning entry: [1992/buzzard.2](1992/buzzard.2/index.html) +### Winning entry source code: [buzzard.2.c](%%REPO_URL%%/1992/buzzard.2/buzzard.2.c)
[Cody](#cody) fixed the alt code to compile. The problem was it assumed that @@ -1884,8 +1889,8 @@ and its alt code.
-## [1992/gson](1992/gson/index.html) -### Source code: [gson.c](%%REPO_URL%%/1992/gson/gson.c) +## Winning entry: [1992/gson](1992/gson/index.html) +### Winning entry source code: [gson.c](%%REPO_URL%%/1992/gson/gson.c)
[Cody](#cody) fixed a crash that prevented this entry from working in some cases in some @@ -1895,20 +1900,20 @@ Cody also added the [try.sh](%%REPO_URL%%/1992/gson/try.sh) script. Cody also added the [mkdict.sh](%%REPO_URL%%/1992/gson/mkdict.sh) script that the author included in their remarks. See the index.html for its purpose. It was NOT fixed -for [ShellCheck](https://github.com/koalaman/shellcheck) +for [ShellCheck](https://www.shellcheck.net) because the author deliberately obfuscated it so **PLEASE *DO NOT* FIX THIS OR MODERNISE IT**. Cody also changed the buffer size in such a way that `gets(3)` should be safe (well, theoretically) as it comes from the command line (though it can also read input from `stdin` after starting the program). Ideally `fgets(3)` would be used but this -is a more problematic. See [1992/gson in bugs.html](bugs.html#1992-gson) for more +is a more problematic. See [1992/gson in bugs.html](bugs.html#1992_gson) for more details if you're interested in trying to understand it (or fix?).
-## [1992/imc](1992/imc/index.html) -### Source code: [imc.c](%%REPO_URL%%/1992/imc/imc.c) +## Winning entry: [1992/imc](1992/imc/index.html) +### Winning entry source code: [imc.c](%%REPO_URL%%/1992/imc/imc.c)
[Cody](#cody) provided the [try.sh](%%REPO_URL%%/1992/imc/try.sh) script. @@ -1921,8 +1926,8 @@ operator so that it could be used in binary expressions.
-## [1992/kivinen](1992/kivinen/index.html) -### Source code: [kivinen.c](%%REPO_URL%%/1992/kivinen/kivinen.c) +## Winning entry: [1992/kivinen](1992/kivinen/index.html) +### Winning entry source code: [kivinen.c](%%REPO_URL%%/1992/kivinen/kivinen.c)
It was observed that on modern systems this goes much too quick. [Yusuke](#yusuke) created @@ -1950,12 +1955,13 @@ it moves towards the right but if you click the mouse it goes back.
-## [1992/lush](1992/lush/index.html) -### Source code: [lush.c](%%REPO_URL%%/1992/lush/lush.c) +## Winning entry: [1992/lush](1992/lush/index.html) +### Winning entry source code: [lush.c](%%REPO_URL%%/1992/lush/lush.c)
-[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`. +[Yusuke](#yusuke) supplied a patch which makes this work with `gcc`. Due to how +it works (see [Judges' remarks in the index.html +file](1992/lush/index.html#judges-remarks)) this will not work with `clang`. [Cody](#cody) also provided the [lush.sh](%%REPO_URL%%/1992/lush/lush.sh) script to demonstrate it as using make was problematic. @@ -1964,22 +1970,22 @@ Cody made it use `fgets()` instead of `gets()`. See [FAQ 4.1 - Why were some ca the libc function gets)3( changed to use fgets(3)?](faq.html#faq4_1) for why this was done. - NOTE: this entry cannot work with `clang` due to different compiler messages (it -will compile fine but it won't work). See [bugs.html](bugs.html) for details. +will compile fine but it won't work). See [1992/lush in +bugs.html](bugs.html#1992_lush) for details.
-## [1992/marangon](1992/marangon/index.html) -### Source code: [marangon.c](%%REPO_URL%%/1992/marangon/marangon.c) +## Winning entry: [1992/marangon](1992/marangon/index.html) +### Winning entry source code: [marangon.c](%%REPO_URL%%/1992/marangon/marangon.c)
[Cody](#cody) made this more portable by changing the `void main()` to be `int main()`.
-## [1992/nathan](1992/nathan/index.html) -### Source code: [nathan.c](%%REPO_URL%%/1992/nathan/nathan.c) +## Winning entry: [1992/nathan](1992/nathan/index.html) +### Winning entry source code: [nathan.c](%%REPO_URL%%/1992/nathan/nathan.c)
[Cody](#cody) added the original file back as it was deemed that the export restrictions @@ -1995,8 +2001,8 @@ that we suggested as well as one he provided.
-## [1992/vern](1992/vern/index.html) -### Source code: [vern.c](%%REPO_URL%%/1992/vern/vern.c) +## Winning entry: [1992/vern](1992/vern/index.html) +### Winning entry source code: [vern.c](%%REPO_URL%%/1992/vern/vern.c)
[Cody](#cody) fixed an infinite loop if one were to input numbers < `0` or > `077`. The @@ -2015,8 +2021,8 @@ it used to be.
-## [1992/westley](1992/westley/index.html) -### Source code: [westley.c](%%REPO_URL%%/1992/westley/westley.c) +## Winning entry: [1992/westley](1992/westley/index.html) +### Winning entry source code: [westley.c](%%REPO_URL%%/1992/westley/westley.c)
[Cody](#cody) fixed this to work for `clang` by changing the third and fourth arg of @@ -2067,8 +2073,8 @@ encourage you to try the original without two args :-)
-## [1993/ant](1993/ant/index.html) -### Source code: [ant.c](%%REPO_URL%%/1993/ant/ant.c) +## Winning entry: [1993/ant](1993/ant/index.html) +### Winning entry source code: [ant.c](%%REPO_URL%%/1993/ant/ant.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1993/ant/try.sh) script and a data file, @@ -2076,19 +2082,20 @@ encourage you to try the original without two args :-)
-## [1993/cmills](1993/cmills/index.html) -### Source code: [cmills.c](%%REPO_URL%%/1993/cmills/cmills.c) +## Winning entry: [1993/cmills](1993/cmills/index.html) +### Winning entry source code: [cmills.c](%%REPO_URL%%/1993/cmills/cmills.c)
[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 -using a macro. This is in the alt version which is the recommended one to try +using a macro. This is in the [alt +version](%%REPO_URL%%/1993/cmills/cmills.alt.c) which is the recommended one to try first.
-## [1993/dgibson](1993/dgibson/index.html) -### Source code: [dgibson.c](%%REPO_URL%%/1993/dgibson/dgibson.c) +## Winning entry: [1993/dgibson](1993/dgibson/index.html) +### Winning entry source code: [dgibson.c](%%REPO_URL%%/1993/dgibson/dgibson.c)
[Cody](#cody) fixed the [dgibson.sh](%%REPO_URL%%/1993/dgibson/dgibson.sh) script to work @@ -2099,20 +2106,21 @@ mentioned script on all the data files.
-## [1993/ejb](1993/ejb/index.html) -### Source code: [ejb.c](%%REPO_URL%%/1993/ejb/ejb.c) +## Winning entry: [1993/ejb](1993/ejb/index.html) +### Winning entry source code: [ejb.c](%%REPO_URL%%/1993/ejb/ejb.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1993/ejb/try.sh) script.
-## [1993/jonth](1993/jonth/index.html) -### Source code: [jonth.c](%%REPO_URL%%/1993/jonth/jonth.c) +## Winning entry: [1993/jonth](1993/jonth/index.html) +### Winning entry source code: [jonth.c](%%REPO_URL%%/1993/jonth/jonth.c)
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 +provided some fixes of the X code (it is not known at the time of writing this +what changed) and Cody fixed the C pre-processor directives so that it would compile. It used to be that you could get away with code like: ``` @@ -2126,8 +2134,8 @@ prepended to them.
-## [1993/leo](1993/leo/index.html) -### Source code: [leo.c](%%REPO_URL%%/1993/leo/leo.c) +## Winning entry: [1993/leo](1993/leo/index.html) +### Winning entry source code: [leo.c](%%REPO_URL%%/1993/leo/leo.c)
[Cody](#cody) fixed this to work with modern compilers. This involved different header @@ -2135,12 +2143,12 @@ files for functions.
-## [1993/lmfjyh](1993/lmfjyh/index.html) -### Source code: [lmfjyh.c](%%REPO_URL%%/1993/lmfjyh/lmfjyh.c) +## Winning entry: [1993/lmfjyh](1993/lmfjyh/index.html) +### Winning entry source code: [lmfjyh.c](%%REPO_URL%%/1993/lmfjyh/lmfjyh.c)
[Cody](#cody) added an [alternate -version](1993/lmfjyh/index.html#alternate-code) which does what the program did +version](%%REPO_URL%%/1993/lmfjyh/lmfjyh.alt.c) which does what the program did with `gcc` < 2.3.3. See the index.html file for details and for why this was made the alternate version, not the actual entry. @@ -2150,17 +2158,17 @@ highly unlikely).
-## [1993/plummer](1993/plummer/index.html) -### Source code: [plummer.c](%%REPO_URL%%/1993/plummer/plummer.c) +## Winning entry: [1993/plummer](1993/plummer/index.html) +### Winning entry source code: [plummer.c](%%REPO_URL%%/1993/plummer/plummer.c)
[Cody](#cody) added check for two args during a time that this was considered a bug to fix. -Cody also added an [alternate version](%%REPO_URL%%/1993/plummer/plummer.alt.c) which uses -`usleep(3)` so you can see what is happening with faster systems. This version -also checks for two args and it is the one we recommend one try first. See the -index.html files for details. +Cody also added an [alternate version](%%REPO_URL%%/1993/plummer/plummer.alt.c) +which uses `usleep(3)` so you can see how this entry used to look, if you're +using a more modern system. This version also checks for two args and it is the +one we recommend one try first. See the index.html files for details. Cody also added the [try.sh](%%REPO_URL%%/1993/plummer/try.sh) and [try.alt.sh](%%REPO_URL%%/1993/plummer/try.alt.sh) scripts that correspond to the original @@ -2169,8 +2177,8 @@ of the alt one allowing one to change the amount to sleep).
-## [1993/rince](1993/rince/index.html) -### Source code: [rince.c](%%REPO_URL%%/1993/rince/rince.c) +## Winning entry: [1993/rince](1993/rince/index.html) +### Winning entry source code: [rince.c](%%REPO_URL%%/1993/rince/rince.c)
[Yusuke](#yusuke) supplied a patch to get this to work in modern systems. This fix also @@ -2187,8 +2195,8 @@ compile time. See the index.html for details.
-## [1993/schnitzi](1993/schnitzi/index.html) -### Source code: [schnitzi.c](%%REPO_URL%%/1993/schnitzi/schnitzi.c) +## Winning entry: [1993/schnitzi](1993/schnitzi/index.html) +### Winning entry source code: [schnitzi.c](%%REPO_URL%%/1993/schnitzi/schnitzi.c)
[Cody](#cody) made this use `fgets(3)` not `gets(3)`. See [FAQ 4.1 - Why were some calls to @@ -2198,8 +2206,8 @@ fgets(3)?](faq.html#faq4_1) for why this was done.
-## [1993/vanb](1993/vanb/index.html) -### Source code: [vanb.c](%%REPO_URL%%/1993/vanb/vanb.c) +## Winning entry: [1993/vanb](1993/vanb/index.html) +### Winning entry source code: [vanb.c](%%REPO_URL%%/1993/vanb/vanb.c)
[Cody](#cody) fixed this to work with `clang`. The problem was that the third arg to main() @@ -2237,8 +2245,8 @@ Cody also added the [try.sh](%%REPO_URL%%/1993/vanb/try.sh) script.
-## [1994/dodsond2](1994/dodsond2/index.html) -### Source code: [1994/dodsond2](%%REPO_URL%%/1994/dodsond2/dodsond2.c) +## Winning entry: [1994/dodsond2](1994/dodsond2/index.html) +### Winning entry source code: [1994/dodsond2](%%REPO_URL%%/1994/dodsond2/dodsond2.c)
[Cody](#cody) fixed an infinite loop that could happen when you shoot an arrow @@ -2251,8 +2259,8 @@ if you shoot your last arrow it would not move you to the room you shoot into (whereas if you had more arrows it would). Cody added an alt version that allows one to cheat by specifying how many arrows -to start with (this was for fun but it turned out a good way to debug the above -infinite loop too which hanged the program). +to start with (this does make for fun but it allowed to easily debug the above +mentioned infinite loop which hanged the program). As in some places it would properly say that you have '1 arrow' or else, if you have any other number of arrows (including 0), it would say 'arrows', Cody fixed @@ -2271,8 +2279,8 @@ that already existed, how many you had and how many were stolen.
-## [1994/horton](1994/horton/index.html) -### Source code: [1994/horton](%%REPO_URL%%/1994/horton/horton.c) +## Winning entry: [1994/horton](1994/horton/index.html) +### Winning entry source code: [1994/horton](%%REPO_URL%%/1994/horton/horton.c)
[Cody](#cody) fixed this to check that four args were specified (at a time it @@ -2292,8 +2300,8 @@ Finally he added the article (written by the entry's author) cited in
-## [1994/imc](1994/imc/index.html) -### Source code: [imc.c](%%REPO_URL%%/1994/imc/imc.c) +## Winning entry: [1994/imc](1994/imc/index.html) +### Winning entry source code: [imc.c](%%REPO_URL%%/1994/imc/imc.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1994/imc/try.sh) script. @@ -2305,8 +2313,8 @@ entries that actually did not work because of missing or incorrect prototypes).
-## [1994/ldb](1994/ldb/index.html) -### Source code: [ldb.c](%%REPO_URL%%/1994/ldb/ldb.c) +## Winning entry: [1994/ldb](1994/ldb/index.html) +### Winning entry source code: [ldb.c](%%REPO_URL%%/1994/ldb/ldb.c)
[Cody](#cody) fixed this so it would compile and work with modern compilers. The problem @@ -2337,8 +2345,8 @@ Cody also added the [try.sh](%%REPO_URL%%/1994/ldb/try.sh) script.
-## [1994/schnitzi](1994/schnitzi/index.html) -### Source code: [schnitzi.c](%%REPO_URL%%/1994/schnitzi/schnitzi.c) +## Winning entry: [1994/schnitzi](1994/schnitzi/index.html) +### Winning entry source code: [schnitzi.c](%%REPO_URL%%/1994/schnitzi/schnitzi.c)
[Cody](#cody) added two alt versions, [one which uses @@ -2346,14 +2354,14 @@ fgets_()](%%REPO_URL%%/1994/schnitzi/schnitzi.alt.c) but when fed its generate code that compile and another [one with a bigger buffer size](%%REPO_URL%%/1994/schnitzi/schnitzi.alt2.c) which, when fed its own source code, will generate compilable code but not with the same buffer size but rather the -original buffer size. Cody explains this in the at [1994/schnitzi in +original buffer size. Cody explains this at [1994/schnitzi in bugs.html](bugs.html#1994-schnitzi). The purpose for these versions it both demonstrate how the magic works behind it and to help others, should they wish, get the code to work with `fgets(3)`, with or without an increase in buffer size. Note that without this feeding longer files, say the index.html file, will crash the program. See [1994/schnitzi in -bugs.html](bugs.html#1994-schnitzi) where Cody also explains the magic for more +bugs.html](bugs.html#1994_schnitzi) where Cody also explains the magic for more 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. @@ -2362,8 +2370,8 @@ Cody also added the [try.sh](%%REPO_URL%%/1994/schnitzi/try.sh) and
-## [1994/shapiro](1994/shapiro/index.html) -### Source code: [shapiro.c](%%REPO_URL%%/1994/shapiro/shapiro.c) +## Winning entry: [1994/shapiro](1994/shapiro/index.html) +### Winning entry source code: [shapiro.c](%%REPO_URL%%/1994/shapiro/shapiro.c)
[Cody](#cody) fixed a bug on systems where `EOF != -1`. The problem is that `getc()` and @@ -2373,25 +2381,26 @@ assumed that `getc()` will return `-1` on EOF or error, not `EOF`. On systems 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](bugs.html) file. +check [1994/shapiro in bugs.html](bugs.html#1994_shapiro).
-## [1994/smr](1994/smr/index.html) -### Source code: [smr.c](%%REPO_URL%%/1994/smr/smr.c) +## Winning entry: [1994/smr](1994/smr/index.html) +### Winning entry source code: [smr.c](%%REPO_URL%%/1994/smr/smr.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1994/smr/try.sh) script.
-## [1994/tvr](1994/tvr/index.html) -### Source code: [1994/tvr](%%REPO_URL%%/1994/tvr/tvr.c) +## Winning entry: [1994/tvr](1994/tvr/index.html) +### Winning entry source code: [1994/tvr](%%REPO_URL%%/1994/tvr/tvr.c)
[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 -[try.color.sh](%%REPO_URL%%/1994/tvr/try.color.sh), [try.bw.sh](%%REPO_URL%%/1994/tvr/try.bw.sh), +[try.color.sh](%%REPO_URL%%/1994/tvr/try.color.sh) (color to match the author's +remarks), [try.bw.sh](%%REPO_URL%%/1994/tvr/try.bw.sh), [try.alt.color.sh](%%REPO_URL%%/1994/tvr/try.alt.color.sh) and [try.alt.bw.sh](%%REPO_URL%%/1994/tvr/try.alt.bw.sh), respectively. The scripts go through each mode allowed with two sizes, 128 and 256, allowing one to quit or skip each @@ -2409,8 +2418,8 @@ also changed to use `fgets(3)`.
-## [1994/weisberg](1994/weisberg/index.html) -### Source code: [weisberg.c](%%REPO_URL%%/1994/weisberg/weisberg.c) +## Winning entry: [1994/weisberg](1994/weisberg/index.html) +### Winning entry source code: [weisberg.c](%%REPO_URL%%/1994/weisberg/weisberg.c)
[Cody](#cody) changed the Makefile to make this program more user friendly and easier to @@ -2426,8 +2435,8 @@ primes.
-## [1994/westley](1994/westley/index.html) -### Source code: [westley.c](%%REPO_URL%%/1994/westley/westley.c) +## Winning entry: [1994/westley](1994/westley/index.html) +### Winning entry source code: [westley.c](%%REPO_URL%%/1994/westley/westley.c)
[Cody](#cody) converted the spoiler compiler options (provided by the author) to be @@ -2435,25 +2444,26 @@ compiler commands and added a script [try.sh](%%REPO_URL%%/1994/westley/try.sh) automate the spoiler commands to make it easier to see the game in action from 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](%%REPO_URL%%/1994/westley/try.alt.sh) script to automate -the play along the lines of the [try.sh](%%REPO_URL%%/1994/westley/try.sh) script. +Cody also added the [alternate version](%%REPO_URL%%/1994/westley/westley.alt.c) +that will look fine on terminals not set to 80 columns and the +[try.alt.sh](%%REPO_URL%%/1994/westley/try.alt.sh) script to automate the play +along the lines of the [try.sh](%%REPO_URL%%/1994/westley/try.sh) script.
-# 1995 +# [1995](1995/index.html)
-## [1995/cdua](1995/cdua/index.html) -### Source code: [cdua.c](%%REPO_URL%%/1995/cdua/cdua.c) +## Winning entry: [1995/cdua](1995/cdua/index.html) +### Winning entry source code: [cdua.c](%%REPO_URL%%/1995/cdua/cdua.c)
[Cody](#cody) fixed this so that it would work with macOS. Once it could compile it additionally segfaulted under macOS which he also fixed. -Cody also provided the [Alternate code](%%REPO_URL%%/1995/cdua/cdua.alt.c) for fun :-) ) (in +Cody also provided the [alternate code](%%REPO_URL%%/1995/cdua/cdua.alt.c) for fun :-) ) (in particular to make it easier to see the program do what it does in systems that are too fast ... if there is such a thing anyway :-) ). See the index.html for details on this. @@ -2467,8 +2477,8 @@ function as the error message claims.
-## [1995/dodsond1](1995/dodsond1/index.html) -### Source code: [dodsond1.c](%%REPO_URL%%/1995/dodsond1/dodsond1.c) +## Winning entry: [1995/dodsond1](1995/dodsond1/index.html) +### Winning entry source code: [dodsond1.c](%%REPO_URL%%/1995/dodsond1/dodsond1.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1995/dodsond1/try.sh) script that uses the text file he @@ -2476,16 +2486,16 @@ provided which is input we suggested one try with the entry.
-## [1995/esde](1995/esde/index.html) -### Source code: [esde.c](%%REPO_URL%%/1995/esde/esde.c) +## Winning entry: [1995/esde](1995/esde/index.html) +### Winning entry source code: [esde.c](%%REPO_URL%%/1995/esde/esde.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1995/esde/try.sh) script.
-## [1995/garry](1995/garry/index.html) -### Source code: [garry.c](%%REPO_URL%%/1995/garry/garry.c) +## Winning entry: [1995/garry](1995/garry/index.html) +### Winning entry source code: [garry.c](%%REPO_URL%%/1995/garry/garry.c)
[Cody](#cody) fixed the alt code so that it will compile with modern compilers. The @@ -2503,16 +2513,16 @@ added.
-## [1995/heathbar](1995/heathbar/index.html) -### Source code: [1995/heathbar](%%REPO_URL%%/1995/heathbar/heathbar.c) +## Winning entry: [1995/heathbar](1995/heathbar/index.html) +### Winning entry source code: [1995/heathbar](%%REPO_URL%%/1995/heathbar/heathbar.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1995/heathbar/try.sh) script.
-## [1995/leo](1995/leo/index.html) -### Source code: [leo.c](%%REPO_URL%%/1995/leo/leo.c) +## Winning entry: [1995/leo](1995/leo/index.html) +### Winning entry source code: [leo.c](%%REPO_URL%%/1995/leo/leo.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1995/leo/try.sh) script. @@ -2522,8 +2532,8 @@ by the author, putting it in [spoiler1.html](1995/leo/spoiler1.html).
-## [1995/makarios](1995/makarios/index.html) -### Source code: [makarios.c](%%REPO_URL%%/1995/makarios/makarios.c) +## Winning entry: [1995/makarios](1995/makarios/index.html) +### Winning entry source code: [makarios.c](%%REPO_URL%%/1995/makarios/makarios.c)
[Cody](#cody) fixed this so that it will compile with versions of `clang` that has a defect @@ -2533,24 +2543,24 @@ calls which has the four args.
-## [1995/savastio](1995/savastio/index.html) -### Source code: [savastio.c](%%REPO_URL%%/1995/savastio/savastio.c) +## Winning entry: [1995/savastio](1995/savastio/index.html) +### Winning entry source code: [savastio.c](%%REPO_URL%%/1995/savastio/savastio.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1995/savastio/try.sh) script.
-## [1995/schnitzi](1995/schnitzi/index.html) -### Source code: [schnitzi.c](%%REPO_URL%%/1995/schnitzi/schnitzi.c) +## Winning entry: [1995/schnitzi](1995/schnitzi/index.html) +### Winning entry source code: [schnitzi.c](%%REPO_URL%%/1995/schnitzi/schnitzi.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1995/schnitzi/try.sh) script.
-## [1995/vanschnitz](1995/vanschnitz/index.html) -### Source code: [vanschnitz.c](%%REPO_URL%%/1995/vanschnitz/vanschnitz.c) +## Winning entry: [1995/vanschnitz](1995/vanschnitz/index.html) +### Winning entry source code: [vanschnitz.c](%%REPO_URL%%/1995/vanschnitz/vanschnitz.c)
[Cody](#cody) added the authors' [spoiler as a C @@ -2563,13 +2573,13 @@ Cody also added the [try.sh](%%REPO_URL%%/1995/vanschnitz/try.sh) script.
-# 1996 +# [1996](1996/index.html)
-## [1996/august](1996/august/index.html) -### Source code: [august.c](%%REPO_URL%%/1996/august/august.c) +## Winning entry: [1996/august](1996/august/index.html) +### Winning entry source code: [august.c](%%REPO_URL%%/1996/august/august.c)
[Cody](#cody) fixed a segfault in this program that prevented it from working right and @@ -2587,8 +2597,8 @@ applied.
-## [1996/dalbec](1996/dalbec/index.html) -### Source code: [dalbec.c](%%REPO_URL%%/1996/dalbec/dalbec.c) +## Winning entry: [1996/dalbec](1996/dalbec/index.html) +### Winning entry source code: [dalbec.c](%%REPO_URL%%/1996/dalbec/dalbec.c)
[Cody](#cody) proposed a fix for this to compile with `clang` and Landon implemented it @@ -2609,8 +2619,8 @@ Cody also added the [try.sh](%%REPO_URL%%/1996/dalbec/try.sh) script.
-## [1996/eldby](1996/eldby/index.html) -### Source code: [eldby.c](%%REPO_URL%%/1996/eldby/eldby.c) +## Winning entry: [1996/eldby](1996/eldby/index.html) +### Winning entry source code: [eldby.c](%%REPO_URL%%/1996/eldby/eldby.c)
[Cody](#cody) provided an [alternate version](%%REPO_URL%%/1996/eldby/eldby.alt.c) which uses @@ -2622,8 +2632,8 @@ these reasons.
-## [1996/gandalf](1996/gandalf/index.html) -### Source code: [gandalf.c](%%REPO_URL%%/1996/gandalf/gandalf.c) +## Winning entry: [1996/gandalf](1996/gandalf/index.html) +### Winning entry source code: [gandalf.c](%%REPO_URL%%/1996/gandalf/gandalf.c)
[Cody](#cody) fixed this to compile and work with modern systems. As he loved the @@ -2639,16 +2649,16 @@ BTW: it is perilous to try the patience of
-## [1996/huffman](1996/huffman/index.html) -### Source code: [huffman.c](%%REPO_URL%%/1996/huffman/huffman.c) +## Winning entry: [1996/huffman](1996/huffman/index.html) +### Winning entry source code: [huffman.c](%%REPO_URL%%/1996/huffman/huffman.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1996/huffman/try.sh) script.
-## [1996/jonth](1996/jonth/index.html) -### Source code: [jonth.c](%%REPO_URL%%/1996/jonth/jonth.c) +## Winning entry: [1996/jonth](1996/jonth/index.html) +### Winning entry source code: [jonth.c](%%REPO_URL%%/1996/jonth/jonth.c)
[Cody](#cody) fixed this to not segfault under macOS. The problem was that the function @@ -2659,16 +2669,16 @@ NOTE: if there is no X server running this program will still crash.
-## [1996/rcm](1996/rcm/index.html) -### Source code: [rcm.c](%%REPO_URL%%/1996/rcm/rcm.c) +## Winning entry: [1996/rcm](1996/rcm/index.html) +### Winning entry source code: [rcm.c](%%REPO_URL%%/1996/rcm/rcm.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1996/rcm/try.sh) script.
-## [1996/schweikh1](1996/schweikh1/index.html) -### Source code: [schweikh1.c](%%REPO_URL%%/1996/schweikh1/schweikh1.c) +## Winning entry: [1996/schweikh1](1996/schweikh1/index.html) +### Winning entry source code: [schweikh1.c](%%REPO_URL%%/1996/schweikh1/schweikh1.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1996/schweikh1/try.sh) script. @@ -2683,8 +2693,8 @@ the Makefile despite the fact that very few probably use Solaris nowadays.
-## [1996/schweikh2](1996/schweikh2/index.html) -### Source code: [schweikh2.c](%%REPO_URL%%/1996/schweikh2/schweikh2.c) +## Winning entry: [1996/schweikh2](1996/schweikh2/index.html) +### Winning entry source code: [schweikh2.c](%%REPO_URL%%/1996/schweikh2/schweikh2.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1996/schweikh2/try.sh) script with a few commands to try @@ -2694,7 +2704,7 @@ loop so having it in a script is less desired).
-## [1996/schweikh3](1996/schweikh3/index.html) +## Winning entry: [1996/schweikh3](1996/schweikh3/index.html) ## Source code: [schweikh3.c](%%REPO_URL%%/1996/schweikh3/schweikh3.c)
@@ -2704,8 +2714,8 @@ running a more complicated command: now one can just run `make`.
-## [1996/westley](1996/westley/index.html) -### Source code: [westley.c](%%REPO_URL%%/1996/westley/westley.c) +## Winning entry: [1996/westley](1996/westley/index.html) +### Winning entry source code: [westley.c](%%REPO_URL%%/1996/westley/westley.c)
[Cody](#cody) fixed a segfault in this entry as well as it displaying environmental @@ -2728,13 +2738,13 @@ provided by the author, Cody added '.sh' to the `clock[1-3].sh` scripts.
-# 1998 +# [1998](1998/index.html)
-## [1998/banks](1998/banks/index.html) -### Source code: [/banks.c](%%REPO_URL%%/1998/banks/banks.c) +## Winning entry: [1998/banks](1998/banks/index.html) +### Winning entry source code: [/banks.c](%%REPO_URL%%/1998/banks/banks.c)
[Cody](#cody) improved the Makefile to allow for easier redefining the control @@ -2751,8 +2761,8 @@ you can configure them all in both builds it shouldn't matter.
-## [1998/bas1](1998/bas1/index.html) -### Source code: [bas1.c](%%REPO_URL%%/1998/bas1/bas1.c) +## Winning entry: [1998/bas1](1998/bas1/index.html) +### Winning entry source code: [bas1.c](%%REPO_URL%%/1998/bas1/bas1.c)
[Cody](#cody), out of an abundance of caution, added a second arg to `main()` as some @@ -2767,8 +2777,8 @@ program.
-## [1998/bas2](1998/bas2/index.html) -### Source code: [bas2.c](%%REPO_URL%%/1998/bas2/bas2.c) +## Winning entry: [1998/bas2](1998/bas2/index.html) +### Winning entry source code: [bas2.c](%%REPO_URL%%/1998/bas2/bas2.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1998/bas2/try.sh) script which runs some default actions @@ -2776,8 +2786,8 @@ as well as allowing one to pass in different file names or strings.
-## [1998/chaos](1998/chaos/index.html) -### Source code: [chaos.c](%%REPO_URL%%/1998/chaos/chaos.c) +## Winning entry: [1998/chaos](1998/chaos/index.html) +### Winning entry source code: [chaos.c](%%REPO_URL%%/1998/chaos/chaos.c)
[Cody](#cody) added a call to `endwin()` to restore terminal sanity (echo etc.) when @@ -2789,8 +2799,8 @@ prior to each run.
-## [1998/df](1998/df/index.html) -### Source code: [df.c](%%REPO_URL%%/1998/df/df.c) +## Winning entry: [1998/df](1998/df/index.html) +### Winning entry source code: [df.c](%%REPO_URL%%/1998/df/df.c)
[Cody](#cody) changed a `int *` used for `fopen(3)` to be a `FILE *` to be more correct @@ -2807,8 +2817,8 @@ a way to cheat very easily. Can you figure out how?
-## [1998/dlowe](1998/dlowe/index.html) -### Source code: [dlowe.c](%%REPO_URL%%/1998/dlowe/dlowe.c) +## Winning entry: [1998/dlowe](1998/dlowe/index.html) +### Winning entry source code: [dlowe.c](%%REPO_URL%%/1998/dlowe/dlowe.c)
[Cody](#cody) made the program more portable by changing the void return type of `main()` @@ -2823,8 +2833,8 @@ pootify scripts.
-## [c1998/dloweneil](1998/dloweneil/index.html) -### Source code: [dloweneil.c](%%REPO_URL%%/1998/dloweneil/dloweneil.c) +## Winning entry: [c1998/dloweneil](1998/dloweneil/index.html) +### Winning entry source code: [dloweneil.c](%%REPO_URL%%/1998/dloweneil/dloweneil.c)
[Cody](#cody) added [alt code](%%REPO_URL%%/1998/dloweneil/dloweneil.alt.c) which has vi(m) movement @@ -2833,16 +2843,16 @@ space) keys as well as allowing one to quit the game.
-## [1998/dorssel](1998/dorssel/index.html) -### Source code: [dorssel.c](%%REPO_URL%%/1998/dorssel/dorssel.c) +## Winning entry: [1998/dorssel](1998/dorssel/index.html) +### Winning entry source code: [dorssel.c](%%REPO_URL%%/1998/dorssel/dorssel.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1998/dorssel/try.sh) script.
-## [1998/fanf.html](1998/fanf/index.html) -### Source code: [fanf.c](%%REPO_URL%%/1998/fanf/fanf.c) +## Winning entry: [1998/fanf.html](1998/fanf/index.html) +### Winning entry source code: [fanf.c](%%REPO_URL%%/1998/fanf/fanf.c)
[Cody](#cody) fixed this to compile. The problem was the intermediate steps to get to the @@ -2865,8 +2875,8 @@ of the expressions that we selected.
-## [1998/schnitzi](1998/schnitzi/index.html) -### Source code: [schnitzi.c](%%REPO_URL%%/1998/schnitzi/schnitzi.c) +## Winning entry: [1998/schnitzi](1998/schnitzi/index.html) +### Winning entry source code: [schnitzi.c](%%REPO_URL%%/1998/schnitzi/schnitzi.c)
[Cody](#cody) fixed invalid data types which prevented this entry from working, causing a @@ -2893,8 +2903,8 @@ commands that we recommended as well as some added by him.
-## [index.html](1998/schweikh1/index.html) -### Source code: [1998/schweikh1](%%REPO_URL%%/1998/schweikh1/schweikh1.c) +## Winning entry: [index.html](1998/schweikh1/index.html) +### Winning entry source code: [1998/schweikh1](%%REPO_URL%%/1998/schweikh1/schweikh1.c)
[Cody](#cody) fixed this for modern systems (it did not work at all) and added an @@ -2954,8 +2964,8 @@ in the file [charcount.pl](%%REPO_URL%%/1998/schweikh1/charcount.pl).
-## [1998/schweikh2](1998/schweikh2/index.html) -### Source code: [schweikh2.c](%%REPO_URL%%/1998/schweikh2/schweikh2.c) +## Winning entry: [1998/schweikh2](1998/schweikh2/index.html) +### Winning entry source code: [schweikh2.c](%%REPO_URL%%/1998/schweikh2/schweikh2.c)
[Cody](#cody) fixed the code to not trigger an internal compiler error in `gcc`: @@ -2980,8 +2990,8 @@ Cody also added the [try.sh](%%REPO_URL%%/1998/schweikh2/try.sh) script.
-## [1998/schweikh3](1998/schweikh3/index.html) -### Source code: [schweikh3.c](%%REPO_URL%%/1998/schweikh3/schweikh3.c) +## Winning entry: [1998/schweikh3](1998/schweikh3/index.html) +### Winning entry source code: [schweikh3.c](%%REPO_URL%%/1998/schweikh3/schweikh3.c)
[Cody](#cody) added the [alternate code](1998/schweikh3/index.html#alternate-code) which allows one @@ -3018,8 +3028,8 @@ information for the entry. It has not been added to any JSON file.
-## [1998/tomtorfs](1998/tomtorfs/index.html) -### Source code: /tomtorfs.c](%%REPO_URL%%/1998/tomtorfs/tomtorfs.c) +## Winning entry: [1998/tomtorfs](1998/tomtorfs/index.html) +### Winning entry source code: /tomtorfs.c](%%REPO_URL%%/1998/tomtorfs/tomtorfs.c)
[Cody](#cody) fixed the assumption that `EOF` is `-1` (the author noted that it assumes @@ -3036,13 +3046,13 @@ commands that we recommended.
-# 2000 +# [2000](2000/index.html)
-## [2000/anderson](2000/anderson/index.html) -### Source code: [anderson.c](%%REPO_URL%%/2000/anderson//anderson.c) +## Winning entry: [2000/anderson](2000/anderson/index.html) +### Winning entry source code: [anderson.c](%%REPO_URL%%/2000/anderson//anderson.c)
[Cody](#cody) changed this entry to use `fgets(3)` instead of `gets(3)`. @@ -3055,8 +3065,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2000/anderson/try.sh) script.
-## [2000/bmeyer](2000/bmeyer/index.html) -### Source code: [bmeyer.c](%%REPO_URL%%/2000/bmeyer//bmeyer.c) +## Winning entry: [2000/bmeyer](2000/bmeyer/index.html) +### Winning entry source code: [bmeyer.c](%%REPO_URL%%/2000/bmeyer//bmeyer.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2000/bmeyer/try.sh) script with some improvements to the @@ -3065,8 +3075,8 @@ terminal.
-## [2000/briddlebane](2000/briddlebane/index.html) -### Source code: [briddlebane.c](%%REPO_URL%%/2000/briddlebane//briddlebane.c) +## Winning entry: [2000/briddlebane](2000/briddlebane/index.html) +### Winning entry source code: [briddlebane.c](%%REPO_URL%%/2000/briddlebane//briddlebane.c)
[Cody](#cody) fixed this to compile in systems that require one to explicitly link in @@ -3077,8 +3087,8 @@ feeling a bit too confident, cocky or even happy :-)
-## [2000/dhyang](2000/dhyang/index.html) -### Source code: [dhyang.c](%%REPO_URL%%/2000/dhyang//dhyang.c) +## Winning entry: [2000/dhyang](2000/dhyang/index.html) +### Winning entry source code: [dhyang.c](%%REPO_URL%%/2000/dhyang//dhyang.c)
[Cody](#cody) made this more portable by changing the `void main` to `int main`. @@ -3087,8 +3097,8 @@ He also added the [try.sh](%%REPO_URL%%/2000/dhyang/try.sh) script.
-## [2000/dlowe](2000/dlowe/index.html) -### Source code: [dlowe.c](%%REPO_URL%%/2000/dlowe//dlowe.c) +## Winning entry: [2000/dlowe](2000/dlowe/index.html) +### Winning entry source code: [dlowe.c](%%REPO_URL%%/2000/dlowe//dlowe.c)
[Cody](#cody) fixed this to compile with more recent perl versions; the symbol that's now @@ -3099,8 +3109,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2000/dlowe/try.sh) script.
-## [2000/jarijyrki](2000/jarijyrki/index.html) -### Source code: [jarijyrki.c](%%REPO_URL%%/2000/jarijyrki//jarijyrki.c) +## Winning entry: [2000/jarijyrki](2000/jarijyrki/index.html) +### Winning entry source code: [jarijyrki.c](%%REPO_URL%%/2000/jarijyrki//jarijyrki.c)
[Cody](#cody) made it easier to compile this in some cases by adding `X11/` to the @@ -3108,8 +3118,8 @@ includes of `Xlib.h` and `keysym.h`.
-## [2000/natori](2000/natori/index.html) -### Source code: [natori.c](%%REPO_URL%%/2000/natori//natori.c) +## Winning entry: [2000/natori](2000/natori/index.html) +### Winning entry source code: [natori.c](%%REPO_URL%%/2000/natori//natori.c)
[Cody](#cody) fixed this for modern compilers. Depending on the compiler it would either @@ -3136,8 +3146,8 @@ more confusing (even if not confusing).
-## [2000/primenum](2000/primenum/index.html) -### Source code: [primenum.c](%%REPO_URL%%/2000/primenum//primenum.c) +## Winning entry: [2000/primenum](2000/primenum/index.html) +### Winning entry source code: [primenum.c](%%REPO_URL%%/2000/primenum//primenum.c)
[Cody](#cody) made this more portable by changing the `void main` to `int main`. @@ -3146,16 +3156,16 @@ Cody also added the [try.sh](%%REPO_URL%%/2000/primenum/try.sh) script.
-## [2000/rince](2000/rince/index.html) -### Source code: [rince.c](%%REPO_URL%%/2000/rince//rince.c) +## Winning entry: [2000/rince](2000/rince/index.html) +### Winning entry source code: [rince.c](%%REPO_URL%%/2000/rince//rince.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2000/rince/try.sh) script.
-## [2000/robison](2000/robison/index.html) -### Source code: [robison.c](%%REPO_URL%%/2000/robison//robison.c) +## Winning entry: [2000/robison](2000/robison/index.html) +### Winning entry source code: [robison.c](%%REPO_URL%%/2000/robison//robison.c)
[Cody](#cody) fixed an infinite loop that occurred if invalid input was entered, flooding @@ -3171,16 +3181,16 @@ on it to assign to the `int`s, much like with `1987/lievaart`. The strings are
-## [2000/schneiderwent](2000/schneiderwent/index.html) -### Source code: [schneiderwent.c](%%REPO_URL%%/2000/schneiderwent//schneiderwent.c) +## Winning entry: [2000/schneiderwent](2000/schneiderwent/index.html) +### Winning entry source code: [schneiderwent.c](%%REPO_URL%%/2000/schneiderwent//schneiderwent.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2000/schneiderwent/try.sh) script.
-## [2000/thadgavin](2000/thadgavin/index.html) -### Source code: [thadgavin.c](%%REPO_URL%%/2000/thadgavin//thadgavin.c) +## Winning entry: [2000/thadgavin](2000/thadgavin/index.html) +### Winning entry source code: [thadgavin.c](%%REPO_URL%%/2000/thadgavin//thadgavin.c)
[Cody](#cody) fixed the code and added an appropriate make rule so that the @@ -3225,8 +3235,8 @@ other version in.
-## [2000/tomx](2000/tomx/index.html) -### Source code: [tomx.c](%%REPO_URL%%/2000/tomx//tomx.c) +## Winning entry: [2000/tomx](2000/tomx/index.html) +### Winning entry source code: [tomx.c](%%REPO_URL%%/2000/tomx//tomx.c)
[Cody](#cody) added the [alt code](2000/tomx/index.html#alternate-code) based on the @@ -3239,13 +3249,13 @@ details) the source code is now executable by default.
-# 2001 +# [2001](2001/index.html)
-## [2001/anonymous](2001/anonymous/index.html) -### Source code: [anonymous.c](%%REPO_URL%%/2001/anonymous//anonymous.c) +## Winning entry: [2001/anonymous](2001/anonymous/index.html) +### Winning entry source code: [anonymous.c](%%REPO_URL%%/2001/anonymous//anonymous.c)
[Cody](#cody) fixed both the supplementary program and the program itself (both of which @@ -3334,8 +3344,8 @@ it will at least run the supplementary program as a 64-bit program directly.
-## [2001/bellard](2001/bellard/index.html) -### Source code: [bellard.c](%%REPO_URL%%/2001/bellard//bellard.c) +## Winning entry: [2001/bellard](2001/bellard/index.html) +### Winning entry source code: [bellard.c](%%REPO_URL%%/2001/bellard//bellard.c)
[Cody](#cody) fixed this to compile with `clang` but according to the author this will not @@ -3383,8 +3393,8 @@ by Yusuke.
-## [2001/cheong](2001/cheong/index.html) -### Source code: [cheong.c](%%REPO_URL%%/2001/cheong//cheong.c) +## Winning entry: [2001/cheong](2001/cheong/index.html) +### Winning entry source code: [cheong.c](%%REPO_URL%%/2001/cheong//cheong.c)
[Cody](#cody) fixed this to work with `clang` by adding another function that is allowed to @@ -3399,8 +3409,8 @@ He also fixed it to check the number of args.
-## [2001/coupard](2001/coupard/index.html) -### Source code: [coupard.c](%%REPO_URL%%/2001/coupard//coupard.c) +## Winning entry: [2001/coupard](2001/coupard/index.html) +### Winning entry source code: [coupard.c](%%REPO_URL%%/2001/coupard//coupard.c)
[Cody](#cody) added a value to `return` in `main()` to make it more portable. @@ -3432,8 +3442,8 @@ Cody added the [try.sh](%%REPO_URL%%/2001/coupard/try.sh).
-## [2001/ctk](2001/ctk/index.html) -### Source code: [ctk.c](%%REPO_URL%%/2001/ctk//ctk.c) +## Winning entry: [2001/ctk](2001/ctk/index.html) +### Winning entry source code: [ctk.c](%%REPO_URL%%/2001/ctk//ctk.c)
The ANSI escape codes were no longer valid but [Yusuke](#yusuke) provided a patch to fix @@ -3449,8 +3459,8 @@ vi(m) movement keys.
-## [2001/dgbeards](2001/dgbeards/index.html) -### Source code: [dgbeards.c](%%REPO_URL%%/2001/dgbeards//dgbeards.c) +## Winning entry: [2001/dgbeards](2001/dgbeards/index.html) +### Winning entry source code: [dgbeards.c](%%REPO_URL%%/2001/dgbeards//dgbeards.c)
The author provided two changes: one to speed it up and one to make it not crash @@ -3463,8 +3473,8 @@ very quickly. Do you know what it is?
-## [2001/herrmann1](2001/herrmann1/index.html) -### Source code: [herrmann1.c](%%REPO_URL%%/2001/herrmann1//herrmann1.c) +## Winning entry: [2001/herrmann1](2001/herrmann1/index.html) +### Winning entry source code: [herrmann1.c](%%REPO_URL%%/2001/herrmann1//herrmann1.c)
[Cody](#cody) fixed this so that the when compiling the code the program is not executed @@ -3490,8 +3500,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2001/herrmann1/try.sh) script.
-## [2001/herrmann2](2001/herrmann2/index.html) -### Source code: [herrmann2.c](%%REPO_URL%%/2001/herrmann2//herrmann2.c) +## Winning entry: [2001/herrmann2](2001/herrmann2/index.html) +### Winning entry source code: [herrmann2.c](%%REPO_URL%%/2001/herrmann2//herrmann2.c)
[Cody](#cody) fixed this to work with both 64-bit and 32-bit compilers by changing most @@ -3508,8 +3518,8 @@ added to `.gitignore` by accident) but Cody restored it from the archive.
-## [2001/kev](2001/kev/index.html) -### Source code: [kev.c](%%REPO_URL%%/2001/kev//kev.c) +## Winning entry: [2001/kev](2001/kev/index.html) +### Winning entry source code: [kev.c](%%REPO_URL%%/2001/kev//kev.c)
[Cody](#cody) improved the Makefile to allow one to more easily set up the port, @@ -3531,8 +3541,8 @@ without having to sacrifice playability by running `make`.
-## [2001/ollinger](2001/ollinger/index.html) -### Source code: [ollinger.c](%%REPO_URL%%/2001/ollinger//ollinger.c) +## Winning entry: [2001/ollinger](2001/ollinger/index.html) +### Winning entry source code: [ollinger.c](%%REPO_URL%%/2001/ollinger//ollinger.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2001/ollinger/try.sh) script. @@ -3543,8 +3553,8 @@ worse.
-## [2001/schweikh](2001/schweikh/index.html) -### Source code: [schweikh.c](%%REPO_URL%%/2001/schweikh//schweikh.c) +## Winning entry: [2001/schweikh](2001/schweikh/index.html) +### Winning entry source code: [schweikh.c](%%REPO_URL%%/2001/schweikh//schweikh.c)
[Cody](#cody) fixed this to not crash if not enough args as this was not documented by @@ -3555,8 +3565,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2001/schweikh/try.sh) script.
-## [2001/westley](2001/westley/index.html) -### Source code: [westley.c](%%REPO_URL%%/2001/westley//westley.c) +## Winning entry: [2001/westley](2001/westley/index.html) +### Winning entry source code: [westley.c](%%REPO_URL%%/2001/westley//westley.c)
[Cody](#cody) added the script [try.sh](%%REPO_URL%%/2001/westley/try.sh) to automate a heap of commands @@ -3566,21 +3576,21 @@ described in the index.html, based on the author's remarks.
-# 2004 +# [2004](2004/index.html)
-## [2004/anonymous](2004/anonymous/index.html) -### Source code: [anonymous.c](%%REPO_URL%%/2004/anonymous//anonymous.c) +## Winning entry: [2004/anonymous](2004/anonymous/index.html) +### Winning entry source code: [anonymous.c](%%REPO_URL%%/2004/anonymous//anonymous.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2004/anonymous/try.sh) script.
-## [2004/arachnid](2004/arachnid/index.html) -### Source code: [arachnid.c](%%REPO_URL%%/2004/arachnid//arachnid.c) +## Winning entry: [2004/arachnid](2004/arachnid/index.html) +### Winning entry source code: [arachnid.c](%%REPO_URL%%/2004/arachnid//arachnid.c)
[Cody](#cody) added an [alternate version](2004/arachnid/index.html#alternate-code) which @@ -3595,8 +3605,8 @@ browsers knowing what to do with it.
-## [2004/burley](2004/burley/index.html) -### Source code: [burley.c](%%REPO_URL%%/2004/burley//burley.c) +## Winning entry: [2004/burley](2004/burley/index.html) +### Winning entry source code: [burley.c](%%REPO_URL%%/2004/burley//burley.c)
[Cody](#cody) fixed this to compile with `clang` and to work with both `gcc` and @@ -3633,8 +3643,8 @@ this, forcing `-O0`.
-## [2004/gavare](2004/gavare/index.html) -### Source code: [gavare.c](%%REPO_URL%%/2004/gavare//gavare.c) +## Winning entry: [2004/gavare](2004/gavare/index.html) +### Winning entry source code: [gavare.c](%%REPO_URL%%/2004/gavare//gavare.c)
[Cody](#cody) added three different [alternate @@ -3651,8 +3661,8 @@ entry](https://gavare.se/ioccc/ioccc_gavare.c.html).
-## [2004/gavin](2004/gavin/index.html) -### Source code: [gavin.c](%%REPO_URL%%/2004/gavin//gavin.c) +## Winning entry: [2004/gavin](2004/gavin/index.html) +### Winning entry source code: [gavin.c](%%REPO_URL%%/2004/gavin//gavin.c)
[Cody](#cody) provided the [alt code](2004/gavin/index.html#alternate-code) for @@ -3668,8 +3678,8 @@ files and causing `make clobber` to wipe some of them out.
-## [2004/hibachi](2004/hibachi/index.html) -### Source code: [hibachi.c](%%REPO_URL%%/2004/hibachi//hibachi.c) +## Winning entry: [2004/hibachi](2004/hibachi/index.html) +### Winning entry source code: [hibachi.c](%%REPO_URL%%/2004/hibachi//hibachi.c)
[Cody](#cody) fixed a bunch of links in the index.html provided with the entry @@ -3680,16 +3690,16 @@ Wayback Machine.
-## [2004/hoyle](2004/hoyle/index.html) -### Source code: [hoyle.c](%%REPO_URL%%/2004/hoyle//hoyle.c) +## Winning entry: [2004/hoyle](2004/hoyle/index.html) +### Winning entry source code: [hoyle.c](%%REPO_URL%%/2004/hoyle//hoyle.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2004/hoyle/try.sh) script.
-## [2004/jdalbec](2004/jdalbec/index.html) -### Source code: [jdalbec.c](%%REPO_URL%%/2004/jdalbec//jdalbec.c) +## Winning entry: [2004/jdalbec](2004/jdalbec/index.html) +### Winning entry source code: [jdalbec.c](%%REPO_URL%%/2004/jdalbec//jdalbec.c)
[Cody](#cody) fixed this to compile with `gcc` (it worked with `clang`). The problem was the @@ -3726,8 +3736,8 @@ Finally Cody added [try.sh](%%REPO_URL%%/2004/jdalbec/try.sh) and
-## [2004/kopczynski](2004/kopczynski/index.html) -### Source code: [kopczynski.c](%%REPO_URL%%/2004/kopczynski//kopczynski.c) +## Winning entry: [2004/kopczynski](2004/kopczynski/index.html) +### Winning entry source code: [kopczynski.c](%%REPO_URL%%/2004/kopczynski//kopczynski.c)
[Cody](#cody) reported that this entry cannot be optimised by the compiler as otherwise @@ -3745,8 +3755,8 @@ get it to work, that being `kopczynski-10-rev`.
-## [2004/newbern](2004/newbern/index.html) -### Source code: [newbern.c](%%REPO_URL%%/2004/newbern//newbern.c) +## Winning entry: [2004/newbern](2004/newbern/index.html) +### Winning entry source code: [newbern.c](%%REPO_URL%%/2004/newbern//newbern.c)
[Cody](#cody) and Landon individually fixed this to work with `clang`. @@ -3757,16 +3767,16 @@ chose the word `IOCCC` instead of `AAA`).
-## [2004/omoikane](2004/omoikane/index.html) -### Source code: [omoikane.c](%%REPO_URL%%/2004/omoikane//omoikane.c) +## Winning entry: [2004/omoikane](2004/omoikane/index.html) +### Winning entry source code: [omoikane.c](%%REPO_URL%%/2004/omoikane//omoikane.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2004/omoikane/try.sh) script.
-## [2004/schnitzi](2004/schnitzi/index.html) -### Source code: [schnitzi.c](%%REPO_URL%%/2004/schnitzi//schnitzi.c) +## Winning entry: [2004/schnitzi](2004/schnitzi/index.html) +### Winning entry source code: [schnitzi.c](%%REPO_URL%%/2004/schnitzi//schnitzi.c)
[Cody](#cody) made this use `fgets(3)`. See [FAQ 4.1 - Why were some calls to @@ -3782,8 +3792,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2004/schnitzi/try.sh) script.
-## [2004/sds](2004/sds/index.html) -### Source code: [sds.c](%%REPO_URL%%/2004/sds//sds.c) +## Winning entry: [2004/sds](2004/sds/index.html) +### Winning entry source code: [sds.c](%%REPO_URL%%/2004/sds//sds.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2004/sds/try.sh) script. @@ -3794,8 +3804,8 @@ to the repo for the script instead.
-## [2004/vik2](2004/vik2/index.html) -### Source code: [vik2.c](%%REPO_URL%%/2004/vik2//vik2.c) +## Winning entry: [2004/vik2](2004/vik2/index.html) +### Winning entry source code: [vik2.c](%%REPO_URL%%/2004/vik2//vik2.c)
[Cody](#cody) fixed this to compile in Linux. Although it compiled cleanly in macOS (and @@ -3857,13 +3867,13 @@ just to make it a bit easier to compile.
-# 2005 +# [2005](2005/index.html)
-## [2005/aidan](2005/aidan/index.html) -### Source code: [aidan.c](%%REPO_URL%%/2005/aidan//aidan.c) +## Winning entry: [2005/aidan](2005/aidan/index.html) +### Winning entry source code: [aidan.c](%%REPO_URL%%/2005/aidan//aidan.c)
[Cody](#cody) fixed the test script, described by the author in their remarks, to refer @@ -3884,8 +3894,8 @@ suite.
-## [2005/anon](2005/anon/index.html) -### Source code: [anon.c](%%REPO_URL%%/2005/anon//anon.c) +## Winning entry: [2005/anon](2005/anon/index.html) +### Winning entry source code: [anon.c](%%REPO_URL%%/2005/anon//anon.c)
[Cody](#cody) fixed a problem where in some systems (like macOS) the `stty sane` would @@ -3901,8 +3911,8 @@ movements.
-## [2005/boutines](2005/boutines/index.html) -### Source code: [boutines.c](%%REPO_URL%%/2005/boutines//boutines.c) +## Winning entry: [2005/boutines](2005/boutines/index.html) +### Winning entry source code: [boutines.c](%%REPO_URL%%/2005/boutines//boutines.c)
[Cody](#cody) added the [input.txt](2005/boutines/input.txt) data file based on suggested @@ -3912,8 +3922,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2005/boutines/try.sh) script.
-## [2005/giljade](2005/giljade/index.html) -### Source code: [giljade.c](%%REPO_URL%%/2005/giljade//giljade.c) +## Winning entry: [2005/giljade](2005/giljade/index.html) +### Winning entry source code: [giljade.c](%%REPO_URL%%/2005/giljade//giljade.c)
After Landon fixed the entry to compile with `clang` [Cody](#cody) noticed this @@ -3983,8 +3993,8 @@ error; otherwise it is success. It uses [test.sh](%%REPO_URL%%/2005/giljade/test
-## [2005/jetro](2005/jetro/index.html) -### Source code: [jetro.c](%%REPO_URL%%/2005/jetro//jetro.c) +## Winning entry: [2005/jetro](2005/jetro/index.html) +### Winning entry source code: [jetro.c](%%REPO_URL%%/2005/jetro//jetro.c)
[Cody](#cody) added explicit linking of libm (`-lm`) for systems like Linux that seem to @@ -3993,16 +4003,16 @@ not do it implicitly (like macOS does).
-## [2005/klausler](2005/klausler/index.html) -### Source code: [klausler.c](%%REPO_URL%%/2005/klausler//klausler.c) +## Winning entry: [2005/klausler](2005/klausler/index.html) +### Winning entry source code: [klausler.c](%%REPO_URL%%/2005/klausler//klausler.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2005/klausler/try.sh) script.
-## [2005/mikeash](2005/mikeash/index.html) -### Source code: [mikeash.c](%%REPO_URL%%/2005/mikeash//mikeash.c) +## Winning entry: [2005/mikeash](2005/mikeash/index.html) +### Winning entry source code: [mikeash.c](%%REPO_URL%%/2005/mikeash//mikeash.c)
[Cody](#cody) fixed this to work in Linux. The problem was an unknown escape sequence, @@ -4036,8 +4046,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2005/mikeash/try.sh) script.
-## [2005/mynx](2005/mynx/index.html) -### Source code: [mynx.c](%%REPO_URL%%/2005/mynx//mynx.c) +## Winning entry: [2005/mynx](2005/mynx/index.html) +### Winning entry source code: [mynx.c](%%REPO_URL%%/2005/mynx//mynx.c)
[Cody](#cody) fixed this so that the [configure](%%REPO_URL%%/2005/mynx/source/configure) script (which is not @@ -4051,8 +4061,8 @@ wants to add the necessary code.
-## [2005/persano](2005/persano/index.html) -### Source code: [persano.c](%%REPO_URL%%/2005/persano//persano.c) +## Winning entry: [2005/persano](2005/persano/index.html) +### Winning entry source code: [persano.c](%%REPO_URL%%/2005/persano//persano.c)
[Cody](#cody) added the (untested) [alternate @@ -4064,8 +4074,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2005/persano/try.sh) script.
-## [2005/sykes](2005/sykes/index.html) -### Source code: [sykes.c](%%REPO_URL%%/2005/sykes//sykes.c) +## Winning entry: [2005/sykes](2005/sykes/index.html) +### Winning entry source code: [sykes.c](%%REPO_URL%%/2005/sykes//sykes.c)
[Cody](#cody) added the saved (with the `SAVE` command) BASIC program `PET` which was: @@ -4106,8 +4116,8 @@ interrupt is set to in order to exit the program.
-## [2005/timwi](2005/timwi/index.html) -### Source code: [timwi.c](%%REPO_URL%%/2005/timwi//timwi.c) +## Winning entry: [2005/timwi](2005/timwi/index.html) +### Winning entry source code: [timwi.c](%%REPO_URL%%/2005/timwi//timwi.c)
[Cody](#cody) added [try.sh](%%REPO_URL%%/2005/timwi/try.sh). It only has one command as he doesn't @@ -4116,8 +4126,8 @@ he doesn't want to damage anyone else's brain either. :-)
-## [2005/toledo](2005/toledo/index.html) -### Source code: [toledo.c](%%REPO_URL%%/2005/toledo//toledo.c) +## Winning entry: [2005/toledo](2005/toledo/index.html) +### Winning entry source code: [toledo.c](%%REPO_URL%%/2005/toledo//toledo.c)
[Cody](#cody) fixed this to compile with some versions of `clang` which have an additional @@ -4128,8 +4138,8 @@ The alternate versions were also fixed.
-## [2005/vince](2005/vince/index.html) -### Source code: [vince.c](%%REPO_URL%%/2005/vince//vince.c) +## Winning entry: [2005/vince](2005/vince/index.html) +### Winning entry source code: [vince.c](%%REPO_URL%%/2005/vince//vince.c)
[Cody](#cody) fixed this in the case that the program is compiled or linked/copies to @@ -4144,13 +4154,13 @@ if one runs it from another directory, specifying the directory, it'll not catch
-# 2006 +# [2006](2006/index.html)
-## [2006/birken](2006/birken/index.html) -### Source code: [birken.c](%%REPO_URL%%/2006/birken//birken.c) +## Winning entry: [2006/birken](2006/birken/index.html) +### Winning entry source code: [birken.c](%%REPO_URL%%/2006/birken//birken.c)
[Cody](#cody) fixed a segfault in macOS with this entry. The problem was a missing `+1` @@ -4160,8 +4170,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2006/birken/try.sh) script.
-## [2006/borsanyi](2006/borsanyi/index.html) -### Source code: [borsanyi.c](%%REPO_URL%%/2006/borsanyi//borsanyi.c) +## Winning entry: [2006/borsanyi](2006/borsanyi/index.html) +### Winning entry source code: [borsanyi.c](%%REPO_URL%%/2006/borsanyi//borsanyi.c)
[Cody](#cody) fixed the Makefile to work in systems where the `lpthread` is not @@ -4171,16 +4181,16 @@ Cody also added the [try.sh](%%REPO_URL%%/2006/borsanyi/try.sh) script.
-## [2006/grothe](2006/grothe/index.html) -### Source code: [grothe.c](%%REPO_URL%%/2006/grothe//grothe.c) +## Winning entry: [2006/grothe](2006/grothe/index.html) +### Winning entry source code: [grothe.c](%%REPO_URL%%/2006/grothe//grothe.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2006/grothe/try.sh) script.
-## [2006/hamre](2006/hamre/index.html) -### Source code: [hamre.c](%%REPO_URL%%/2006/hamre//hamre.c) +## Winning entry: [2006/hamre](2006/hamre/index.html) +### Winning entry source code: [hamre.c](%%REPO_URL%%/2006/hamre//hamre.c)
[Cody](#cody) fixed this so that it will not crash without an arg after it was suggested @@ -4190,8 +4200,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2006/hamre/try.sh) script.
-## [2006/monge](2006/monge/index.html) -### Source code: [monge.c](%%REPO_URL%%/2006/monge//monge.c) +## Winning entry: [2006/monge](2006/monge/index.html) +### Winning entry source code: [monge.c](%%REPO_URL%%/2006/monge//monge.c)
[Cody](#cody) added the [alternate code](2006/monge/index.html#alternate-code) that lets @@ -4213,8 +4223,8 @@ bugs.html](bugs.html#2006-monge).
-## [2006/night](2006/night/index.html) -### Source code: [night.c](%%REPO_URL%%/2006/night//night.c) +## Winning entry: [2006/night](2006/night/index.html) +### Winning entry source code: [night.c](%%REPO_URL%%/2006/night//night.c)
As [Cody](#cody) is a lost :-) `vim` user he took the author's remarks to add support @@ -4222,8 +4232,8 @@ back for arrow keys in the [alternate version](%%REPO_URL%%/2006/night/night.alt
-## [2006/sloane](2006/sloane/index.html) -### Source code: [sloane.c](%%REPO_URL%%/2006/sloane//sloane.c) +## Winning entry: [2006/sloane](2006/sloane/index.html) +### Winning entry source code: [sloane.c](%%REPO_URL%%/2006/sloane//sloane.c)
[Cody](#cody) fixed this entry to work with `clang` which has a defect with the args to @@ -4254,8 +4264,8 @@ program in some systems he also added `-include ...` to the Makefile as well.
-## [2006/stewart](2006/stewart/index.html) -### Source code: [stewart.c](%%REPO_URL%%/2006/stewart//stewart.c) +## Winning entry: [2006/stewart](2006/stewart/index.html) +### Winning entry source code: [stewart.c](%%REPO_URL%%/2006/stewart//stewart.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2006/stewart/try.sh) script. @@ -4266,8 +4276,8 @@ bug to fix.
-## [2006/sykes1](2006/sykes1/index.html) -### Source code: [sykes1.c](%%REPO_URL%%/2006/sykes1//sykes1.c) +## Winning entry: [2006/sykes1](2006/sykes1/index.html) +### Winning entry source code: [sykes1.c](%%REPO_URL%%/2006/sykes1//sykes1.c)
[Cody](#cody) provided the [alt code](2006/sykes1/index.html#alternate-code) based on the @@ -4282,8 +4292,8 @@ it to the repo as well.
-## [2006/sykes2](2006/sykes2/index.html) -### Source code: [sykes2.c](%%REPO_URL%%/2006/sykes2//sykes2.c) +## Winning entry: [2006/sykes2](2006/sykes2/index.html) +### Winning entry source code: [sykes2.c](%%REPO_URL%%/2006/sykes2//sykes2.c)
[Cody](#cody), out of an abundance of caution for `clang`'s defects, made `main()` have @@ -4295,16 +4305,16 @@ entry to show the clock update in real time.
-## [2006/toledo1](2006/toledo1/index.html) -### Source code: [toledo1.c](%%REPO_URL%%/2006/toledo1//toledo1.c) +## Winning entry: [2006/toledo1](2006/toledo1/index.html) +### Winning entry source code: [toledo1.c](%%REPO_URL%%/2006/toledo1//toledo1.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2006/toledo1/try.sh) script.
-## [2006/toledo2](2006/toledo2/index.html) -### Source code: [toledo2.c](%%REPO_URL%%/2006/toledo2//toledo2.c) +## Winning entry: [2006/toledo2](2006/toledo2/index.html) +### Winning entry source code: [toledo2.c](%%REPO_URL%%/2006/toledo2//toledo2.c)
[Cody](#cody) fixed a segfault in this program which was making it fail to work under @@ -4325,8 +4335,8 @@ where appears the `IMPORT.COM` and `HALT.COM` files.
-## [2006/toledo3](2006/toledo3/index.html) -### Source code: [toledo3.c](%%REPO_URL%%/2006/toledo3//toledo3.c) +## Winning entry: [2006/toledo3](2006/toledo3/index.html) +### Winning entry source code: [toledo3.c](%%REPO_URL%%/2006/toledo3//toledo3.c)
[Cody](#cody) fixed a crash and a display problem in this entry so that it now works in @@ -4341,29 +4351,29 @@ We're not able to test this.
-# 2011 +# [2011](2011/index.html)
-## [2011/akari](2011/akari/index.html) -### Source code: [akari.c](%%REPO_URL%%/2011/akari//akari.c) +## Winning entry: [2011/akari](2011/akari/index.html) +### Winning entry source code: [akari.c](%%REPO_URL%%/2011/akari//akari.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2011/akari/try.sh) script.
-## [2011/blakely](2011/blakely/index.html) -### Source code: [blakely.c](%%REPO_URL%%/2011/blakely//blakely.c) +## Winning entry: [2011/blakely](2011/blakely/index.html) +### Winning entry source code: [blakely.c](%%REPO_URL%%/2011/blakely//blakely.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2011/blakely/try.sh) script.
-## [2011/borsanyi](2011/borsanyi/index.html) -### Source code: [borsanyi.c](%%REPO_URL%%/2011/borsanyi//borsanyi.c) +## Winning entry: [2011/borsanyi](2011/borsanyi/index.html) +### Winning entry source code: [borsanyi.c](%%REPO_URL%%/2011/borsanyi//borsanyi.c)
[Cody](#cody), out of an abundance of caution, added a second arg to `main()` as some @@ -4374,16 +4384,16 @@ Cody also added the [try.sh](%%REPO_URL%%/2011/borsanyi/try.sh) script.
-## [2011/dlowe](2011/dlowe/index.html) -### Source code: [dlowe.c](%%REPO_URL%%/2011/dlowe//dlowe.c) +## Winning entry: [2011/dlowe](2011/dlowe/index.html) +### Winning entry source code: [dlowe.c](%%REPO_URL%%/2011/dlowe//dlowe.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2011/dlowe/try.sh) script.
-## [2011/eastman](2011/eastman/index.html) -### Source code: [eastman.c](%%REPO_URL%%/2011/eastman//eastman.c) +## Winning entry: [2011/eastman](2011/eastman/index.html) +### Winning entry source code: [eastman.c](%%REPO_URL%%/2011/eastman//eastman.c)
[Cody](#cody) added the video file [boing-ball.mp4](%%REPO_URL%%/2011/eastman) which is the demo the @@ -4391,16 +4401,16 @@ author referred to.
-## [2011/fredriksson](2011/fredriksson/index.html) -### Source code: [fredriksson.c](%%REPO_URL%%/2011/fredriksson//fredriksson.c) +## Winning entry: [2011/fredriksson](2011/fredriksson/index.html) +### Winning entry source code: [fredriksson.c](%%REPO_URL%%/2011/fredriksson//fredriksson.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2011/fredriksson/try.sh) script.
-## [2011/goren](2011/goren/index.html) -### Source code: [goren.c](%%REPO_URL%%/2011/goren//goren.c) +## Winning entry: [2011/goren](2011/goren/index.html) +### Winning entry source code: [goren.c](%%REPO_URL%%/2011/goren//goren.c)
[Cody](#cody) fixed this for macOS. Before the fix it segfaulted. It worked fine under @@ -4415,8 +4425,8 @@ Cody added the following words of wisdom: `'"this" is not a pipe but "!" is'`.
-## [2011/hamaji](2011/hamaji/index.html) -### Source code: [hamaji.c](%%REPO_URL%%/2011/hamaji//hamaji.c) +## Winning entry: [2011/hamaji](2011/hamaji/index.html) +### Winning entry source code: [hamaji.c](%%REPO_URL%%/2011/hamaji//hamaji.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2011/hamaji/try.sh) script and the `.nono` files @@ -4430,16 +4440,16 @@ and the others were from the authors' remarks.
-## [2011/hou](2011/hou/index.html) -### Source code: [hou.c](%%REPO_URL%%/2011/hou//hou.c) +## Winning entry: [2011/hou](2011/hou/index.html) +### Winning entry source code: [hou.c](%%REPO_URL%%/2011/hou//hou.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2011/hou/try.sh) script.
-## [2011/konno](2011/konno/index.html) -### Source code: [konno.c](%%REPO_URL%%/2011/konno//konno.c) +## Winning entry: [2011/konno](2011/konno/index.html) +### Winning entry source code: [konno.c](%%REPO_URL%%/2011/konno//konno.c)
[Cody](#cody) fixed the program to not crash if no arg was specified as this was not a @@ -4449,8 +4459,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2011/konno/try.sh) script.
-## [2011/richards](2011/richards/index.html) -### Source code: [richards.c](%%REPO_URL%%/2011/richards//richards.c) +## Winning entry: [2011/richards](2011/richards/index.html) +### Winning entry source code: [richards.c](%%REPO_URL%%/2011/richards//richards.c)
[Cody](#cody) fixed a minor problem that showed up in both Linux and macOS. He notes @@ -4471,8 +4481,8 @@ bugs.html](bugs.html#2011-richards) for more details).
-## [2011/toledo](2011/toledo/index.html) -### Source code: [toledo.c](%%REPO_URL%%/2011/toledo//toledo.c) +## Winning entry: [2011/toledo](2011/toledo/index.html) +### Winning entry source code: [toledo.c](%%REPO_URL%%/2011/toledo//toledo.c)
[Cody](#cody) added two [alternate versions](2011/toledo/index.html#alternate-code): one that @@ -4485,8 +4495,8 @@ controls, width and height.
-## [2011/vik](2011/vik/index.html) -### Source code: [vik.c](%%REPO_URL%%/2011/vik//vik.c) +## Winning entry: [2011/vik](2011/vik/index.html) +### Winning entry source code: [vik.c](%%REPO_URL%%/2011/vik//vik.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2011/vik/try.sh) script. @@ -4497,8 +4507,8 @@ header files). To build try the alt rule of the Makefile.
-## [2011/zucker](2011/zucker/index.html) -### Source code: [zucker.c](%%REPO_URL%%/2011/zucker//zucker.c) +## Winning entry: [2011/zucker](2011/zucker/index.html) +### Winning entry source code: [zucker.c](%%REPO_URL%%/2011/zucker//zucker.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2011/zucker/try.sh) script. @@ -4513,13 +4523,13 @@ eventually dies.
-# 2012 +# [2012](2012/index.html)
-## [2012/blakely](2012/blakely/index.html) -### Source code: [blakely.c](%%REPO_URL%%/2012/blakely//blakely.c) +## Winning entry: [2012/blakely](2012/blakely/index.html) +### Winning entry source code: [blakely.c](%%REPO_URL%%/2012/blakely//blakely.c)
[Cody](#cody) added explicit linking of libm (`-lm`) as not all systems do this @@ -4529,16 +4539,16 @@ Cody also added the [try.sh](%%REPO_URL%%/2012/blakely/try.sh) script.
-## [2012/deckmyn](2012/deckmyn/index.html) -### Source code: [deckmyn.c](%%REPO_URL%%/2012/deckmyn//deckmyn.c) +## Winning entry: [2012/deckmyn](2012/deckmyn/index.html) +### Winning entry source code: [deckmyn.c](%%REPO_URL%%/2012/deckmyn//deckmyn.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2012/deckmyn/try.sh) script.
-## [2012/endoh1](2012/endoh1/index.html) -### Source code: [endoh1.c](%%REPO_URL%%/2012/endoh1//endoh1.c) +## Winning entry: [2012/endoh1](2012/endoh1/index.html) +### Winning entry source code: [endoh1.c](%%REPO_URL%%/2012/endoh1//endoh1.c)
[Cody](#cody) added explicit linking of libm (`-lm`) as not all systems do this @@ -4574,8 +4584,8 @@ The [endoh1.alt2.c](%%REPO_URL%%/2012/endoh1/endoh1.alt2.c) was provided by the
-## [2012/endoh2](2012/endoh2/index.html) -### Source code: [endoh2.c](%%REPO_URL%%/2012/endoh2//endoh2.c) +## Winning entry: [2012/endoh2](2012/endoh2/index.html) +### Winning entry source code: [endoh2.c](%%REPO_URL%%/2012/endoh2//endoh2.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2012/endoh2/try.sh) script that runs @@ -4586,8 +4596,8 @@ Cody also fixed a typo in the ruby script
-## [2012/grothe](2012/grothe/index.html) -### Source code: [grothe.c](%%REPO_URL%%/2012/grothe//grothe.c) +## Winning entry: [2012/grothe](2012/grothe/index.html) +### Winning entry source code: [grothe.c](%%REPO_URL%%/2012/grothe//grothe.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2012/grothe/try.sh) script. @@ -4608,8 +4618,8 @@ which the recipe file now links to.
-## [2012/hamano](2012/hamano/index.html) -### Source code: [hamano.c](%%REPO_URL%%/2012/hamano//hamano.c) +## Winning entry: [2012/hamano](2012/hamano/index.html) +### Winning entry source code: [hamano.c](%%REPO_URL%%/2012/hamano//hamano.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2012/hamano/try.sh) script and the helper @@ -4618,8 +4628,8 @@ procedure for both `hint.pdf` and `hello.pdf` as well as compiling them as C.
-## [2012/hou](2012/hou/index.html) -### Source code: [hou.c](%%REPO_URL%%/2012/hou//hou.c) +## Winning entry: [2012/hou](2012/hou/index.html) +### Winning entry source code: [hou.c](%%REPO_URL%%/2012/hou//hou.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2012/hou/try.sh) script and restored the original [hint @@ -4630,8 +4640,8 @@ title and stylesheet) and other formatting changes.
-## [2012/kang](2012/kang/index.html) -### Source code: [kang.c](%%REPO_URL%%/2012/kang//kang.c) +## Winning entry: [2012/kang](2012/kang/index.html) +### Winning entry source code: [kang.c](%%REPO_URL%%/2012/kang//kang.c)
[Cody](#cody) added alt code that fixes a problem where in German 'v' sounds like 'f' @@ -4663,16 +4673,16 @@ respectively. Notice how a single letter changes so much!
-## [2012/konno](2012/konno/index.html) -### Source code: [konno.c](%%REPO_URL%%/2012/konno//konno.c) +## Winning entry: [2012/konno](2012/konno/index.html) +### Winning entry source code: [konno.c](%%REPO_URL%%/2012/konno//konno.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2012/konno/try.sh) script.
-## [2012/omoikane](2012/omoikane/index.html) -### Source code: [omoikane.c](%%REPO_URL%%/2012/omoikane//omoikane.c) +## Winning entry: [2012/omoikane](2012/omoikane/index.html) +### Winning entry source code: [omoikane.c](%%REPO_URL%%/2012/omoikane//omoikane.c)
[Cody](#cody) added the [alternate versions](2012/omoikane/index.html#alternate-code) @@ -4687,16 +4697,16 @@ Cody also added the [try.sh](%%REPO_URL%%/2012/omoikane/try.sh) and
-## [2012/tromp](2012/tromp/index.html) -### Source code: [tromp.c](%%REPO_URL%%/2012/tromp//tromp.c) +## Winning entry: [2012/tromp](2012/tromp/index.html) +### Winning entry source code: [tromp.c](%%REPO_URL%%/2012/tromp//tromp.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2012/tromp/try.sh) script.
-## [2012/vik](2012/vik/index.html) -### Source code: [vik.c](%%REPO_URL%%/2012/vik//vik.c) +## Winning entry: [2012/vik](2012/vik/index.html) +### Winning entry source code: [vik.c](%%REPO_URL%%/2012/vik//vik.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2012/vik/try.sh) script. @@ -4707,8 +4717,8 @@ does this for the few who might use Windows.
-## [2012/zeitak](2012/zeitak/index.html) -### Source code: [zeitak.c](%%REPO_URL%%/2012/zeitak//zeitak.c) +## Winning entry: [2012/zeitak](2012/zeitak/index.html) +### Winning entry source code: [zeitak.c](%%REPO_URL%%/2012/zeitak//zeitak.c)
[Cody](#cody) added the [test.sh](%%REPO_URL%%/2012/zeitak/test.sh) script and the `make test` rule @@ -4729,13 +4739,13 @@ it easier for those who do not know how, and to make it more obvious to try it.
-# 2013 +# [2013](2013/index.html)
-## [2013/birken](2013/birken/index.html) -### Source code: [birken.c](%%REPO_URL%%/2013/birken//birken.c) +## Winning entry: [2013/birken](2013/birken/index.html) +### Winning entry source code: [birken.c](%%REPO_URL%%/2013/birken//birken.c)
[Cody](#cody) changed the `return 0;` at the end of the program to be `return @@ -4755,8 +4765,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2013/birken/try.sh) script for the ent
-## [2013/cable1](2013/cable1/index.html) -### Source code: [cable1.c](%%REPO_URL%%/2013/cable1//cable1.c) +## Winning entry: [2013/cable1](2013/cable1/index.html) +### Winning entry source code: [cable1.c](%%REPO_URL%%/2013/cable1//cable1.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2013/cable1/try.sh) script which also has an @@ -4764,16 +4774,16 @@ joke Easter egg in it based on the judges' remarks.
-## [2013/cable2](2013/cable2/index.html) -### Source code: [cable2.c](%%REPO_URL%%/2013/cable2//cable2.c) +## Winning entry: [2013/cable2](2013/cable2/index.html) +### Winning entry source code: [cable2.c](%%REPO_URL%%/2013/cable2//cable2.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2013/cable2/try.sh) script.
-## [2013/cable3](2013/cable3/index.html) -### Source code: [cable3.c](%%REPO_URL%%/2013/cable3//cable3.c) +## Winning entry: [2013/cable3](2013/cable3/index.html) +### Winning entry source code: [cable3.c](%%REPO_URL%%/2013/cable3//cable3.c)
[Cody](#cody) fixed this to compile with modern systems. The problems were that @@ -4814,8 +4824,8 @@ author linked to at `https://bitly.com/1bU8URK`.
-## [2013/dlowe](2013/dlowe/index.html) -### Source code: [dlowe.c](%%REPO_URL%%/2013/dlowe//dlowe.c) +## Winning entry: [2013/dlowe](2013/dlowe/index.html) +### Winning entry source code: [dlowe.c](%%REPO_URL%%/2013/dlowe//dlowe.c)
[Cody](#cody) added the source code that we suggested one should compile and run with @@ -4842,16 +4852,16 @@ commands to try that he suggested to see how different lengths look.
-## [2013/endoh1](2013/endoh1/index.html) -### Source code: [endoh1.c](%%REPO_URL%%/2013/endoh1//endoh1.c) +## Winning entry: [2013/endoh1](2013/endoh1/index.html) +### Winning entry source code: [endoh1.c](%%REPO_URL%%/2013/endoh1//endoh1.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2013/endoh1/try.sh) script.
-## [2013/endoh2](2013/endoh2/index.html) -### Source code: [endoh2.c](%%REPO_URL%%/2013/endoh2//endoh2.c) +## Winning entry: [2013/endoh2](2013/endoh2/index.html) +### Winning entry source code: [endoh2.c](%%REPO_URL%%/2013/endoh2//endoh2.c)
[Cody](#cody) fixed the Makefile `check` rule so that it `checks` :-) that both @@ -4875,8 +4885,8 @@ The entry can still be enjoyed if you do not have these tools, however.
-## [2013/endoh3](2013/endoh3/index.html) -### Source code: [endoh3.c](%%REPO_URL%%/2013/endoh3//endoh3.c) +## Winning entry: [2013/endoh3](2013/endoh3/index.html) +### Winning entry source code: [endoh3.c](%%REPO_URL%%/2013/endoh3//endoh3.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2013/endoh3/try.sh) script. @@ -4886,8 +4896,8 @@ arg type and count to `main()`) added a second (unused) arg to `main()`.
-## [2013/endoh4](2013/endoh4/index.html) -### Source code: [endoh4.c](%%REPO_URL%%/2013/endoh4//endoh4.c) +## Winning entry: [2013/endoh4](2013/endoh4/index.html) +### Winning entry source code: [endoh4.c](%%REPO_URL%%/2013/endoh4//endoh4.c)
[Cody](#cody) added the [endoh4.sh](%%REPO_URL%%/2013/endoh4/endoh4.sh) script which temporarily @@ -4903,8 +4913,8 @@ allows one to redefine it as well.
-## [2013/hou](2013/hou/index.html) -### Source code: [hou.c](%%REPO_URL%%/2013/hou//hou.c) +## Winning entry: [2013/hou](2013/hou/index.html) +### Winning entry source code: [hou.c](%%REPO_URL%%/2013/hou//hou.c)
[Cody](#cody) fixed the Makefile so that this would work properly. Before this @@ -4945,7 +4955,7 @@ Cody also added the [try.sh](%%REPO_URL%%/2013/hou/try.sh) script.
-## [2013/mills](2013/mills/index.html) +## Winning entry: [2013/mills](2013/mills/index.html) ## Source code: [mills.c](%%REPO_URL%%/2013/mills/mills.c)
@@ -4958,16 +4968,16 @@ Firefox both had the problem.
-## [2013/misaka](2013/misaka/index.html) -### Source code: [misaka.c](%%REPO_URL%%/2013/misaka//misaka.c) +## Winning entry: [2013/misaka](2013/misaka/index.html) +### Winning entry source code: [misaka.c](%%REPO_URL%%/2013/misaka//misaka.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2013/misaka/try.sh) script.
-## [2013/morgan1](2013/morgan1/index.html) -### Source code: [morgan1.c](%%REPO_URL%%/2013/morgan1//morgan1.c) +## Winning entry: [2013/morgan1](2013/morgan1/index.html) +### Winning entry source code: [morgan1.c](%%REPO_URL%%/2013/morgan1//morgan1.c)
[Cody](#cody) added explicit linking of libm (`-lm`) as not all systems do this @@ -4977,21 +4987,21 @@ Cody also added the [try.sh](%%REPO_URL%%/2013/morgan1/try.sh) script.
-## [2013/robison](2013/robison/index.html) -### Source code: [robison.c](%%REPO_URL%%/2013/robison//robison.c) +## Winning entry: [2013/robison](2013/robison/index.html) +### Winning entry source code: [robison.c](%%REPO_URL%%/2013/robison//robison.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2013/robison/try.sh) script.
-# 2014 +# [2014](2014/index.html)
-## [2014/birken](2014/birken/index.html) -### Source code: [prog.c](%%REPO_URL%%/2014/birken//prog.c) +## Winning entry: [2014/birken](2014/birken/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2014/birken//prog.c)
[Cody](#cody) provided the [alternate @@ -5004,8 +5014,8 @@ redefine the port and timing constant.
-## [2014/deak](2014/deak/index.html) -### Source code: [prog.c](%%REPO_URL%%/2014/deak//prog.c) +## Winning entry: [2014/deak](2014/deak/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2014/deak//prog.c)
[Cody](#cody) added [alt code](2014/deak/index.html#alternate-code) that lets @@ -5027,8 +5037,8 @@ Cody also added the [try.alt.sh](%%REPO_URL%%/2014/deak/try.alt.sh) script.
-## [2014/endoh1](2014/endoh1/index.html) -### Source code: [prog.c](%%REPO_URL%%/2014/endoh1//prog.c) +## Winning entry: [2014/endoh1](2014/endoh1/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2014/endoh1//prog.c)
[Cody](#cody) added the [rake.sh](%%REPO_URL%%/2014/endoh1/rake.sh) script and `make rake` @@ -5056,16 +5066,16 @@ it is a file with spoilers (and too close to index.html?).
-## [2014/endoh2](2014/endoh2/index.html) -### Source code: [prog.c](%%REPO_URL%%/2014/endoh2//prog.c) +## Winning entry: [2014/endoh2](2014/endoh2/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2014/endoh2//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2014/endoh2/try.sh) script.
-## [2014/maffiodo1](2014/maffiodo1/index.html) -### Source code: [prog.c](%%REPO_URL%%/2014/maffiodo1//prog.c) +## Winning entry: [2014/maffiodo1](2014/maffiodo1/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2014/maffiodo1//prog.c)
[Cody](#cody) fixed the build for this entry: it does not require @@ -5079,8 +5089,8 @@ which let one configure the width and height of the game.
-## [2014/maffiodo2](2014/maffiodo2/index.html) -### Source code: [prog.c](%%REPO_URL%%/2014/maffiodo2//prog.c) +## Winning entry: [2014/maffiodo2](2014/maffiodo2/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2014/maffiodo2//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2014/maffiodo2/try.sh) script. @@ -5090,16 +5100,16 @@ provided by the author.
-## [2014/morgan](2014/morgan/index.html) -### Source code: [prog.c](%%REPO_URL%%/2014/morgan//prog.c) +## Winning entry: [2014/morgan](2014/morgan/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2014/morgan//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2014/morgan/try.sh) script.
-## [2014/sinon](2014/sinon/index.html) -### Source code: [prog.c](%%REPO_URL%%/2014/sinon//prog.c) +## Winning entry: [2014/sinon](2014/sinon/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2014/sinon//prog.c)
[Cody](#cody) fixed the code so that the game can play automatically like it @@ -5118,8 +5128,8 @@ kill it). This is done this way in case it jams (see index.html for details).
-## [2014/skeggs](2014/skeggs/index.html) -### Source code: [prog.c](%%REPO_URL%%/2014/skeggs//prog.c) +## Winning entry: [2014/skeggs](2014/skeggs/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2014/skeggs//prog.c)
[Cody](#cody) fixed the Makefile to compile this entry in modern systems. The problem was @@ -5139,8 +5149,8 @@ clean`) removes those files and so that they are ignored by `.gitignore`.
-## [2014/vik](2014/vik/index.html) -### Source code: [prog.c](%%REPO_URL%%/2014/vik//prog.c) +## Winning entry: [2014/vik](2014/vik/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2014/vik//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2014/vik/try.sh) script. Cody notes that there @@ -5154,8 +5164,8 @@ that would break it we do not know.
-## [2014/wiedijk](2014/wiedijk/index.html) -### Source code: [prog.c](%%REPO_URL%%/2014/wiedijk//prog.c) +## Winning entry: [2014/wiedijk](2014/wiedijk/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2014/wiedijk//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2014/wiedijk/try.sh) script which is based on @@ -5167,13 +5177,13 @@ output.
-# 2015 +# [2015](2015/index.html)
-## [2015/burton](2015/burton/index.html) -### Source code: [prog.c](%%REPO_URL%%/2015/burton//prog.c) +## Winning entry: [2015/burton](2015/burton/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2015/burton//prog.c)
@@ -5216,8 +5226,8 @@ add a `./` to the commands in the man page/index.html.
-## [2015/dogon](2015/dogon/index.html) -### Source code: [prog.c](%%REPO_URL%%/2015/dogon//prog.c) +## Winning entry: [2015/dogon](2015/dogon/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2015/dogon//prog.c)
[Cody](#cody) improved the Makefile so that one can easily change the dimensions @@ -5229,24 +5239,24 @@ they avoided.
-## [2015/duble](2015/duble/index.html) -### Source code: [prog.c](%%REPO_URL%%/2015/duble//prog.c) +## Winning entry: [2015/duble](2015/duble/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2015/duble//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2015/duble/try.sh) script.
-## [2015/endoh2](2015/endoh2/index.html) -### Source code: [prog.c](%%REPO_URL%%/2015/endoh2//prog.c) +## Winning entry: [2015/endoh2](2015/endoh2/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2015/endoh2//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2015/endoh2/try.sh) script.
-## [2015/endoh3](2015/endoh3/index.html) -### Source code: [prog.c](%%REPO_URL%%/2015/endoh3//prog.c) +## Winning entry: [2015/endoh3](2015/endoh3/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2015/endoh3//prog.c)
[Cody](#cody) fixed this to compile with Linux which was having a problem with duplicate @@ -5261,16 +5271,16 @@ simply typing `make back_to` or `make mullender`) and then runs the famous
-## [2015/endoh4](2015/endoh4/index.html) -### Source code: [prog.c](%%REPO_URL%%/2015/endoh4//prog.c) +## Winning entry: [2015/endoh4](2015/endoh4/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2015/endoh4//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2015/endoh4/try.sh) script.
-## [2015/hou](2015/hou/index.html) -### Source code: [prog.c](%%REPO_URL%%/2015/hou//prog.c) +## Winning entry: [2015/hou](2015/hou/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2015/hou//prog.c)
[Cody](#cody) added explicit linking of libm (`-lm`) for systems that do not do this @@ -5285,8 +5295,8 @@ file now links to.
-## [2015/howe](2015/howe/index.html) -### Source code: [prog.c](%%REPO_URL%%/2015/howe//prog.c) +## Winning entry: [2015/howe](2015/howe/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2015/howe//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2015/howe/try.sh) script, downloaded the War @@ -5297,8 +5307,8 @@ resulted in standard input errors in piping to `bc(1)`) and added the
-## [2015/mills1](2015/mills1/index.html) -### Source code: [prog.c](%%REPO_URL%%/2015/mills1//prog.c) +## Winning entry: [2015/mills1](2015/mills1/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2015/mills1//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2015/mills1/try.sh) script which changes the @@ -5310,24 +5320,24 @@ past).
-## [2015/mills2](2015/mills2/index.html) -### Source code: [prog.c](%%REPO_URL%%/2015/mills2//prog.c) +## Winning entry: [2015/mills2](2015/mills2/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2015/mills2//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2015/mills2/try.sh) script.
-## [2015/muth](2015/muth/index.html) -### Source code: [prog.c](%%REPO_URL%%/2015/muth//prog.c) +## Winning entry: [2015/muth](2015/muth/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2015/muth//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2015/muth/try.sh) script.
-## [2015/schweikhardt](2015/schweikhardt/index.html) -### Source code: [prog.c](%%REPO_URL%%/2015/schweikhardt//prog.c) +## Winning entry: [2015/schweikhardt](2015/schweikhardt/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2015/schweikhardt//prog.c)
[Cody](#cody) fixed the build so that `EOF` will be `-1` as the program assumes @@ -5339,8 +5349,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2015/schweikhardt/try.sh) script.
-## [2015/yang](2015/yang/index.html) -### Source code: [prog.c](%%REPO_URL%%/2015/yang//prog.c) +## Winning entry: [2015/yang](2015/yang/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2015/yang//prog.c)
[Cody](#cody) fixed an unfortunate typo in the Makefile that was preventing some of the @@ -5353,13 +5363,13 @@ He also added the [try.sh](%%REPO_URL%%/2015/yang/try.sh) script.
-# 2018 +# [2018](2018/index.html)
-## [2018/anderson](2018/anderson/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/anderson//prog.c) +## Winning entry: [2018/anderson](2018/anderson/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/anderson//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2018/anderson/try.sh) and @@ -5367,8 +5377,8 @@ He also added the [try.sh](%%REPO_URL%%/2015/yang/try.sh) script.
-## [2018/algmyr](2018/algmyr/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/algmyr//prog.c) +## Winning entry: [2018/algmyr](2018/algmyr/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/algmyr//prog.c)
@@ -5376,8 +5386,8 @@ He also added the [try.sh](%%REPO_URL%%/2015/yang/try.sh) script.
-## [2018/bellard](2018/bellard/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/bellard//prog.c) +## Winning entry: [2018/bellard](2018/bellard/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/bellard//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2018/bellard/try.sh) script. @@ -5398,8 +5408,8 @@ version as well.
-## [2018/burton1](2018/burton1/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/burton1//prog.c) +## Winning entry: [2018/burton1](2018/burton1/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/burton1//prog.c)
[Cody](#cody) fixed the `scripthd` script (referred to `prog` not `./prog`) and @@ -5411,8 +5421,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2018/burton1/try.sh) script which also
-## [2018/burton2](2018/burton2/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/burton2//prog.c) +## Winning entry: [2018/burton2](2018/burton2/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/burton2//prog.c)
[Cody](#cody) fixed the `make test` rule: it tried to run `tac(1)` (in systems @@ -5438,8 +5448,8 @@ Finally Cody added the [try.sh](%%REPO_URL%%/2018/burton2/try.sh) script.
-## [2018/ciura](2018/ciura/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/ciura//prog.c) +## Winning entry: [2018/ciura](2018/ciura/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/ciura//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2018/ciura/try.sh) and @@ -5449,8 +5459,8 @@ Internet Wayback Machine.
-## [2018/endoh1](2018/endoh1/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/endoh1//prog.c) +## Winning entry: [2018/endoh1](2018/endoh1/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/endoh1//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2018/endoh1/try.sh) script which shows the @@ -5463,8 +5473,8 @@ remarks. The input files offered includes the prog.c as the author,
-## [2018/endoh2](2018/endoh2/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/endoh2//prog.c) +## Winning entry: [2018/endoh2](2018/endoh2/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/endoh2//prog.c)
[Cody](#cody) fixed the [run.sh](%%REPO_URL%%/2018/endoh2/run.sh) script (had commands that didn't @@ -5478,8 +5488,8 @@ run the respective scripts.
-## [2018/ferguson](2018/ferguson/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/ferguson//prog.c) +## Winning entry: [2018/ferguson](2018/ferguson/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/ferguson//prog.c)
[Cody](#cody), with irony well intended :-), fixed the [test.sh @@ -5494,8 +5504,8 @@ that's probably true: let's just say that for the IOCCC I'm (Cody) a weasel! :-)
-## [2018/hou](2018/hou/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/hou//prog.c) +## Winning entry: [2018/hou](2018/hou/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/hou//prog.c)
[Cody](#cody) added explicit linking of libm (`-lm`) for systems that do not do this @@ -5505,8 +5515,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2018/hou/try.sh) script.
-## [2018/mills](2018/mills/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/mills//prog.c) +## Winning entry: [2018/mills](2018/mills/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/mills//prog.c)
[Cody](#cody), based on the author's remarks, made it possible to save state @@ -5520,8 +5530,8 @@ details on the bug.
-## [2018/poikola](2018/poikola/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/poikola//prog.c) +## Winning entry: [2018/poikola](2018/poikola/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/poikola//prog.c)
[Cody](#cody) added the missing `docs` rule to the Makefile that forms a PDF @@ -5536,16 +5546,16 @@ configuration).
-## [2018/vokes](2018/vokes/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/vokes//prog.c) +## Winning entry: [2018/vokes](2018/vokes/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/vokes//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2018/vokes/try.sh) script.
-## [2018/yang](2018/yang/index.html) -### Source code: [prog.c](%%REPO_URL%%/2018/yang//prog.c) +## Winning entry: [2018/yang](2018/yang/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2018/yang//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2018/yang/try.sh) script. This script will ask @@ -5555,13 +5565,13 @@ if the user wants to see some of the spoilers and only show them if they type
-# 2019 +# [2019](2019/index.html)
-## [2019/adamovsky](2019/adamovsky/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/adamovsky//prog.c) +## Winning entry: [2019/adamovsky](2019/adamovsky/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/adamovsky//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2019/adamovsky/try.sh) script and the Unlambda @@ -5570,8 +5580,8 @@ to what can crash it - but it's not a bug, it's a feature.
-## [2019/burton](2019/burton/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/burton//prog.c) +## Winning entry: [2019/burton](2019/burton/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/burton//prog.c)
[Cody](#cody) fixed the Makefile which had a bad character, a '%' instead of a '$' which @@ -5594,8 +5604,8 @@ browsers/GitHub.
-## [2019/ciura](2019/ciura/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/ciura//prog.c) +## Winning entry: [2019/ciura](2019/ciura/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/ciura//prog.c)
[Cody](#cody) fixed an invalid bytes error in `tr` in the scripts. This does not @@ -5620,8 +5630,8 @@ bugs.html](bugs.html#2019-ciura) for more details.
-## [2019/diels-grabsch1](2019/diels-grabsch1/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/diels-grabsch1//prog.c) +## Winning entry: [2019/diels-grabsch1](2019/diels-grabsch1/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/diels-grabsch1//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2019/diels-grabsch1/try.sh) script. @@ -5634,8 +5644,8 @@ having tarballs for each individual entry as a convenience.
-## [2019/diels-grabsch2](2019/diels-grabsch2/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/diels-grabsch2//prog.c) +## Winning entry: [2019/diels-grabsch2](2019/diels-grabsch2/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/diels-grabsch2//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2019/diels-grabsch2/try.sh) script. This @@ -5646,8 +5656,8 @@ own sha512sum value.
-## [2019/dogon](2019/dogon/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/dogon//prog.c) +## Winning entry: [2019/dogon](2019/dogon/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/dogon//prog.c)
[Cody](#cody) added explicit linking of libm (`-lm`) for systems that do not do this @@ -5667,8 +5677,8 @@ else).
-## [2019/duble](2019/duble/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/duble//prog.c) +## Winning entry: [2019/duble](2019/duble/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/duble//prog.c)
[Cody](#cody) made the `make fullscreen` more portable by not relying on @@ -5683,8 +5693,8 @@ how to easily compile the program to a specific size. Note that `LINES` and
-## [2019/endoh](2019/endoh/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/endoh//prog.c) +## Winning entry: [2019/endoh](2019/endoh/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/endoh//prog.c)
As this is a backtrace quine having the optimiser enabled is not a good idea so @@ -5700,16 +5710,16 @@ quine.
-## [2019/giles](2019/giles/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/giles//prog.c) +## Winning entry: [2019/giles](2019/giles/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/giles//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2019/giles/try.sh) script.
-## [2019/karns](2019/karns/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/karns//prog.c) +## Winning entry: [2019/karns](2019/karns/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/karns//prog.c)
[Cody](#cody) reported that with `-O` level > 0 this program segfaults (sometimes?). He's @@ -5723,8 +5733,8 @@ bit more easily.
-## [2019/lynn](2019/lynn/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/lynn//prog.c) +## Winning entry: [2019/lynn](2019/lynn/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/lynn//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2019/lynn/try.sh) script. @@ -5736,16 +5746,16 @@ entry existing.
-## [2019/mills](2019/mills/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/mills//prog.c) +## Winning entry: [2019/mills](2019/mills/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/mills//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2019/mills/try.sh) script.
-## [2019/poikola](2019/poikola/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/poikola//prog.c) +## Winning entry: [2019/poikola](2019/poikola/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/poikola//prog.c)
[Cody](#cody) added the missing `docs` rule to the Makefile that forms a PDF @@ -5766,8 +5776,8 @@ tested: `gnu17` was not tested but `gnu11` was so the standard was set to
-## [2019/yang](2019/yang/index.html) -### Source code: [prog.c](%%REPO_URL%%/2019/yang//prog.c) +## Winning entry: [2019/yang](2019/yang/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2019/yang//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2019/yang/try.sh) script which also involved @@ -5777,13 +5787,13 @@ shouldn't) and adding the [ioccc.txt](2019/yang/ioccc.txt) file.
-# 2020 +# [2020](2020/index.html)
-## [2020/burton](2020/burton/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/burton//prog.c) +## Winning entry: [2020/burton](2020/burton/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/burton//prog.c)
[Cody](#cody) fixed the script [check_be.sh](%%REPO_URL%%/2020/burton/check_be.sh): it @@ -5798,8 +5808,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2020/burton/try.sh) script.
-## [2020/carlini](2020/carlini/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/carlini//prog.c) +## Winning entry: [2020/carlini](2020/carlini/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/carlini//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2020/carlini/try.sh) script which although at @@ -5809,8 +5819,8 @@ a friend, whether that's real or imagined.
-## [2020/endoh2](2020/endoh2/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/endoh2//prog.c) +## Winning entry: [2020/endoh2](2020/endoh2/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/endoh2//prog.c)
[Cody](#cody) copied the files from the spoiler.zip file (from his copy during @@ -5821,8 +5831,8 @@ He also added the [try.sh](%%REPO_URL%%/2020/endoh2/try.sh) script.
-## [2020/endoh3](2020/endoh3/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/endoh3//prog.c) +## Winning entry: [2020/endoh3](2020/endoh3/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/endoh3//prog.c)
[Cody](#cody) fixed the script [run_clock.sh](%%REPO_URL%%/2020/endoh3/run_clock.sh) which gave a @@ -5866,8 +5876,8 @@ alt code provided by the author, Yusuke.
-## [2020/ferguson1](2020/ferguson1/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/ferguson1//prog.c) +## Winning entry: [2020/ferguson1](2020/ferguson1/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/ferguson1//prog.c)
[Cody](#cody), with intentional irony here :-), fixed formatting, links and typos in @@ -5889,8 +5899,8 @@ and I encourage you to do so as the cake is quite picky!
-## [2020/ferguson2](2020/ferguson2/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/ferguson2//prog.c) +## Winning entry: [2020/ferguson2](2020/ferguson2/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/ferguson2//prog.c)
[Cody](#cody), with intentional irony here :-), fixed formatting, links and typos in @@ -5916,8 +5926,8 @@ and I encourage you to do so as the cake is quite picky!
-## [2020/giles](2020/giles/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/giles//prog.c) +## Winning entry: [2020/giles](2020/giles/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/giles//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2020/giles/try.sh) script. This script does @@ -5933,16 +5943,16 @@ use the program to play the WAV files (and in one case `stdout`).
-## [2020/kurdyukov1](2020/kurdyukov1/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/kurdyukov1//prog.c) +## Winning entry: [2020/kurdyukov1](2020/kurdyukov1/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/kurdyukov1//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2020/kurdyukov1/try.sh) script.
-## [2020/kurdyukov2](2020/kurdyukov2/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/kurdyukov2//prog.c) +## Winning entry: [2020/kurdyukov2](2020/kurdyukov2/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/kurdyukov2//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2020/kurdyukov2/try.sh) script. @@ -5960,8 +5970,8 @@ entry if not installed or it fails).
-## [2020/kurdyukov3](2020/kurdyukov3/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/kurdyukov3//prog.c) +## Winning entry: [2020/kurdyukov3](2020/kurdyukov3/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/kurdyukov3//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2020/kurdyukov3/try.sh) script. @@ -5972,8 +5982,8 @@ more jumbled but we know of others too.
-## [2020/kurdyukov4](2020/kurdyukov4/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/kurdyukov4//prog.c) +## Winning entry: [2020/kurdyukov4](2020/kurdyukov4/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/kurdyukov4//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2020/kurdyukov4/try.sh) script. @@ -5990,8 +6000,8 @@ J.R.R. Tolkien).
-## [2020/otterness](2020/otterness/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/otterness//prog.c) +## Winning entry: [2020/otterness](2020/otterness/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/otterness//prog.c)
@@ -6004,8 +6014,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2020/otterness/try.sh) script.
-## [2020/tsoj](2020/tsoj/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/tsoj//prog.c) +## Winning entry: [2020/tsoj](2020/tsoj/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/tsoj//prog.c)
[Cody](#cody) added [alternate code](2020/tsoj/index.html#alternate-code) that will feel @@ -6014,8 +6024,8 @@ file) but probably a lot less :-)
-## [2020/yang](2020/yang/index.html) -### Source code: [prog.c](%%REPO_URL%%/2020/yang//prog.c) +## Winning entry: [2020/yang](2020/yang/index.html) +### Winning entry source code: [prog.c](%%REPO_URL%%/2020/yang//prog.c)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/2020/yang/try.sh) script.