Prepare for the winners of **IOCCC28**. > However these are not the 2024 droids you are looking for. :-) The HTML menu (both JavaScript and non-JavaScript) has been updated. The `Status -> Rules and guidelines' have been replaced with two separate menus `Status -> IOCCC rules` and `Status -> IOCCC guidelines`. Added a new top level `social.html` page: built from a new `social.md`. Sorted rules for building specific web pages in the top level `Makefile`. Added `make social` to make the `social.html` page from `social.md`. The `bin/gen-top-html.sh` now is able to process a argument of **social** to process the new top level `social.html` page. Changed `bin/gen-top-html.sh` VERSION from "2.0.0 2025-03-13" to "2.0.1 2025-07-25". Below `About -> Home page` a new `About -> IOCCC social media` menu item as added. Because the menu change touched every HTML file, we changed the general copyright date range for HTML files from "1984-2024" to "1984-2025" due to the extensive changes made for **IOCCC28**. Those markdown files that were modified in 2025 had their copyright date range also changed from "1984-2024" to "1984-2025". Rebuilt tarballs and sitemap due to the extensive HTML rebuilding. Ran `make update` to perform the above.
To build:
make all
Bugs and (Mis)features:
The current status of this entry is:
STATUS: uses gets() - change to fgets() if possible
For more detailed information see 1996/huffman in bugs.html.
To use:
echo 'Huffman Decoding' | ./huffman
Try:
./try.sh
Judges' remarks:
If you are still confused, check out the source and it will be clear as mud!
And for a misleading hint, consider who won! :-)
NOTICE to those who wish for a greater challenge:
If you want a greater challenge, don't read any further: just try to understand the program without running the command below.
If you get stuck, come back and run the following command:
./huffman < huffman.c 2>/dev/null
This entry was very well received at the IOCCC BOF.
Author's remarks:
This filter program is really not obfuscated code. It compiles cleanly with an ANSI C compiler and comes with user documentation that even a blind person could read.
The program is a bidirectional filter with the output of the program suitable for its input. The output of this program, when used as input, undoes the original program filtering.
This program accepts any alphanumeric text that has lines less than 100 characters. The user is encouraged to use the program's source as input to the executable.
This program is best appreciated on a tactile monitor.