diff --git a/1995/garry/.gitignore b/1995/garry/.gitignore index 49349a9ab..114af9271 100644 --- a/1995/garry/.gitignore +++ b/1995/garry/.gitignore @@ -1 +1,2 @@ garry +garry.alt diff --git a/1995/garry/Makefile b/1995/garry/Makefile index 02c7ed5e1..be0af1e81 100644 --- a/1995/garry/Makefile +++ b/1995/garry/Makefile @@ -114,8 +114,8 @@ OBJ= ${PROG}.o DATA= TARGET= ${PROG} # -ALT_OBJ= -ALT_TARGET= +ALT_OBJ= ${PROG}.alt.o +ALT_TARGET= ${PROG}.alt ################# diff --git a/1995/garry/README.md b/1995/garry/README.md index b7f10648b..32d4a9e83 100644 --- a/1995/garry/README.md +++ b/1995/garry/README.md @@ -1,41 +1,61 @@ # Best Utility - Garry Glendown - G\"uldene Kammer 35 - 36251 Bad Hersfeld - Germany +Garry Glendown +Germany + ## To build: - make all +```sh +make all +``` + ## To run: - - ./garry output_file +```sh +./garry output_file +``` ## Try: - ./garry.test.sh +```sh - ./garry < README.md +./garry.test.sh -## Judges' remarks +./garry < README.md +``` -In general, try: +### Alternate code: - -While it may not have been the intention of the submitter, the +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.cpp` and judge for yourself! +[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: + 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: -This program is a file filter, designed to do environment-expansion and +This program is a file filter, designed to do environment-expansion and incorporating the ability to create binary from escaped data in the environment variables. diff --git a/1995/garry/garry.cpp b/1995/garry/garry.alt.c similarity index 94% rename from 1995/garry/garry.cpp rename to 1995/garry/garry.alt.c index c97098d53..84501c055 100644 --- a/1995/garry/garry.cpp +++ b/1995/garry/garry.alt.c @@ -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));}}} diff --git a/tmp/winners.csv b/tmp/winners.csv index 7ec5dd0c8..c37133f89 100644 --- a/tmp/winners.csv +++ b/tmp/winners.csv @@ -74,7 +74,7 @@ Ferenc Deak,Ferenc_Deak,null,null,null,null,null); Francois Boutines,Francois_Boutines,null,null,francois.boutines@gmail.com,Toulouse, France Frans van Dorsselaer,Frans van Dorsselaer,null,null,frans@biabv.com,null,null); Freek Wiedijk,Freek_Wiedijk,null,null,null,null,null); -Garry Glendown,Garry_Glendown,http://insider.regio.net/~garry,null,garry@insider.regio.net,null,null); +Garry Glendown,Garry_Glendown,https://web.archive.org/web/20011221120305/http://insider.regio.net/~garry/,null,garry@insider.regio.net,null,null); Gavin Barraclough,Gavin_Barraclough,null,null,gavin@barraclough.name,null,null); Gavin Buttimore,Gavin_Buttimore,null,null,gavin.buttimore@creaturelabs.com,null,null); Gil Dogon,Gil_Dogon,null,null,gil.jade@gmail.com,null,null);