This script will show the current phase of White Face ('Moon' :-) ) in
artistic ways. Rather than write the different ways here I would suggest
one just try it out.
Rather than check if $(CC) IS gcc or IS clang check for $(CC) containing
gcc or clang. This is because in some systems or conditions the compiler
might not be called JUST gcc or JUST clang. For instance gcc in MacPorts
is called gcc-mp-13 (for example) but without this change one would have
to symlink gcc to gcc-mp-13 or copy it to gcc.
The FAQ has been updated to address this.
The try.sh script has improved the judges' suggested commands in that it
does not assume a certain number of columns. Instead it determines the
number of columns and uses that value. It warnings (before starting)
that if it's <81 it might not show up well. It also warns that it should
be white text on a black background.
The Makefile copies the program to the name the author gave the program.
The README.md file has been format/typo checked and fixed.
This completes the review of 2000/bmeyer and it should also complete the
review of 2000 the 2000/README.md file notwithstanding (this goes for
all the YYYY/README.md files).
The try.sh script is as usual: replaces what the judges recommended one
try.
It was suggested to me a while back that when I encounter a void main
that I change it to int to be more portable so I have done that.
README.md file typo/format checked.
This should complete the review of 2000/dhyang.
This entry crashes in macOS. This MIGHT be related to the version of
perl, both with MacPorts and Homebrew. See the bugs.md for many more
details.
The author gave an example command and output (well several) and one I
tried (I did not try all) did not report correct output (some did).
Again the bugs.md file has many more details.
Format/typo fix README.md.
With the exception of possibly fixing the bugs noted in bugs.md this
should complete the review of 2000/dlowe.
If someone entered invalid input (say because they don't know the format
yet or because they make a typo or some other reason) their terminal
would be flooded with an error message, forcing them to kill the game.
This was done in much the same way as the fix for 1987/lievaart. Without
this fix the words:
Black position and direction: illegal
would flood the screen.
The Makefile CINCLUDE now has -include stdio.h (not strictly necessary
however).
Format and typo check README.md.
The alt code now allows one to quit early (in curses mode) and this
calls endwin() to restore terminal sanity. Due to the way the code is
designed the function which does that has to be defined three times but
only one has any code in it, that of the curses one. This means that
nodelay() is also called when initialising curses. At least at this time
the original entry does not have this feature and so one will have to
type 'reset' after they end the program to restore terminal sanity.
The alt code has been improved in another way too: now one does not have
to specify both macros at the command line when wishing to configure
only one of the programs. This is accomplished by #ifndef..#endif blocks
at the beginning of the file. That has not been done in other entries
but probably should be to help out.
The README.md file has been typo/format checked/fixed.
The FAQ has been updated as well: a question about how to use entries
that require curses has been added. This required some minor reordering
of the numbers but I believe that I got everything okay.
The alt code is based on the author's remarks with a fix so that it
actually works (I presume it once did work but it no longer did). This
compiles mkentry.c and running tomx.alt ends up running mkentry!
The try.sh script shows the different ways tomx.c can be used: as a
script, as a compiled file and as a Makefile. 'tomx.c' as a shell script
compiles itself and as a Makefile it does the same thing!
The try.alt.sh does more or less the same thing as try.sh but it works
for the alt code which works with mkentry.c (see above).
Format/typo fix README.md.
Although the try.sh and try.alt.sh script both chmod +x the source code
the code here in the repo is now +x as well because it can be used as a
script and a Makefile as well as compiled as C.
I believe this completes the review of 2000/tomx.
Due to GitHub not serving nor rendering HTML files whose filename
starts with "." (dot), we renamed `.inventory.html` to `inventory.html`.
Renamed: `tmp/gen_dot_winner.sh` -> `tmp/gen_winner_json.sh`
Fixed URL generation for GitHub links in `inventory.html`.
The manifest was updated accordingly.
The `tmp/README.md` file was updated accordingly.
Fixed an incorrect author win for "1989_jar.2" in `author_wins.numbers`
and `author_wins.csv`.
Changed winner_JSON_format_version to "0.5 2023-11-04".
Added `gen_dot_winner.sh` tool to generate .winner.json and .inventory.html
for a winner. This tool uses [pandoc](https://pandoc.org) to convert
markdown to HTML.
Used this command to generate `.winner.json` and `.inventory.html` for
all winners:
```sh
./run_all.sh -v 1 -D 1 ./gen_dot_winner.sh
```
Updated `tmp/README.md` to reflect the above.
Retired "fake.gen_inventory.sh" to `tmp/OLD_manifest/fake.gen_inventory.sh`.
Added `-D level` flag to `run_all.sh` to specify the `-v level` for
the tool that is being run.
As requested on GitHub: a tool that will be written, readme2index, will,
as explained:
'... will take the converted HTML from the README.md markdown and
inject it into an HTML template. Things such title, award one and
author information will be injected into the HTML page ahead of the
HTML that was converted from the README.md markdown. Without going
into details of HOW at this time, the result will be a coherent HTML
index.html page with the winner title / award, winning author
information, and important file links come from other sources and
NOT from the README.md file.
The text from the 1st award line, thru the authorship information,
and up to but not including the "## To build:" line in the README.md
file will just get in the way. Moreover authors might be tempted to
try and maintain that top of README.md text instead of working with
the author/_author_handle_.json and winner .winner.json files.
This was done with my[0] sgit(1) (https://github.com/xexyl/sgit) tool like:
sgit -o -n -e '/^## To build:/,$p' '[12][0-9][0-9][0-9]/*/README.md'
[0] Is that shameless self-promotion? I don't know but I don't care: it
is generally a very useful tool and has been used in other repos too.
Besides, I've done it many times before and it's a great example that I
will be adding to the README.md file of the tool, one I hadn't thought
of doing.
Fixed cases where there was a bad trailing backslash.
Improved a few cases where a code block was needed
to highlight some text.
Changed a few cases where a code block needed to
declared as, say, a sh code block.
Fixed a few cases where the winner information was not properly formatted.
Plus a few nits and clarifying text was added.
We introduce a bit of fun, while specifying that something
is "supposed to happen".
NOTE: There is no need to change the INABIAF STATUS. The use
there is perfectly fine.
To make the entry more portable the void main was changed to int main.
The no arg check was NOT fixed: this is a documented feature not a bug
and should not be fixed. If one wants to fix it for personal enjoyment
(if they can get pleasure from a couple seconds :-) ) they may do so but
it is not to be committed.
The `.id` files are no longer needed and so they were removed.
The `winner_id` (the contents of the `.id` files) are simply
a concatenation of "year" and "_" and "dir".
Adjusted `.inventory.html`, `tmp/README.md`,
`tmp/fake.gen_inventory.sh`, and the manifest according
to the above.
The new tool, tmp/fake.gen_inventory.sh, now adds
a fake .inventory.html file to each winner entry.
Once the winner2nventory tool is written, the .inventory.html
will contain links to all winner files listed in the inventory.
For now, the tmp/fake.gen_inventory.sh tool just creates
a placeholder file.
The entries referenced in `bugs.md` now have, below the
"To build:" section, a "Bugs and (Mis)features section text"
that matches the `bugs.md` status.
Several entries had their "STATUS" changed from:
"STATUS: INABIAF - please **DO NOT** fix" to:
"STATUS: known bug - please help us fix":
This was done because, while some of the bugs were minor,
inviting someone to try and fix the issue does nil harm.
In a few cases a more difficult bug was also changed to
the "please help us fix".
While we do NOT want to waste time fixing such entries NOW,
letting others become involved and to try to fix the entry
is a good thing as to encourages people to study the entry
and try to fix the entry. We don't need to accept a fix
that is offered, and of the fix transforms the source in
a less than desirable way, such a fix (if accepted) could
be become a alt source code.
Change level 3 (###) to level 2 (##):
sgit -e 's/^### \(Alternate code\)/## \1/g' '*README.md'
which is the same as:
sgit -e 's/^### Alternate code/## Alternate code/g' '*README.md'
This is per discussion in GitHub.
As in:
sgit -e 's/# To run/# To use/g' '*README.md'
This makes consistent the message for how to use the program. 'How to
use' was chosen because one can run a program just by doing './foo' but
that doesn't imply that's how to use it but the purpose of the section
is how to use it.
We now have 6 diff rules:
diff_orig_prog
diff_prog_orig
diff_alt_prog
diff_prog_alt
diff_orig_alt
diff_alt_orig
The FAQ for these diffs needs to be updated
as we have 6 types of diffs now.
The use of the markdown trailing whitespace to indicate
line break should NOT be done when the following line is empty.
This removes such improper use of whitespace in README.md files.
There was a comment in the form of:
... the liked/allowed ...
which should instead be:
... liked/allowed ...
and this was fixed with my sgit tool like:
sgit -e 's,the \(liked/allowed or compile\),\1,g' '*Makefile'
When Landon initially tried getting it to work he ended up making the
include files in the Makefile (-include ...) to restore it to be a
one-liner but this was actually an error as it was not a one-liner but
rather a best small program; the original code has the #includes in the
source file.
At the same time I made the code itself one-line as it was indeed one
line (the source of the problem, of course).
Now the fixed code (segfaulted with gcc, failed to compile with clang),
both original and alt version (southern hemisphere: based on the
author's remarks but with my fixes applied) that I added, looks more
like the original.
With the make indent rule there was a typo for indent as 'intent'. This
was fixed with my sgit tool like:
sgit -e 's/no intent\( tool found\)/no indent\1/g' '*Makefile'