317 Commits
Author SHA1 Message Date
Landon Curt Noll e1cd30eff0 change use of <br> with blackslash for markdown line breaks 2023-10-18 16:21:43 -07:00
Landon Curt Noll 6625034139 replace trailing whitespace with blackslash in README.md
As an alternative to the markdown trailing whitespace as a line
break, we use a trailing blackslash as a markdown line break.
2023-10-18 15:49:51 -07:00
Landon Curt Noll f9750f114a fix improper use of whitespace in README.md files
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.
2023-10-18 15:33:10 -07:00
Cody Boone Ferguson 5eeaf71872 Remove unneeded 'echo' in 1988/westley/demo.sh 2023-10-18 14:14:38 -07:00
Cody Boone Ferguson 0fcc400d0a Improve 1988/westley/demo.sh
Check for executable 'westley' before compiling and only _after_
compilation (if necessary) is the source shown. This way if it's
already done (as likely the case) the result of the program will be
shown closer to the source code which is entirely the point. But even if
it's not already compiled since it's compiled first it'll have the
result closer to the source (if it fails though it'll not show the
source at all).
2023-10-18 14:12:13 -07:00
Cody Boone Ferguson 16bcb2aaa7 Improve my fix to 1988/phillipps
The return in main() to pain() can be negated just like main() did to
itself (and now pain() does). Now the program exits with 0.
2023-10-18 12:17:38 -07:00
Cody Boone Ferguson 5a68f769dd Improve 1988/westley/demo.sh
In addition to exiting (1) on compilation error (rather than trying to
run the program) don't use -Wall -Wextra and don't redirect stderr to
/dev/null. This way if there ever is a problem compiling it can be seen.

Another option might be to first check if the program is already
compiled but this might not be that important. This can be determined
later.
2023-10-18 09:40:42 -07:00
Cody Boone Ferguson 70fa8f5ee9 Add 1988/westley/demo.sh + format/typo check
The reason for the demo is because when one looks at the code and then
sees the output at the same time it's far more beautiful and magical.

The README.md has been typo and format checked.

With this commit, the README.md files for the 1988 entries have been
checked and besides some things brought up on GitHub they should be in
good order (for now?).
2023-10-18 09:35:12 -07:00
Cody Boone Ferguson 41427c64c3 Format/typo check 1988/spinellis 2023-10-18 09:27:50 -07:00
Cody Boone Ferguson fd18362f63 Format/typo check 1988/robison 2023-10-18 09:17:55 -07:00
Cody Boone Ferguson d3ef471ca0 Add missing <br> to 1988/reddy/README.md 2023-10-18 09:15:21 -07:00
Cody Boone Ferguson 044738aa3c Format/typo fix 1988/reddy + restore winner name
By some crazy chance the winner's name was not in the README.md file:
just a corporation (which has been removed along with the address). I
was able to locate it in the author/ subdirectory in the JSON file.

Format and typo checked the README.md and also added some things to try
to explore the entry more.
2023-10-18 09:12:56 -07:00
Cody Boone Ferguson b400fc22fb Improve slightly my fix to 1988/phillipps
As main() used K&R style I changed main() to use K&R. The function that
it became (to fix it), pain(), already has the same exact format of what
main() once was only named painfully. Since main() also had the function
on many lines, even just the return statement in the beginning, I did
this in main() but given that main() only calls pain() obviously this is
not perfect. This has been documented in the thanks file like for all
the other improvements, to keep track of it.

Format/typo check README.md.
2023-10-18 09:03:04 -07:00
Cody Boone Ferguson f5d658b9b6 Format/typo check 1988/applin
The README.md and the Makefile were both updated. The Makefile because
of typos/unclear things. The README.md had formatting fixes and also
added the historical note about 1988 from the Makefile as it's far less
likely people will see that note versus that which is in the README.md.
2023-10-18 08:49:22 -07:00
Cody Boone Ferguson 5b4847ce70 Update 1988/litmaath
Format and typo check the README.md file.

Improved the order of the alt code (displayed by the judges) and what
followed it (that might seem like it's related to the alt code when
although maybe true it still is about the entry itself).

Updated thanks file to refer to the alt code and removed myself from the
README.md (this before the far superior idea of a single file outside of
the entries existed and because some entries were missed, this one
included).
2023-10-18 08:42:36 -07:00
Cody Boone Ferguson 5832e2b656 Format/typo check 1988/isaak/README.md
Added a section with historical notes about the entry (that is I added
the section heading and put the respective text, some of which I
previously added, under it).

This file should be in good order except perhaps a pending issue of
formatting the alternate code/to build/try sections.
2023-10-18 08:34:22 -07:00
Cody Boone Ferguson 1248d962f4 Format/typo check 1988/dale
This includes the thanks-for-fixes.md file where C code was actually in
the form of a diff (which happened when I was looking for the
differences to put in the file in the first place, forgetting to remove
the [-+] at the time).
2023-10-18 08:23:52 -07:00
Cody Boone Ferguson 0942f4e6b2 Mass typo fix in Makefiles
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'
2023-10-16 10:35:34 -07:00
Cody Boone Ferguson ffdf581218 Mass typo fix in Makefiles
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'
2023-10-15 12:18:34 -07:00
Cody Boone Ferguson 73fc551f70 sgit -e 's/Un\*x/Unix/g' -e 's/UN\*X/UNIX/g' .
This is not only to help with formatting - especially important in
markdown files -  but it's no longer really necessary to do it. One
might not feel the need to do it in non-markdown files but I did it
anyway to be consistent. Thus instead of showing Un*x/UN*X it shows
Unix/UNIX.

A question of whether or not it should all be the same case is another
thing entirely but if this is desired at some point it should be easy to
do anyway - with some care in case it's in formatted text.

A note about the glob: why '.' when there are C files and other file
types where it could be dangerous to modify? Because I did a git grep
first so I knew that it was safe.
2023-10-11 05:16:15 -07:00
Cody Boone Ferguson 1d0ab826a3 Minor updates to 1988/isaak/README.md
The README.md pointed out that not having the file name being 'isaak.c'
(see the source code why) would cause a problem but this was fixed by
use of the '__FILE__' macro, prior my fix to the entry itself and so the
README.md now points out that this feature (some might say 'defect' or
'limitation') no longer exists.
2023-10-11 03:22:23 -07:00
Cody Boone Ferguson add7268842 Format fix 1980s and 1990s README.md files
I also updated the todo.md file as I left some things out that have to
be done. I only explicitly named one thing but when I go over them as a
final pass I will address the things in question (some will require
discussion).
2023-10-10 06:24:13 -07:00
Cody Boone Ferguson ef456bfb1e Mass typo fixes
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).
2023-10-07 04:35:47 -07:00
Cody Boone Ferguson c06a1b6e83 Typo fix and warning silence in 1988/applin
The rule zsmall.c comment suggested that applin rule (which is done via
the ${PROG} variable which is the value of ${ENTRY} which is how every
other entry Makefile is done) was below but actually it is above.

If ${CC} is clang then add to CSILENCE -Wno-gnu-line-marker. This
unfortunately means one has to either have by default CC as clang or
they have to specify e.g.:

    make clobber CC=clang everything

as CC tends to be just 'cc'.

The warning cannot be silenced with gcc and although it allows one to
use of -Wno-gnu-line-marker it has no effect other than to say it's
unrecognised because gcc (at least in some versions?) does not allow
this warning to be silenced, for whatever (invalid :-) ) reason(s). Thus
unless one explicitly says that CC=clang they will get the warning.

Still at least it's now silenced if one does indeed do CC=clang in the
compile line.
2023-10-07 03:48:48 -07:00
Cody Boone Ferguson b4e46066a5 1988/reddy - fgets() to remove annoying warnings
It redefines gets() to use fgets() so that the only change is an
additional #define macro.

Now the entry won't have an obnoxious warning at compiling, linking or
runtime (the most annoying kind).
2023-09-30 11:46:36 -07:00
Landon Curt Noll e28f1332b2 update 1988/isaak/README.md
Reference the original source of 1988/isaak.
2023-08-04 17:30:22 -07:00
Landon Curt Noll b93125dbe3 removed unused file from 1988/spinellis
The `1988/spinellis/spinellis.data` file was an artifact
from the old 1988 Makefile.  It is not mentioned in the
`1988/spinellis/README.md`, nor is it needed.
2023-08-04 17:10:49 -07:00
Cody Boone Ferguson 1d86daf19a Change LIBS to LDFLAGS in Makefiles
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.
2023-07-10 03:33:53 -07:00
Cody Boone Ferguson b6330673cc Restore silencing warnings in macOS
As besides the entries that are not supposed to compile/cannot compile
due to architectural limitations all the entries can compile in macOS
(though some do not work - yet(? I have plans to work on more later)) it
was not necessary to not silence the warnings after all as the entries
that don't work will be easy to identify ('they don't work' :-) ) so I
can just do make CSILENCE= all in the directory of those entries which
solves the problem I had originally thought of.

Some of the Makefiles have retained other changes I had to make
yesterday to get the entries to work with clang in linux but most of
them were either not changed or were made better with the rollback of
the commit that originally silenced warnings.

Now work on silencing warnings for linux can be done.
2023-07-08 05:05:50 -07:00
Cody Boone Ferguson d89305ef3b Mass .gitignore update for .orig.c files
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.
2023-07-08 04:39:42 -07:00
Landon Curt Noll 2aa99f0644 revert commit d8425bb767 2023-07-07 05:36:08 -07:00
Landon Curt Noll d8425bb767 silence warnings under macOS for cc, clang and gcc
Used the following script to check for warnings
not silenced via ${CSILENCE}:

```sh
find ???? -mindepth 1 -maxdepth 1 -type d | while read dir; do
(cd "$dir"; echo =-=-= "$dir" =-=-= ; csilence -v 1 clobber all ; echo ; csilence -v 1 clobber alt)
done 2>&1 | less
```
2023-07-07 01:11:22 -07:00
Landon Curt Noll 2ba12ecc3c restore *.orig.c to each entry
Under each yyyy/dir there is a file of the form '*.orig.c'
containing the original source code, or as close as we can
get to the original source code.
2023-07-06 21:49:38 -07:00
Landon Curt Noll f4f3a153ca fix 1988/applin clobber and .gitignore 2023-07-02 18:32:13 -07:00
Landon Curt Noll 95e41fa835 fix 1988/spinellis
Prevent the Makefile from hanging on stdin by
providing some sample input files and asking the
user to run the command themselves.
2023-07-02 18:23:59 -07:00
Cody Boone Ferguson 76cef25333 Fixes to thanks for fixes file
At least one entry was missing (1984/anonymous).

Some entries were removed. One such entry was not ever broken but
instead when I had renamed a file (to markdown) I forgot to update the
DATA variable in the Makefile which then broke compilation. This was
seen in the log and mistakenly believed that there was something wrong
with the entry when there wasn't. Other entries removed were not fixes
but notes.

Various README.md files have been updated for this sometimes just
formatting merely because I opened the file because for instance there
is an alternate version (many by me) that is referred to. I'd not be
surprised if more README.md files have to be updated for this much
better system but these will be found in time when I do another pass
(and some years I have not checked at all yet).
2023-07-01 09:49:26 -07:00
Cody Boone Ferguson cf0ad95c02 Improve my original fix to 1988/dale
This makes it closer to the original code than the earlier fix (which
works well enough but better to keep it as close to the original as
possible).
2023-07-01 04:28:14 -07:00
Cody Boone Ferguson 3500226a0c Fixes in thanks-for-fixes.md file
There were several fixes that needed to be made. Some were done and in
the process I discovered some fixed entries that really should be an
alternate version. That was not yet done but I have kept track of some
and will find the others - another time.

As there are more important things to do (like the jprint tool in the
mkiocccentry repo) and since I need a break I have decided to make a
pull request with the changes made.

Some README.md files had to be updated for this commit as well.
2023-06-09 03:59:07 -07:00
Cody Boone Ferguson a981cacbee Begin centralising thank yous to a single file
NOTE: this is just one way to fix the problem described below but it can
be modified - perhaps greatly changed - or rejected and done
differently. That being said it does isolate the entries that can be
modified except for the one by Simon Cooper as I had intended to do all
entries before a commit but I am too tired to continue and there are
more important things to be done for the IOCCC (hopefully later today).
I don't mind but I wanted to save Landon some of the work as I started
the problem even though all with good intention after Landon noted he
wanted to thank those in the README.md files.

First I would like to also apologise to any previous winners if there
was upset or concern; this was all done with the best intentions and I
know that it was a fine line but the judges' goal is to make it so
previous entries do work in modern systems so that everyone can enjoy
them. Still I am sorry if I caused any offence or anything else! I
actually agree with the situation and I had been wondering about how to
go about it too. Now for the rationale behind this update.

A couple previous winners have voiced concern about the way the thank
you notes are displayed in the README.md files I have started the work
to save Landon some of the trouble as although it was with good
intentions (and based on the note that Landon wanted to thank those who
fixed an entry) I started the problem so it seems only right that I help
rectify it. I also agree with the problem and had thought of it before,
even thinking that in some entries it needs not have any reference to
anyone but the winner! This commit has removed the thank you notes from
several entries and added a THANKS.md file.

The THANKS.md file has the rest of the entries that were fixed as well
which should if nothing else help isolate the entries that need to be
modified. Some entries actually referred to me but were not a thank you
note due to a fix; some were from winners themselves for instance.

Note that I did not update the bugs.md file or any other file that might
refer to these things in the README.md files. The bugs.md for instance
refers to adding credits to those who fix problems or provide missing
links or files to the respective README.md files and this will have to
change once the way this is done is finalised. But hopefully this is a
help to Landon so that he may also focus on the important jprint tool in
the mkiocccentry repo.
2023-06-06 04:50:41 -07:00
Cody Boone Ferguson b03cff1e87 Minor updates to 1988/dale
Reword a few things in README.md, add more commands to try (with some
questions)

Add INABIAF section. Added same to bugs.md and put note in Makefile
about it too: in linux the program appears to drop dump cores even
though there is no error (at least at command line?).
2023-06-03 04:41:23 -07:00
Cody Boone Ferguson 2ef3c9c39c Fix how 1988/applin/zsmall.c is built
To match the rest of the repository with alternate code (where possible)
the file is now applin.alt.c. However the rule in the Makefile copies
the file to zsmall.c and builds it accordingly, compiling into
applin.alt.

.gitignore has had applin.alt added to it.
2023-05-31 03:30:24 -07:00
Cody Boone Ferguson ac949a735d Fix 1988/litmaath/README.md + add alt code
There was no 'To build' or 'To run' section.

The alt code is that which the judges suggested to try and understand
the code a bit more. As it was fun output and it seems instructive I
decided to add it as an alt version.

Updated .gitignore.
2023-05-27 04:30:19 -07:00
Cody Boone Ferguson b55ecc55b3 Add dale.alt to 1988/dale/.gitignore 2023-05-21 02:19:24 -07:00
Cody Boone Ferguson e117f8a0ad Add alt code to 1988/dale - original version
This is because I feel it can be interesting to see side by side what
was once allowed in C with how it has to be today without having to
extract it from the archive.
2023-05-20 09:17:28 -07:00
Cody Boone Ferguson 65d79be6e8 Fix embarrassing typo in 1988/phillipps/README.md
... well embarrassing for me ...
2023-05-20 06:49:55 -07:00
Cody Boone Ferguson d235b565df Fix consistency of award titles
This was done quite easily with a bit of thought. I generated a script
that could be modified in vim if necessary (as it turned out to be
though some of it could have been generated too but I did not think of
everything at once and it is a hack).

This is how I generated it:

    echo '#!/bin/bash' > bin/check_awards.sh ; ( while read -r g ; do echo grep "$g"; done < <(sed -e 's,_,/,g' -e 's/"/\\"/g' tmp/year-auth-prize.csv | awk -F, '{print grep "\x22" $2 "\x22" " " $1 "/" "README.md"}' ); ) >> bin/check_awards.sh

Then I I modified the file (again this was a hack to make it easier and
quicker and better for being tired too) in vim to make the grep use -Hc
so I could pipe it to 'grep :0'. This found the files without the right
award. So the final command was:

    sh bin/check_awards.sh |grep :0

though I did have to edit some files several times.

For reference the script has been added to the repo too but with +x
permissions.

This change also required updating the CSV file in tmp/.
2023-05-13 07:02:07 -07:00
Landon Curt Noll 5927927e51 Add .id to all winning entries 2023-05-13 11:45:33 +10:00
Landon Curt Noll 9d0f9326aa Merge pull request #722 from xexyl/spinellis
Add mastodon link for Diomidis Spinellis
2023-05-13 11:41:09 +10:00
Landon Curt Noll 61081d7444 Merge pull request #721 from xexyl/1988-spinellis
Update 1988/spinellis/Makefile
2023-05-13 11:32:10 +10:00
Cody Boone Ferguson 104a8496e7 Add mastodon link for Diomidis Spinellis 2023-05-12 11:05:22 -07:00