Files
ioccc/1987/wall
Landon Curt Noll c78bda6c0f update tarballs due to recent commits
The commit a1c86c8a7a modified
the navigation bars to include "Original C", so all tarballs
had be update, sorry (tm Canada 🇨🇦).  In particular:

The navigation bar for a winning entry now has a "_Original C_" link
(between the ✅ and the Inventory on the right hand side) so that one
may easily view the original C code that was submitted for IOCCC judging.

In addition, a number of other commits since that time
modified other winning entries.

Ran `make update` to perform the above.
2025-08-18 16:30:59 -07:00
..
2023-09-11 05:53:18 -07:00
2023-07-06 21:49:38 -07:00

To build:

    make all
    ```


## To use:

``` <!---sh-->
    ./wall
    # enter some numbers

    ./wall | some_command
    # enter some strings or numbers, depending on command

Try:

    ./try.sh

You may of course run the commands manually and enter text as you wish. For instance you might try one or both of:

    ./wall | bc

    ./wall | cat

and enter some input like:

    x*x
    2^x
    quit # for the cat version

which the script does through a pipeline except that here you can enter more text if you wish, line by line.

Judges' remarks:

What we found amazing was how the flow of control was transferred between subroutines. Careful inspection will show that the array of pointers to functions named vi refers to functions which seem to not be directly called. Even so, these pointers to functions are being used as an argument to signal(3) (used both with and without an arg - but how?). Can you determine why this is being done and how it is being exploited?

Some compilers complained about this file, so we changed: =++I to = ++I.

Author's remarks:

No remarks were provided by the author.