Some of the links had to be manually updated (including by downloading
from the IOCCC website some missing files which I'm not even sure how
they were missing from the repo) and others were fixed via sgit. To
demonstrate its usage the following command removes from years.html the
patterns 'hint.html' and '\.hint' with tracing enabled and verbosity of
level 2. Notice how in this case the patterns are just deleted but one
could substitute it for something else or run other sed commands as
well. There was no need to specify sed options or the -I option (which
means don't use the -i option to sed). If this change needed to be done
in the entire repo 'years.html' could have been instead just '.' (if at
the root directory of the repo). One can specify more than one glob just
as one can specify more than one command (as of the bug fix in commit
05e83b60ff).
$ bin/sgit -x -v 2 -e '/hint.html/d' -e '/\.hint/d' years.html
+ getopts :hVv:xIo:s:e: flag
+ case "$flag" in
+ VERBOSITY=2
+ getopts :hVv:xIo:s:e: flag
+ case "$flag" in
+ SED_COMMANDS+=(-e "$OPTARG")
+ getopts :hVv:xIo:s:e: flag
+ case "$flag" in
+ SED_COMMANDS+=(-e "$OPTARG")
+ getopts :hVv:xIo:s:e: flag
+ shift 7
+ [[ -z -e /hint.html/d -e /\.hint/d ]]
+ [[ -z /opt/local/bin/sed ]]
+ [[ ! -f /opt/local/bin/sed ]]
+ [[ ! -x /opt/local/bin/sed ]]
+ [[ 2 -eq 0 ]]
+ git status
+ status=0
+ [[ 0 -ne 0 ]]
+ [[ 2 -gt 1 ]]
+ echo 'debug[2]: sed commands: -e /hint.html/d -e /\.hint/d'
debug[2]: sed commands: -e /hint.html/d -e /\.hint/d
+ [[ 2 -gt 1 ]]
+ echo 'debug[2]: looping through all globs'
debug[2]: looping through all globs
+ i=0
+ [[ 0 -le 2 ]]
+ [[ 2 -gt 1 ]]
+ echo 'debug[2]: found glob: README.md'
debug[2]: found glob: README.md
+ [[ 2 -ge 1 ]]
+ [[ -z '' ]]
+ [[ -n '' ]]
+ echo 'debug[1]: about to run: git ls-files README.md | xargs /opt/local/bin/sed -i"" -e /hint.html/d -e /\.hint/d'
debug[1]: about to run: git ls-files README.md | xargs /opt/local/bin/sed -i"" -e /hint.html/d -e /\.hint/d
+ [[ -z '' ]]
+ [[ -n '' ]]
+ git ls-files README.md
+ xargs /opt/local/bin/sed -i -e /hint.html/d -e '/\.hint/d'
+ (( i++ ))
+ shift 1
+ [[ 1 -le 1 ]]
+ [[ 2 -gt 1 ]]
+ echo 'debug[2]: found glob: years.html'
debug[2]: found glob: years.html
+ [[ 2 -ge 1 ]]
+ [[ -z '' ]]
+ [[ -n '' ]]
+ echo 'debug[1]: about to run: git ls-files years.html | xargs /opt/local/bin/sed -i"" -e /hint.html/d -e /\.hint/d'
debug[1]: about to run: git ls-files years.html | xargs /opt/local/bin/sed -i"" -e /hint.html/d -e /\.hint/d
+ [[ -z '' ]]
+ [[ -n '' ]]
+ git ls-files years.html
+ xargs /opt/local/bin/sed -i -e /hint.html/d -e '/\.hint/d'
+ (( i++ ))
+ shift 1
+ [[ 2 -le 0 ]]
There are some places where this was not done: in data files that refer
to binaries (examples being 2001/herrmann1/{README.md,herrmann1.c} and
those related to 1990/theorem for Turing and Fibonacci respectively). In
comments in code it was changed to be capitalised though this is
potentially problematic in that maybe it was intentional by the authors.
Probably one of the most requested mods was to merge years-spoiler.html
with years.html as how an entry does what it does, not what it does
at a high level is what is important.
This mod also allows us to maintain only one file for entry info.
I missed a '.text' file (chocolate-cake.text) in 2020/ferguson2 in
years.html.
As an aside on that famous chocolate cake recipe: since I included that
recipe in all my entries of 2020 and since the Enigma had a fun
challenge for that recipe: unless you want to play with the Enigma
machine and in so doing reward yourself with a wonderful double-layered
chocolate fudge cake recipe (the fudge being the icing) which is a
speciality of my mum's it would be better to just check the
ferguson1/chocolate-cake.html version as that's not enciphered. The
html versions are the recommended files to check at least with a
browser.
Due to (at the time of publication of the 2020 winning entries) the
rename of '.markdown' to '.text' and earlier on not being sure of how to
get the correct footer in the files (except manually) some additional
files (.markdown) were added to these two entries. The .md files were
correct in that they have not only the correct footer but they also have
lists fixed (spaces between lines starting with '-').
As well in years.html some files referred to '.text' which no longer
exist either and others referred to '.markdown' files and still others
to '.text' files and those two extensions are wrong.
This commit deletes the following files:
deleted: 2020/ferguson1/bugs.markdown
deleted: 2020/ferguson1/gameplay.markdown
deleted: 2020/ferguson1/spoilers.markdown
deleted: 2020/ferguson1/terminals.markdown
deleted: 2020/ferguson1/troubleshooting.markdown
deleted: 2020/ferguson2/recode.markdown
which as I noted above were incorrect.
This commit is part of fixing years.html wrt missing files but since
they're all related to the same author in the same year (me in 2020) I
felt they belonged in a commit separate from the other fixes which are
more general.
Many more need to be checked. Checking for dead links should not be hard
based on a quick script I wrote but any missing files will have to be
fixed later.
The following files were modified:
modified: 2012/MANIFEST
modified: 2012/hamano/README.md
modified: 2014/MANIFEST
modified: 2015/MANIFEST
modified: 2018/MANIFEST
modified: 2018/anderson/README.md
modified: 2018/ciura/README.md
modified: 2018/ferguson/FILES
modified: 2018/ferguson/weasel.1
modified: 2018/ferguson/weasel.man
modified: 2018/ferguson/weasel.spec
modified: 2019/MANIFEST
modified: 2019/karns/README.md
modified: 2020/MANIFEST
modified: 2020/ferguson2/README.md
modified: 2020/ferguson2/enigma.1
modified: 2020/ferguson2/recode.1
modified: years-spoiler.html
modified: years.html
but I am not clear on some of the changes here. For instance some of the
text changed were html anchors and I'm not sure of the implications of
it other than the fact that changing the filenames (see commits
77fb0f11a2 and
851e191519) would break the links. Whether
more needs to be done or not I do not know.
Updated the contact.html page.
Added "Contacting the IOCCC" to all of the top level IOCCC pages.
Updated IOCCC news to the 2022-12-19 date.
Archived some vert old news.
Updated the IOCCC Email addresses to use the year 2023.
Make changes to links impacted when 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.
The 2020 winners are hinted it, but the source code is not there,
nor are the hints. Someone could look into the HTML and
see what was commented out, but that is not a problem because
WHO won is known and the name of their AWARD is known already.
Moreover a number of the winners have talked about what their
entirs do, so the commented out spoiler text is not a bit problem.
One will find HTML commented out with:
<!-- XXX remove when 2020 is ready
2020 links here
XXX remove when 2020 is ready -->
The "XXX remove when 2020 is ready" string is found at the
start and end comment blocks. Again, soneone could read
what was commented out, but that is OK since most of that
information is known or can be known. The following files
have such HTML comment blocks in them.
./winners.html
./years-spoiler.html
./years.html
In addition, ./all/summary.txt was modified to not
include the 2020 entries for the momemt.
The 2020 winner code AND write-ups are NOT part of this set.
p.s. The all/all.tar.bz2 does not contain the 2020 source code (yet?).