Rename garry.cpp to garry.alt.c and fix it
The reason I fixed it is indeed exactly as I said: I felt it has to work because of the layout; it does indeed look like what the judges noted - a rat dropping core. Now one can use make alt and use garry.alt for the same results. But why not garry.cpp? Because compilers will think it's C++ and besides that these types of files are meant to be called .alt.c. The formatted version provided by the author is still there of course.
This commit is contained in:
1 parent
dad330d671
commit
0de3145084
4 files changed
+27
-9
No files matched your search
@@ -1 +1,2 @@
|
|||||||
garry
|
garry
|
||||||
|
garry.alt
|
||||||
+2
-2
@@ -114,8 +114,8 @@ OBJ= ${PROG}.o
|
|||||||
DATA=
|
DATA=
|
||||||
TARGET= ${PROG}
|
TARGET= ${PROG}
|
||||||
#
|
#
|
||||||
ALT_OBJ=
|
ALT_OBJ= ${PROG}.alt.o
|
||||||
ALT_TARGET=
|
ALT_TARGET= ${PROG}.alt
|
||||||
|
|
||||||
|
|
||||||
#################
|
#################
|
||||||
|
|||||||
+23
-6
@@ -10,6 +10,7 @@ Germany
|
|||||||
make all
|
make all
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## To run:
|
## To run:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@@ -25,16 +26,32 @@ make all
|
|||||||
./garry < README.md
|
./garry < README.md
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Alternate code:
|
||||||
|
|
||||||
|
While it may not have been the intention of the author, the
|
||||||
|
judges noted that the C pre-processed version (with the `#include`s
|
||||||
|
left intact) looked very much like a rat "dropping core". See
|
||||||
|
[garry.alt.c](garry.alt.c) and judge for yourself!
|
||||||
|
|
||||||
|
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed it
|
||||||
|
so that it will compile with modern compilers. The problem was a missing `int` for
|
||||||
|
the `f` variable. He felt it was important that it works because the layout does
|
||||||
|
indeed look to him like a rat is dropping core. Thank you Cody!
|
||||||
|
|
||||||
|
To use try:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
make alt
|
||||||
|
```
|
||||||
|
|
||||||
|
Use `garry.alt` as you would `garry` above.
|
||||||
|
|
||||||
|
|
||||||
## Judges' remarks:
|
## Judges' remarks:
|
||||||
|
|
||||||
|
|
||||||
While it may not have been the intention of the submitter, the
|
|
||||||
judges noted that the C pre-processed version (with the `#include`s
|
|
||||||
left intact) looked very much like a rat "dropping core". See
|
|
||||||
`garry.cpp` and judge for yourself!
|
|
||||||
|
|
||||||
The author was kind enough to provide a less obfuscated version of
|
The author was kind enough to provide a less obfuscated version of
|
||||||
the source called `garry.fmt.c`.
|
the source called [garry.fmt.c](garry.fmt.c).
|
||||||
|
|
||||||
## Author's remarks:
|
## Author's remarks:
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
!c){return(y);}a=y;b=z;while(*a){if(*a!=D) *b++=*a
|
!c){return(y);}a=y;b=z;while(*a){if(*a!=D) *b++=*a
|
||||||
++;else{a++;c=strchr(a,D);if(c){*c=0;;if(strchr(a,32
|
++;else{a++;c=strchr(a,D);if(c){*c=0;;if(strchr(a,32
|
||||||
)){*c=D;*b++=D;}else{;v=getenv(a);if(v){while(*v){if(*
|
)){*c=D;*b++=D;}else{;v=getenv(a);if(v){while(*v){if(*
|
||||||
v!=92)*b++=*v++;else{f=0;v++;if(*v<48||*v>57
|
v!=92)*b++=*v++;else{int f=0;v++;if(*v<48||*v>57
|
||||||
)*b++=92;else{f=(*v++)-48;;if(*v<48||*v
|
)*b++=92;else{f=(*v++)-48;;if(*v<48||*v
|
||||||
>57)*b++=f;else{f=(f<<3)+(*v++)-48;;*b++=(
|
>57)*b++=f;else{f=(f<<3)+(*v++)-48;;*b++=(
|
||||||
(*v<48||*v>57)?f:((f<<3)+(*v++)-48));}}}
|
(*v<48||*v>57)?f:((f<<3)+(*v++)-48));}}}
|
||||||
Reference in new issue
Block a user