Files
ioccc/1996/huffman
Landon Curt Noll f29b37e49a improve HTML menus, add social.html, prep for IOCCC28 winners
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.
2025-07-26 13:06:29 -07:00
..
2022-09-18 23:37:49 -07:00
2023-07-06 21:49:38 -07:00

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.