This is a HUGE commit:
417 files changed, 874 insertions(+), 874 deletions(-)
As the IOCCC website now is https enabled I have updated the
'http://www.ioccc' to 'https://www.ioccc'.
There was also a typo in Makefiles where it said 'for VERY WELCOME' when
it should be 'are VERY WELCOME'.
Finally slashdot.org is also https enabled so references to
'http://slashdot' were changed to 'https://slashdot'.
This was done by my sgit tool (see https://github.com/xexyl/sgit)
like:
sgit -e 's,http://www.ioccc,https://www.ioccc,g' -e 's/for VERY WELCOME/are VERY WELCOME/g' -e .
but because I didn't have a list of files that should be modified I had
to be careful which files to commit as I had files that were changed but
not ready to be committed. Since I did it in steps, finding typos as I
went along, I actually ran sgit three times but to simplify the above
(and to show that it's possible to do more than one sed command) I made
it all as one. Since I did not have a list of files ahead of time I had
to determine what files to commit, first going through them like:
for j in $(for i in $(git status|grep modified|cut -d: -f2); do \
git grep 'https://www.ioccc' "$i"; done|cut -d: -f1|sort|uniq); \
do git diff "$j"; done|less -r
(I had to pipe through less because of a strange problem with the git
diff which appears to be because of a terminal problem maybe due to the
command above but it was all I could come up with in a very tired head.)
The above and
git status | grep modified:
showed that some C files had been modified which obviously should not be
done so I had to do:
git co '*c'
to undo those changes.
Finally to commit the correct files I did:
for i in $(git status|grep modified|cut -d: -f2); do \
git grep -E 'https://www.ioccc|https://slashdot|are VERY WELCOME' "$i"; \
done |cut -d: -f1|sort|uniq|xargs git commit -v
or so (with any formatting issues or typos here due to typos in the log
due to the terminal (in)sanity issue described).
This is to make it more standard which further allows one to run make on
some other source code, say because they want to try and fix an entry
but forget to update the Makefile. Or if they're the author they can not
worry about it in some cases. But since LDFLAGS is the standard way it
seems better to have the LIBS variable in the Makefile be LDFLAGS.
Maybe there is a reason to not have this and I'm happy to close this in
that case but it does seem better this way so I'm doing this commit.
Due to the fact we now have .orig.c files and thus the possibility of
winner.orig or prog.orig being built I have updated all the .gitignore
files so that these files ignored. This was done with the following
shell commands, for reference:
for i in $(find 19* 200* 201[0123] -mindepth 2 -maxdepth 2 -name .gitignore) ; do echo $(dirname "$i"|sed -e 's,[0-9]\{4\}/,,g').orig >> "$i"; done
for i in $(find 201[4-9] 2020 -mindepth 2 -maxdepth 2 -name .gitignore) ; do echo prog.orig >> "$i"; done
and the two commands is because it was only in 2014 that the winning
entries were renamed to prog so prog.orig is the correct glob.
The fix thank you's have been moved from `README.md` to
`thanks-for-fixes.md`.
**WARNING**: Some mistakes may have been made in doing this.
We presume later changes by others will correct any issues.
The `CONTRIBUTING.md` was renamed `how-to-enter.md`.
A 3rd line of links was added to top level html such as
`contact.html`, `index.html`, `judges.html`, `winners.html`,
and `years.html`.
Improved blank line use in a number (but not all) `README.md` files.
The tarball, whilst in a subdirectory, did not extract into a
subdirectory so that if one did tar xvf img/fs.tar it would still
overwrite the files. As well make clobber would wipe the files out. This
does mean one will have to update the tarball if they are to use it but
one presumes that they would know how to do this.
Note that kernel is still under img/ but it's not part of the tarball
and it's supposed to be outside a tarball too.
Landon pointed out some issues that I missed (thank you Landon .. I was
very tired and I hope that I got everything this time) in commit
4b0a2cb64a:
0. The make clobber rule removes the git files 2004/gavin/kernel and
2004/gavin/fs.tar.
1. The 2004/gavin/fs.tar file contains the file "README.md" which, when
untarred, will overwrite the git file 2004/gavin/README.md.
2. The 2004/gavin/fs.tar file contains the file "gavin.c" which, when
untarred, will overwrite the git file 2004/gavin/gavin.c.
3. The 2004/gavin/fs.tar file is a tar file that could be related with
just checking in the 3 files "prim", "sh" and "vi".
and I discovered another issue too namely that the tarball had the wrong
version of gavin.c in it as well (prior to the fix for clang).
Now the tarball is in the img/ subdirectory and the tarball contents (is
that tar ? :-) ) looks like:
$ tar ft img/fs.tar
fs/
fs/gavin.c
fs/vi
fs/README.md
fs/sh
fs/prim
I added to the todo.md file that this file should be verified to match
the contents of 2004/gavin and I gave a command to do to test this - at
the end of working on this entry or maybe better yet right before this
repo is to be folded back into the winner repo.
Updated .gitignore so that the files that are in img/fs.tar are not
added to the repo. The tarball is not meant to be extracted anyway but
rather copied to a disk for usage of the entry. It will be extracted to
verify that the contents match that of the entry itself (2004/gavin
directory).
When renaming the gavin_install.txt to gavin.md I forgot to update the
Makefile.
In bugs.md there was a stray item for 2004/gavin in the wrong year (yank
paste error almost certainly).
Also renamed gavin_install.txt to gavin.md and updated formatting.
chmod +x prim (even though it won't work in some modern platforms - at
least if it wasn't corrupted at some point it might in some; it's a
32-bit ELF LSB).
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.
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.
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.
There is one exception:
$ find . -name '*.hint' -execdir git mv '{}' README.md \;
git statufatal: destination exists, source=1992/albert/albert.hint, destination=1992/albert/README.md
Looking at the two files they differ quite a bit so I've not changed it.
I'll bring this up on GitHub.
We we move 1988-2004 entries from all of a year's winning entries
in a single directory to each winner being in their own sub-directory
under the given year directory.