Alt code uses usleep() with the macro Z (default 65000 but one can
override it - I explain in the README.md how to do this) to let one see
in modern systems what is going on. This also allows for those (like
myself) who don't like to see text (or other things) zooming by very
rapidly. The former is more important for most people I'd think. It
didn't even occur to me what was going on until I slowed it down and the
award title didn't mean anything to me until after it either though I
read about this entry a long time ago. But still the latter part is
useful as well.
Format fix README.md.
Fix compilation in some systems: compilation issue is that some
systems (looking at fedora and CentOS linux and probably others) don't
link in lm by default.
The other issue is what the author stated - that not using certain
includes might cause problems. To not ruin the format of the code I
added -include ... to the Makefile.
Add alt code: since I'm a lost :-) vim user and the author provided how
to add back support for arrow keys I made this in the alt version.
Updated .gitignore for this.
Format fix README.md.
Fix link.
Added link to Yusuke Endoh's analysis of the entry as he offers some fun
commentary and especially fun is how to cheat. Perhaps I should not do
that but since he provided some other fun comments and since the
README.md files are no longer supposed to have spoilers as such why not.
The Makefile needs -lpthread because not all systems implicitly link it
in. I tentatively noted this fix in the README.md but I'm not sure about
it as it's nothing special at all.
Format fix README.md. I note that I could not add <>s to the email
address as for some reason (in particular the dot in the email early on)
caused rdiscount (or I think - vim syntax certainly had a problem).
Sound crazy? That's because it is! The URL is no longer owned by Stephen
and instead it's a marijuana dispensary in Canada. That's right. The
IOCCC has been endorsing drugs for some years now! :-) (or maybe it's
:-( ? :-) ).
Used Internet Wayback Machine link instead.
Updated the CSV files, the winners.html files and all the relevant
README.md files.
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.
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.
The problem was a missing +1 for strlen() in a malloc() call.
This entry still uses gets() and strangely changing it to fgets() makes
it segfault but I'll worry about this later when more entries have been
checked and (if possible) fixed.
The problem was that the second arg was not of type char ** but an
implicit int and broken record though I am clang forces the types to be
correct without any option to disable this.
As it happens though the second arg is not even used so I removed it as
clang does allow this for some reason. This helps with keeping the
original format as close as possible. This triggers a different warning
but that's okay.
I also added a warning to the README.md about how it is a lot of change
in text very quickly as this could cause some problems for some people.
The segfault I noted in c40a061a2d appears
to be because it requires x86/x86_64 architecture and I tested it on the
arm64 (MacBook Pro M1). I will still in time test it under linux to make
sure it works but that's for another time.
With this in mind the entry should at least theoretically work at least
if you have an x86/x86_64 CPU.
The problem was that SDL2 removed two functions that are used in this
code. Since SDL1 is still available and since changing it to SDL2 is
more complicated than it is worth I've decided to keep it as SDL1,
changing sdl2-config to sdl-config. Nevertheless it actually segfaults
or it does at least in macOS. I have not tested it in linux but I will
in time. At this point I will try debugging it but at least now it will
link.
Typo fixes in README.md and update the reference to SDL2 to be SDL1. I
noted that currently it does not work at least under macOS. I've not yet
put it in the bugs.md file but will in time if I don't get it to work
(again once I test it under linux).
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.