I feel positively awful but I also felt I had to add a link to the emacs
tarball that was referenced in the README.md file. No matter how much it
goes against my DNA it felt like it should be at least linked to since
it was part of the author's testing procedure. Call me crazy but I just
prefer not having CTS, I already have a good OS and I'd like a good
editor too. :-)
When I first fixed this it was because the scripts segfaulted and at
least one showed an environmental variable both of which caused some
usability issues. But I started to wonder if maybe the fixed code should
be the alt version. To do this I made a change to the scripts so one can
tell the script which version to use. I was having a problem in figuring
out how to explain it (owing to the fact I've been awake once again
since stupid o'clock and without good sleep) but before I answered that
I decided to test out the new feature to the script and the output made
me decide to at least for now (discussion can be had) keep the fix the
westley.c and the unfixed original code the alt code. This particularly
shows up in the third script where the output is hard to tell what is
part of the program and what is not. The unfixed version looks like:
$ WESTLEY=./westley.alt ./clock3
TERM=xterm-256color
./clock3: line 12: 15498 Segmentation fault: 11 ${WESTLEY} "123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_\`abcdefghijkl" "/\$%&'()*+,-./\$%&'()*+,-." " ||" "
..3..6..9..12 Hours
----.----10---.----20---.----30---.----40---.----50---.---- Minutes
"
which has a " by itself on the last line that should not be there. Then
there's the other problematic output. It should just look like:
..3..6..9..12 Hours
----.----10---.----20---.----30---.----40---.----50---.---- Minutes
I note that this entry does not work in macOS even with XQuartz. The
invocation recommended caused a crash but I came up with an invocation
that made it go further along - but still also crash. I wrote in bugs.md
details about it as well as giving a workaround in macOS (involves
another system with X11 forwarding - no not xhost). There is some C
pre-processed code in bugs.md in case this helps.
The URL of the author is dead and the Internet Wayback Machine was of no
help so it was removed from winners.csv and winners.html as well. It was
added as a missing link in bugs.md. It was not in the earlier entry from
1993 (they won twice) so I did not put it there.
Format fixes in README.md.
Or else add an ostomy :-).
Some README.md files have severe ulcerative colitis and will need a
colectomies but others are missing colons. These will be discovered and
fixed in time. In the meantime I've restored some functionality for
these poor README.md files by giving them an ostomy.
There were many many README.md files with the wrong heading level for
different sections. These have been changed.
To help go through the changes it should be noted I used sgit and also
here is what is changed:
The 'Try', 'To build' and 'To run' lines have two '#'s. Some had one and
others had three.
An exception is that in 1984/anonymous/README.md for the alternative
code that had three '#'s. This is not consistent yet and it might be
that only two are desired. But for now that one at least has three.
For Makefiles that have alt related rules, moved
the related rules under the alt rule section.
In some cases where there is no alt code,
removed alt rules and/or targets.
Simply the Makefile header.
Refer to the //www.ioccc.org/bugs.md URL (that will eventually exist).
Now using CC BY-SA 4.0 License to how you may share and adapt the
Makefile.
Update the README.md files - at least with those not in a previous
commit. The updates mostly include formatting (make them markdown) but
probably also typos here and there. More probably has to be done with
these files.
The 1996/august/.gitignore was updated as well with a file that is
generated by one of the suggested commands.
The author noted in the Makefile that for Solaris the compiler flag
-I/usr/include should be included so I have added that.
As well I updated the README.md - formatting fixes (possibly typos as
well but no longer sure).
The main link was dead but looking at the Internet Wayback Machine I
found that he changed domains and it's still valid. One entry had a
different URL but with a quick check I could not determine that it had
anything to do with him so I changed it to his own domain (which I
verified is his).
The 2001/westley/.gitignore was also updated as it has other source
files that are generated by the commands in the try section.
It always segfaulted (though with the correct input it still showed the
right results) and when argc == 1 it showed an environmental variable.
The body of the for loop can now be empty (or so it appears). I put the
original in westley.alt.c because it has some interesting techniques in
which he wrote about (which I preserved in the README.md file). I also
put in the original code because I'm not entirely sure if the for loop
really can be empty in all cases. Certainly it can be in the scripts
provided but I don't know if there is a valid invocation that would need
it (but in any case it would always segfault with that loop body).
Updated 1996/westley/.gitignore (added westley.alt) and the Makefile so
that make alt will build westley.alt.
Formatting fixes in README.md.
I made the recommended change by the author so that each number is on a
line by itself rather than one long line. I changed the try section to
stop at the output that was the output noted by the judges. This was
possible with the change of making it a newline rather than a space
after each number.
I had originally proposed the change in commit
9b6b5a0376 but I did not implement it
because the output of the command versus what the try section included
was misleading (maybe that was correct :-) ) and when looking at Yusuke
Endoh's output I missed that it continued after the number (he had '...'
but I missed it in the long line of output). I linked to his analysis as
well. Thank you Yusuke for confirming it is correct output!
Some entries were added to the bugs.md file.
As well some README.md files were updated wrt the bugs some of which
might have been better in an earlier commit.
These are mostly just formatting fixes but there might be some typos
here and there.
These years have not been checked thoroughly but I made fixes and want
them in for when I do work on them.
As far as the Makefiles go: notes were added that correspond to the
notes in the README.md files which is why I have put them in the same
commit.
In some files changed the formatting was fixed to be a proper markdown
file.
There were some typos including that some README.md files that linked to
/winners.html#Cody_Boone_Ferguson actually linked to the non-existent
file /years which obviously would not work.
I also added links to the rest of the places I have fixed entries (but
see below) and I did the same for Yusuke Endoh's fixes.
As well apparently one entry I thought he fixed to compile under modern
systems does not seem to so that entry will have to be revisited another
time. That entry was 1993/jonth.
Those are the main changes here if not all of them.
As I love the theme and layout I kept the code that can no longer
compile in just commented out.
Fun fact: did you know that the original name of Gandalf was Bladorthin?
He was not the only character who originally had different names in The
Hobbit. In fact the original name of Thorin was Gandalf! (... I know the
former is true and I'm almost certain the latter is true but it's been a
long time since I've read it in The History of the Hobbit).
The commit 00ae59cd47 had a
mistake that introduces changes to Makefiles for 1996 thru 2020
that should not have been included.
This change reverses these intermediate changes until
the given year's Makefiles are ready.