Files
ioccc/1995/garry
Landon Curt Noll 96e0f2b966 move some rules into 1337.mk
A number of rules have been moved from entry `Makefile`s into the
`1337.mk` include file to make it easier for these common rules to be
updated or modified globally (by modifying the `1337.mk` include file).

The entry level `Makefile`s are now similar in form to the
/Makefile.example](https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example)
file from the other repo.

The following make rules were moved into the `1337.mk` include file:

- `make indent.c`
- `make install`
- `make diff_orig_prog`
- `make diff_prog_orig`
- `make diff_alt_prog`
- `make diff_prog_alt`

This simplifies the entry level `Makefile`s so that they mostly reflect
the specifics of the particular entry.

Mentioned in FAQ 4.2, that the make diff rules are in the `1337.mk` include file.

Fixed invalid TAB character in `faq.md`.

Removed `make clean` directives that removed `indent.c`.  This file is now
removed via `make indent_clean`, a clean rule that also removes `indent.c`.

Removed `make clobber` directives that removed sandwich,  This file is now
removed via `make indent_clobber`, a clean rule that also removes `sandwich`.

Added `make indent_clean` and `make indent_clobber` rules into the top level
`Makefile` and the year level `YYYY/Makefile`.

Performed `make quick_www` to accomplish the above and to test under macOS.
2024-08-21 23:42:28 -07:00
..
2022-09-18 23:37:49 -07:00
2024-01-18 10:51:10 -08:00
2023-07-06 21:49:38 -07:00
2024-08-21 23:42:28 -07:00
2024-03-11 09:09:21 -07:00

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