IOCCC image by Matt Zucker

The International Obfuscated C Code Contest

1995/garry - Best Utility

← esde ↑ 1995 ↑ heathbar → C code Makefile Inventory





Author:

To build:

make all

To use:

./garry <input_file >output_file

Try:

./try.sh

Alternate code:

While it may not have been the intention of the author, the judges noted that the C pre-processed version (with the #includes left intact) looked very much like a rat “dropping core”. See garry.alt.c and judge for yourself!

Alternate build:

make alt

Alternate use:

./garry.alt <input_file >output_file

Alternate try:

./try.alt.sh

Judges’ remarks:

The author was kind enough to provide a less obfuscated version of the source called garry.fmt.c.

Author’s remarks:

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.

The calling syntax is pretty simple, just use it with stdio-redirection or inside pipelines, e.g.:

./garry <file_to_convert >converted_file

or

cat all_my_files/* | ./garry | lp

The syntax of the conversion of the input file is as follows: To include the value of an environment variable in the output file, place the name of the variable between $-signs in the input, e.g.:

My Home-Directory is: $HOME$
I'm using the path: $PATH$

Unknown Env-variables or malformed expressions are ignored and kept intact.

Additionally, the filter replaces escaped octal values in the environment variables by their binary representation, e.g.:

$ TEST="\110\145\154\154\157"
$ export TEST
$ echo '$TEST$' | ./garry
Hello

Inventory for 1995/garry

Jump to top

Primary files

Secondary files