Files
ioccc/1985/sicherman
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
..
2024-07-19 00:18:41 -07:00
2024-03-11 09:09:21 -07:00

To build:

    make all

There is another version that can be compiled in case the first fails. See Alternate code below for more details on it.

To use:

    ./sicherman < file

    echo foo | ./sicherman

    ./sicherman
    # type or paste some text, making sure to hit enter after each line typed

Try:

    ./try.sh

Alternate code:

The sicherman.alt.c is a slight change in the fixed version (fixed so it does not require -traditional-cpp) in that it has two args to main() as some compilers object to certain number of args in main().

Alternate build:

    make alt

Alternate use:

    ./sicherman.alt < file

Alternate try:

    ./try.alt.sh

Judges' remarks:

This program abuses the C preprocessor so much that some cpps fail to strip out all of the comments on the first pass! If you were able to understand Dave Decot's entry in 1984, you will have a head start on this one.

Be sure to run this program through lint! If your lint works correctly, it should warn you that the argument 'Manual' isn't used. Like the program says, what's that mean?

Run the program without arguments and enter the letters 'a' through 'm' on a line. Now enter the letters 'n' through 'z'. But to borrow a quote from Richard Stallman: If you think you understand what this code does, then you don't, so read it again! Explain why:

    ./sicherman < sicherman.c | ./sicherman | diff - ./sicherman.c

results in diff reporting a difference on some machines.

Author's remarks:

No remarks were provided by the author.