In the case of 1996/dalbec/README.md the file was format fixed as well.
This has not been done yet with 2004/jdalbec/README.md but will in time.
The winners.html and tmp/winners.csv files have been updated as well.
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.
Updated try section (updated .gitignore for this).
Updated Makefile to let encoder.c compile (that's the generated file)
via make.
Format fixes and typo fixes.
Add INABIAF to bugs.md and the README.md file about this entry (the
generated code).
As noted in commit 3958bbdb04:
Updated URL for author as it has changed. It's very little on his
page and the only page that suggests it is his is the ioccc.html
page. I couldn't find anything else.
Some files that are generated were not being ignored. I note that the
configure script (from running make at the 2004/hibachi directory) does
cd build ; make but nothing is to be done and it seems to have been
compiled anyway (removing the file build/hibachi first confirms this).
But whether that's a problem or not I don't know.
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.
Formatting and other notes. Many more need to be checked for this but I
wanted these changes out of the way of git status to try and clean my
working changes.
It referred to ./prog but in 2004 prog was not the target but rather the
winner handle was.
Updated .gitignore: add ioccc_ray.ppm which the README.md try section
refers to.
main() had one arg, a char *, and this is against clang requirements.
There was no inclusion of setjmp.h and so the longjmp() function
implicitly returned int and was allowed to take the wrong number of
args. It should return void however and this caused a problem with
binary expressions. The comma operator has been used for this but it
might be a problem in that by having ,1 after each it will make
expressions that could turn out to be false to be incorrect.
The longjmp() was being called with one arg which was an element of an
int[4][1000]. This is obviously incorrect but at some point it worked.
Without the prototype this is not a problem but both before (gcc) and
after the compiler fix (with gcc and clang) it did not work with linux
(in this case fedora) or macOS. The code as it now stands has the same
problem as it did before the compilation fix: it lets you input a bet
but then it does not accept any input after that; it prints nothing more
but it should print a new hand. This issue has been put in bugs.md.
My guess (in my tired head) is it has to do with the abuse of the
longjmp() and/or the comma operator making the expressions always 1 (at
least that side of the expression, thus if it gets to the longjmp() part
it will always be 1). Perhaps it should be ,0? I don't know but I might
try that next (I would guess it should be whatever an implicit int would
return without a return statement but that's just a guess). But given
that it stops working at the same spot perhaps it's not the comma
operator. Maybe the function needs to be broken up into several but I
don't know and that might or might not be worth the effort.
Finally it returned main() itself but now it returns poke() which has
the body of what main used to be.
See bugs.md for more details.
Landon and I both individually fixed it to work with clang. It appears
that both work just as well but I made it so that the argv (now ll, was
l) in main() is not the name of a function that is defined earlier in
the file. Although Landon's fix worked this felt like a better idea
especially as it seems like the argv he made was not referenced in
main() but it should be.
Instead of hiding the source code in an opaque compressed
tarball, we copy a src tree into a build tree.
Improved Makefile, .gitignore and README.md as well.
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.