move fix thanks a file, update top level html links, rename CONTRIBUTING.md
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.
This commit is contained in:
1 parent
23f7ac0a49
commit
ac41f07a83
92 files changed
+1326
-761
No files matched your search
+3
-14
@@ -6,6 +6,7 @@ University of Washington
|
||||
Mercer Island, WA 98040
|
||||
US
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
```sh
|
||||
@@ -13,20 +14,6 @@ make all
|
||||
```
|
||||
|
||||
|
||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) changed the location
|
||||
that it used `gets()` to be `fgets()` instead to make it safer and to prevent
|
||||
annoying warnings during compiling, linking or runtime (interspersed with the
|
||||
program's output). One might think that simply changing the gets() to fgets()
|
||||
(with stdin) would work but it did not because `fgets()` stores the newline and
|
||||
`gets()` does not. The code was relying on not having this newline. With
|
||||
`fgets()` the code `if(A(Y)) puts(Y);` ended up printing an extra line which
|
||||
made the generation of some files (like `adhead.c`) fail to compile (`gets()`
|
||||
does not store the newline but `fgets()` does). Why? There was a blank line
|
||||
after a `\` at the end of the first line of a macro definition! Thus the code
|
||||
now first trims off the last character of the buffer read to get the same
|
||||
correct functionality but in a safe way. Thank you Cody for your assistance!
|
||||
|
||||
|
||||
## Try:
|
||||
|
||||
```sh
|
||||
@@ -49,6 +36,7 @@ about regular expressions and state machines.
|
||||
|
||||
NOTE: Some compilers have had trouble optimizing this entry.
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
### ADrian's GREP (adgrep)
|
||||
@@ -259,6 +247,7 @@ introducing extra lines into one of the programs.
|
||||
The program will produce at least one warning and possible several
|
||||
when compiled depending on the compiler.
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
+5
-16
@@ -6,33 +6,20 @@ Arentikuja 1 D 305
|
||||
00410 Helsinki
|
||||
Finland
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
```sh
|
||||
make all
|
||||
```
|
||||
|
||||
|
||||
## To run:
|
||||
|
||||
```sh
|
||||
./ag word word2 word3 < /path/to/dictionary
|
||||
```
|
||||
|
||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) changed the buffer size
|
||||
in such a way that gets() should be safe (theoretically) as it comes from the
|
||||
command line (though it can also read input from stdin after starting the
|
||||
program). Ideally `fgets()` would be used but this is a more problematic.
|
||||
Previously it had a buffer size of 256 which could easily overflow. In this
|
||||
entry `gets()` is used in a more complicated way: first `m` is set to `*++p` in
|
||||
a for loop where `p` is argv. Later `m` is set to point to `h` which was of size
|
||||
\256. `gets()` is called as `m = gets(m)`) but trying to change it to use
|
||||
fgets() proved more a problem. Since the input must come from the command line
|
||||
Cody changed the buffer size to `ARG_MAX+1` which should be enough (again
|
||||
theoretically) especially since the command expects redirecting a dictionary
|
||||
file as part of the command line. This also makes it possible for longer strings
|
||||
to be read (in case the `gets()` was not used in a loop). Thank you Cody for
|
||||
your assistance!
|
||||
|
||||
|
||||
## Try:
|
||||
|
||||
@@ -59,7 +46,7 @@ Then using the proper dictionary:
|
||||
```
|
||||
|
||||
|
||||
## Judges' comment:
|
||||
## Judges' remarks:
|
||||
|
||||
Recently some newspapers printed amusing anagrams of one of the
|
||||
names listed above. Run this program to find the anagrams they
|
||||
@@ -74,6 +61,7 @@ cat README.md | ./mkdict.sh > words
|
||||
|
||||
Then try using the program as shown above with the file `words`.
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
The name of the game:
|
||||
@@ -266,6 +254,7 @@ algorithms are outlined in the rot-13 encoded spoiler below.
|
||||
bs gur jbeq zngpurq ol gung vaibpngvba, naq pbclvat gur punenpgref bs
|
||||
gur jbeq qverpgyl sebz fgnaqneq vachg gb fgnaqneq bhgchg.
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
+2
-15
@@ -20,20 +20,6 @@ compile. macOS users running Mountain Lion and later will need to download and
|
||||
install [XQuartz](https://www.xquartz.org) in order to compile and run this
|
||||
entry.
|
||||
|
||||
It was observed that on modern systems this goes much too quick. [Yusuke
|
||||
Endoh](/winners.html#Yusuke_Endoh) created a patch that calls `usleep()` but
|
||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) thought the value was
|
||||
too slow so he made it a macro in the Makefile `Z`, defaulting at 15000. You can
|
||||
reconfigure it like:
|
||||
|
||||
```sh
|
||||
make clobber Z=1000 all
|
||||
```
|
||||
|
||||
Yusuke also noted that there is a bug in the program where right after starting
|
||||
it moves towards the right but if you click the mouse it goes back. Thank you
|
||||
Yusuke!
|
||||
|
||||
|
||||
## Try:
|
||||
|
||||
@@ -48,8 +34,8 @@ Yusuke!
|
||||
|
||||
See also the author's remarks for other variations.
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
The type of entertainment depends on number of arguments
|
||||
you have with the program. :-)
|
||||
@@ -137,6 +123,7 @@ the better it is. The exit value of zero means you have won.
|
||||
The game has a cheat system, which can be found after examining the
|
||||
event loop at the end of program. It is not a bug, it's a feature!
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
+4
-11
@@ -6,29 +6,20 @@ P.O. Box 6176
|
||||
Mississippi State, MS 39762
|
||||
US
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
```sh
|
||||
make all
|
||||
```
|
||||
|
||||
|
||||
## To run:
|
||||
|
||||
```sh
|
||||
./runme.sh
|
||||
```
|
||||
|
||||
|
||||
[Yusuke Endoh](/winners.html#Yusuke_Endoh) supplied a patch which makes this
|
||||
work with gcc. Due to how it works (see Judges' remarks below) this will not
|
||||
work with clang. Thank you Yusuke!
|
||||
|
||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) made it use `fgets()`
|
||||
instead of `gets()` to prevent annoying warnings getting in the way and also
|
||||
added the `runme.sh` script to demonstrate it (using make was problematic). Cody
|
||||
notes that unfortunately this does not work with clang due to different compiler
|
||||
messages. Thank you Cody!
|
||||
|
||||
For the original entry see the [archive tarball](/archive/archive-1992.tar.bz2).
|
||||
|
||||
|
||||
@@ -38,12 +29,14 @@ The program uses error messages issued by the C Preprocessor to
|
||||
generate its message to the world. One program's error is another
|
||||
program's data!
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
This program is yet another "Hello World." program with a twist. The
|
||||
string Hello World has been encoded in the error messages the compiler
|
||||
generates when compiling the source.
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
@@ -7,6 +7,7 @@ St. Paul, MN 55104
|
||||
US
|
||||
<http://www.westley.org>
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
```sh
|
||||
@@ -14,13 +15,6 @@ make all
|
||||
```
|
||||
|
||||
|
||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this for clang by
|
||||
changing the third and fourth arg of main() to be ints inside main(); clang
|
||||
requires args 2 - 4 to be `char **`. He also fixed it so that the program would
|
||||
not segfault if not enough args were specified. He did the same for the
|
||||
alternative version (see below) provided by the author (the original can be seen
|
||||
in the author's remarks below). Thank you Cody for your assistance!
|
||||
|
||||
## To run:
|
||||
|
||||
If lost:
|
||||
@@ -69,6 +63,7 @@ To find the approximate place where this entry was judged, type:
|
||||
./whereami 37 -122 (- means west of meridian)
|
||||
```
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
Run the program with your latitude & longitude as integer
|
||||
@@ -159,6 +154,7 @@ joined together as one 160-character line and listed. You should see:
|
||||
|
||||
...going down the left edge if your terminal auto-wraps at 80 characters.
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
Reference in new issue
Block a user