Merge pull request #836 from xexyl/1992-westley
Change INABIAF status in 1992/westley
This commit is contained in:
5 files changed
+50
-23
No files matched your search
@@ -42,9 +42,9 @@ show correctly!
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### Alternative code:
|
### Alternate code:
|
||||||
|
|
||||||
The author provided a version for the US. To build:
|
The author provided a version for the US which we added. To build:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
make alt
|
make alt
|
||||||
@@ -54,6 +54,13 @@ Use `westley.alt` as you would `whereami` above.
|
|||||||
|
|
||||||
NOTE: this alternative version also needs a terminal that wraps at 80 columns.
|
NOTE: this alternative version also needs a terminal that wraps at 80 columns.
|
||||||
|
|
||||||
|
### INABIAF - it's not a bug it's a feature! :-)
|
||||||
|
|
||||||
|
This program and the alternate version will very likely crash or
|
||||||
|
[nuke](https://en.wikipedia.org/wiki/Nuclear_weapon) the [entire
|
||||||
|
world](https://en.wikipedia.org/wiki/Earth) or just the
|
||||||
|
[USA](https://en.wikipedia.org/wiki/United_States), respectively, without enough
|
||||||
|
args. This should not be fixed.
|
||||||
|
|
||||||
## Judges' remarks:
|
## Judges' remarks:
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
main(l,a,n,d)char**a,**n,**d;{int N=n,D=d;if(l>2){for(D=atoi(a[1])/2*80-atoi(a[2])-2043;
|
main(l,a,n,d)char**a,**n,**d;{int N=n,D=d;for(D=atoi(a[1])/2*80-atoi(a[2])-2043;
|
||||||
N="bnaBCOCXdBBHGYdAP[A M E R I C A].AqandkmavX|ELC}BOCd"
|
N="bnaBCOCXdBBHGYdAP[A M E R I C A].AqandkmavX|ELC}BOCd"
|
||||||
[l++-3];)for(;N-->64;)putchar(!D+++33^l&1);}}
|
[l++-3];)for(;N-->64;)putchar(!D+++33^l&1);}
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
main(l
|
main(l
|
||||||
,a)char**a;{int n;int d;
|
,a)char**a;{int n;int
|
||||||
if (l>2)for(d=atoi(a[1])/10
|
d;for(d=atoi(a[1])/10*80-
|
||||||
*80-atoi(a[2])/5-596;n="@NKA\
|
atoi(a[2])/5-596;n="@NKA\
|
||||||
CLCCGZAAQBEAADAFaISADJABBA^\
|
CLCCGZAAQBEAADAFaISADJABBA^\
|
||||||
SNLGAQABDAXIMBAACTBATAHDBAN\
|
SNLGAQABDAXIMBAACTBATAHDBAN\
|
||||||
ZcEMMCCCCAAhEIJFAEAAABAfHJE\
|
ZcEMMCCCCAAhEIJFAEAAABAfHJE\
|
||||||
|
|||||||
@@ -676,6 +676,14 @@ work but it only works with gcc. Unfortunately due to the way the entry works
|
|||||||
and the fact that other compilers like clang have different warnings and errors
|
and the fact that other compilers like clang have different warnings and errors
|
||||||
this simply does not work with them. Can you help us?
|
this simply does not work with them. Can you help us?
|
||||||
|
|
||||||
|
## [1992/westley](1992/westley/westley.c) ([README.md](1992/westley/README.md))
|
||||||
|
## STATUS: INABIAF - please **DO NOT** fix
|
||||||
|
|
||||||
|
This program and the alternate version will very likely crash or
|
||||||
|
[nuke](https://en.wikipedia.org/wiki/Nuclear_weapon) the [entire
|
||||||
|
world](https://en.wikipedia.org/wiki/Earth) or just the
|
||||||
|
[USA](https://en.wikipedia.org/wiki/United_States), respectively, without enough
|
||||||
|
args. This should not be fixed.
|
||||||
|
|
||||||
# 1993
|
# 1993
|
||||||
|
|
||||||
@@ -707,9 +715,10 @@ else. This should NOT be fixed.
|
|||||||
|
|
||||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this to compile
|
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this to compile
|
||||||
with modern systems (see the README.md file for what had to change) but the
|
with modern systems (see the README.md file for what had to change) but the
|
||||||
entry also used `gets()`. This could overflow long lines. Cody changed it to
|
entry also used `gets()` which in some systems would print out a warning along
|
||||||
`fgets()` but this introduces another problem namely that newlines can be
|
with the output of the program. Naturally it could also overflow long lines.
|
||||||
printed if the line length < 231.
|
Cody changed it to `fgets()` to prevent the display problem but this introduces
|
||||||
|
another problem namely that newlines can be printed if the line length < 231.
|
||||||
|
|
||||||
This seems like a worthy compromise but it would be ideal for it to never print
|
This seems like a worthy compromise but it would be ideal for it to never print
|
||||||
a newline unless that's the line itself (a blank line).
|
a newline unless that's the line itself (a blank line).
|
||||||
@@ -811,15 +820,27 @@ We would be grateful if you could provide it to us. If you can provide this
|
|||||||
file you might consider removing this entry from this file as well but if not
|
file you might consider removing this entry from this file as well but if not
|
||||||
we'll take care of it.
|
we'll take care of it.
|
||||||
|
|
||||||
### Important reminder to fix the `-1` value check for `getc()`:
|
### Important reminder and a note about the `-1` value check for `getc()`:
|
||||||
|
|
||||||
|
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed the code to not
|
||||||
|
use `-1` for the return value of `getc()`; this is important because `EOF` is
|
||||||
|
**NOT** guaranteed to be `-1` but rather any negative value. On systems where
|
||||||
|
`EOF != -1` the program would enter an infinite loop until the program crashed,
|
||||||
|
by chance reads a `-1` or was killed (it is for this same reason that one should
|
||||||
|
not use `EOF` for the `getopt()` functions as they return `-1` when all options
|
||||||
|
are parsed (for details on the definition of `EOF` see `7.21
|
||||||
|
Input/output<stdio.h>` subsection 1 of the standard)).
|
||||||
|
|
||||||
|
|
||||||
|
An interesting problem occurred where changing the `-1` to `EOF` caused both
|
||||||
|
`warning: illegal character encoding in string literal` and `error: source file
|
||||||
|
is not valid UTF-8`. But since `EOF` is simply an int < 0 and making the loop
|
||||||
|
condition check that the return value is >= 0 does not cause a compilation error
|
||||||
|
and it functions correctly it will address the systems where `EOF != -1` just as
|
||||||
|
if it checked for `!= EOF`.
|
||||||
|
|
||||||
|
Since it works there is no need to fix this except for a challenge to yourself.
|
||||||
|
|
||||||
Cody wants to remind you that he fixed the code to not use `-1` for the return
|
|
||||||
value of `getc()`; this is important because `EOF` is **NOT** guaranteed to be
|
|
||||||
`-1` but rather any negative value. On systems where `EOF != -1` the program
|
|
||||||
would enter an infinite loop until the program crashed, by chance reads a `-1`
|
|
||||||
or was killed. See the README.md for more details. If you don't feel comfortable
|
|
||||||
changing it to `EOF` Cody will happily do it for you but otherwise go right
|
|
||||||
ahead. We'll credit you in the [thanks file](thanks-for-fixes.md) regardless.
|
|
||||||
|
|
||||||
# 1995
|
# 1995
|
||||||
|
|
||||||
|
|||||||
+4
-5
@@ -452,11 +452,10 @@ clang due to different compiler messages.
|
|||||||
|
|
||||||
## [1992/westley](1992/westley/westley.c) ([README.md](1992/westley/README.md]))
|
## [1992/westley](1992/westley/westley.c) ([README.md](1992/westley/README.md]))
|
||||||
|
|
||||||
Cody fixed this for clang by changing the third and fourth arg of `main()` to be
|
Cody fixed this to work for clang by changing the third and fourth arg of
|
||||||
ints inside `main()`; clang requires args 2 - 4 to be `char **`. He also fixed
|
`main()` to be ints inside `main()`; clang requires args 2 - 4 to be `char **`.
|
||||||
it so that the program would not segfault if not enough args were specified. He
|
He also added the alternate version that the author gave in the remarks that is
|
||||||
did the same for the alternative version (see below) provided by the author (the
|
specifically for the USA rather than the world.
|
||||||
original can be seen in the author's remarks below).
|
|
||||||
|
|
||||||
|
|
||||||
## [1993/jonth](1993/jonth/jonth.c) ([README.md](1993/jonth/README.md]))
|
## [1993/jonth](1993/jonth/jonth.c) ([README.md](1993/jonth/README.md]))
|
||||||
|
|||||||
Reference in new issue
Block a user