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:
Cody Boone Ferguson committed 2023-04-11 14:00:16 -07:00
1 parent dad330d671
commit 0de3145084
4 files changed
+27 -9

No files matched your search

+1
View File
@@ -1 +1,2 @@
garry
garry.alt
+2 -2
View File
@@ -114,8 +114,8 @@ OBJ= ${PROG}.o
DATA=
TARGET= ${PROG}
#
ALT_OBJ=
ALT_TARGET=
ALT_OBJ= ${PROG}.alt.o
ALT_TARGET= ${PROG}.alt
#################
+23 -6
View File
@@ -10,6 +10,7 @@ Germany
make all
```
## To run:
```sh
@@ -25,16 +26,32 @@ make all
./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:
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 source called `garry.fmt.c`.
the source called [garry.fmt.c](garry.fmt.c).
## Author's remarks:
@@ -16,7 +16,7 @@
!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
)){*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
>57)*b++=f;else{f=(f<<3)+(*v++)-48;;*b++=(
(*v<48||*v>57)?f:((f<<3)+(*v++)-48));}}}