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.
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