While not strictly necessary, replacing the two ASCII tab characters in the markdown copyright comment makes it easier to detect problematic TAB indentation within markdown files. After this commit, only 90 markdown files have leading ASCII TAB characters. And again, while not strictly necessary, we can consider running expand on those 90 markdown files to see what effect that might have on the HTML files they produce. Replace leading ASCII TAB characters with multiples of 8 ASCII SPACE characters (the default action of the `expand(1)` tool) might have an negative effect on some HTML formatting where **hack-a-round** formatting was attempted to fix broken indentation caused by problematic ASCII TAB characters. Think of this as a baseline for evaluating leading TAB characters within markdown files. TODO: Consider either using `expand(1)` to replace leading ASCII TAB characters with multiples of 8 ASCII SPACE characters AND/OR modifying the appropriate `bin` tool to convert leading ASCII TAB characters into multiples of 8 ASCII SPACE characters.
1.6 KiB
To build:
make
To use:
./prog < textfile > output.gif
Try:
To see the input files and feed them to the program, redirecting to GIF files:
./try.sh
Judges' remarks:
To get the best experience, use a GIF viewer that can handle animated GIFs.
With macOS you can use Safari using open -a Safari smily.gif.
Some things to consider are that this 2.5KiB gem encodes a 96 character 8x8 font (naively this could already take 6144 bytes) and a GIF encoder. But how does it know which characters are closed?
You should only give this program printable ASCII characters.
Unfortunately this won't run on your PDP8, if you had one, as it needs at least 2MiB of memory to run in.
Author's remarks:
This program generates an animated GIF from a plain text. Run:
cc -o prog prog.c
./prog < invisible.txt > invisible.gif
Open invisible.gif with a GIF viewer that can show animated GIFs and then wait
a minute. You will see a hidden message. Can you tell the difference between
letters that leave the mark and ones that do not?
Other examples:
./prog < golem.txt > golem.gif
./prog < smily.txt > smily.gif
The program itself has a hidden message.
./prog < prog.c > prog.gif