force use of pandoc version >= 3.1.12.2

The `bin/pandoc-wrapper.sh` tool will verify that the ssytem
has a recent enough version of `pandoc(1)`.

We explain why we insist on `pandoc(1)`. version >= 3.1.12.2
in comments where the $PANDOC_MIN_VERSION is set.

Added `--wrap=preserve` as a default argument to `pandoc(1)`.
While this change will impact every HTML file generated,
we believe this will improve the ability of someone to look
at the generated HTML and correlate with the original markdown.

Changed `bin/pandoc-wrapper.sh` VERSION from "1.4.2 2024-03-17"
to "1.4.3 2024-03-18".

Performed `make www` to achieve all of the above and to generate
HTML using the new  `--wrap=preserve` `pandoc(1)` mode.
This commit is contained in:
Landon Curt Noll committed 2024-03-18 01:26:39 -07:00
1 parent 9eb7a54e9f
commit b0b212acb1
402 files changed
+37061 -55132

No files matched your search

+25 -46
View File
@@ -130,8 +130,8 @@
<h2 id="author"><a name="author"></a>Author:</h2>
<ul>
<li>Name: <a href="../../authors.html#Mark_Biggar">Mark Biggar</a><br>
Location: <a href="../../location.html#ZZ">ZZ</a> - <em>Unknown
location</em> <br><br></li>
Location: <a href="../../location.html#ZZ">ZZ</a> - <em>Unknown location</em>
<br><br></li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
@@ -148,72 +148,51 @@ location</em> <br><br></li>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>By changing the compile line you can make this program do anything
you want. This is a very efficient way to transfer source, though it
<p>By changing the compile line you can make this program do anything you
want. This is a very efficient way to transfer source, though it
increases the size of Makefiles.</p>
<p>With only slight variations, this program can be set to many uses.
Consider how easy it would be to release <code>Unix</code> source in
this form; so what if the Makefiles grow a little! :-)</p>
Consider how easy it would be to release <code>Unix</code> source in this form;
so what if the Makefiles grow a little! :-)</p>
<p>One vendor’s lint got hung in an infinite loop over this entry!</p>
<p>FYI: We will let Mark get away with this truly sick entry this time,
but for the future on we have placed a limit on the size of a compile
line.</p>
<p>NOTE: originally we made a comment in <a
href="../../authors.html#Larry_Wall">Larry Wall</a>’s <a
href="../wall/index.html">1987/wall</a> entry regarding Mark’s
contribution but it seems to have been lost in time. If anyone knows
about its whereabouts we’d appreciate letting us know. Thanks!</p>
<p>FYI: We will let Mark get away with this truly sick entry this time, but
for the future on we have placed a limit on the size of a compile line.</p>
<p>NOTE: originally we made a comment in <a href="../../authors.html#Larry_Wall">Larry Wall</a>’s
<a href="../wall/index.html">1987/wall</a> entry regarding Mark’s contribution but it seems to have
been lost in time. If anyone knows about its whereabouts we’d appreciate letting
us know. Thanks!</p>
<p>Passes BSD and UTS lint. At least one version of lint is thrown into
an infinite loop by this entry.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>No remarks were provided by the author.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
Reserved. You are free to share and adapt this file under the terms of
this license:</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
<h1 id="inventory-for-1987biggar"><a name="inventory"></a>Inventory for
1987/biggar</h1>
<h1 id="inventory-for-1987biggar"><a name="inventory"></a>Inventory for 1987/biggar</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/biggar.c">biggar.c</a>
- entry source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/Makefile">Makefile</a>
- entry Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/biggar.orig.c">biggar.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/try.sh">try.sh</a>
- how to run</li>
<li><a href="1987_biggar.tar.bz2">1987_biggar.tar.bz2</a> - download
entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/biggar.c">biggar.c</a> - entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/biggar.orig.c">biggar.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/try.sh">try.sh</a> - how to run</li>
<li><a href="1987_biggar.tar.bz2">1987_biggar.tar.bz2</a> - download entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/.entry.json">.entry.json</a>
- description of entry in JSON</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/.gitignore">.gitignore</a>
- list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/.entry.json">.entry.json</a> - description of entry in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href=".path">.path</a> - directory path from top directory</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/README.md">README.md</a>
- markdown source for index.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/biggar/README.md">README.md</a> - markdown source for index.html</li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
+23 -45
View File
@@ -129,9 +129,9 @@
<h2 id="author"><a name="author"></a>Author:</h2>
<ul>
<li>Name: <a href="../../authors.html#Paul_Heckbert">Paul
Heckbert</a><br> Location: <a href="../../location.html#US">US</a> -
<em>United States of America</em> (<em>United States</em>) <br><br></li>
<li>Name: <a href="../../authors.html#Paul_Heckbert">Paul Heckbert</a><br>
Location: <a href="../../location.html#US">US</a> - <em>United States of America</em> (<em>United States</em>)
<br><br></li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
@@ -141,75 +141,53 @@ Heckbert</a><br> Location: <a href="../../location.html#US">US</a> -
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> all</span></code></pre></div>
<p>On System V systems, we had to compile with
<code>-Dindex=strchr</code>. To compile on a 16 bit machine, change
300000 to 30000.</p>
<p>On System V systems, we had to compile with <code>-Dindex=strchr</code>.
To compile on a 16 bit machine, change 300000 to 30000.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./heckbert</span> col <span class="op">&lt;</span> file</span></code></pre></div>
<p>where col is the number of columns to fold at and file is the file to
fold.</p>
<p>where col is the number of columns to fold at and file is the file to fold.</p>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Folding at the wrong length may be equivalent to a “Spindle or
Mutilate” operation. For example:</p>
<p>Folding at the wrong length may be equivalent to a “Spindle or Mutilate” operation. For example:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./heckbert</span> 40 <span class="op">&lt;</span> heckbert.c <span class="op">&gt;</span> ph.c <span class="kw">;</span> <span class="fu">make</span> ph <span class="kw">;</span> <span class="ex">./ph</span> 20 <span class="op">&lt;</span> heckbert.c <span class="op">&gt;</span> bar.c <span class="kw">;</span> <span class="fu">make</span> bar</span></code></pre></div>
<p>Try not to <a
href="https://repository.library.brown.edu/studio/item/bdr:788264/PDF/">Fold,
Spindle or Mutilate</a> files. :-)</p>
<p>Try not to
<a href="https://repository.library.brown.edu/studio/item/bdr:788264/PDF/">Fold, Spindle or Mutilate</a>
files. :-)</p>
<p>The judges used this program to fold up<br />
very long lines which the BSD fold(1)<br />
was unable to process. This program has<br />
been added to the contest tool chest.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>No remarks were provided by the author.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
Reserved. You are free to share and adapt this file under the terms of
this license:</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
<h1 id="inventory-for-1987heckbert"><a name="inventory"></a>Inventory
for 1987/heckbert</h1>
<h1 id="inventory-for-1987heckbert"><a name="inventory"></a>Inventory for 1987/heckbert</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/heckbert.c">heckbert.c</a>
- entry source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/Makefile">Makefile</a>
- entry Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/heckbert.orig.c">heckbert.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/try.sh">try.sh</a>
- how to run</li>
<li><a href="1987_heckbert.tar.bz2">1987_heckbert.tar.bz2</a> - download
entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/heckbert.c">heckbert.c</a> - entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/heckbert.orig.c">heckbert.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/try.sh">try.sh</a> - how to run</li>
<li><a href="1987_heckbert.tar.bz2">1987_heckbert.tar.bz2</a> - download entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/.entry.json">.entry.json</a>
- description of entry in JSON</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/.gitignore">.gitignore</a>
- list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/.entry.json">.entry.json</a> - description of entry in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href=".path">.path</a> - directory path from top directory</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/README.md">README.md</a>
- markdown source for index.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/heckbert/README.md">README.md</a> - markdown source for index.html</li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
+23 -48
View File
@@ -129,9 +129,9 @@
<h2 id="author"><a name="author"></a>Author:</h2>
<ul>
<li>Name: <a href="../../authors.html#Spencer_Hines">Spencer
Hines</a><br> Location: <a href="../../location.html#ZZ">ZZ</a> -
<em>Unknown location</em> <br><br></li>
<li>Name: <a href="../../authors.html#Spencer_Hines">Spencer Hines</a><br>
Location: <a href="../../location.html#ZZ">ZZ</a> - <em>Unknown location</em>
<br><br></li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
@@ -147,69 +147,44 @@ Hines</a><br> Location: <a href="../../location.html#ZZ">ZZ</a> -
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This program was designed to maximize the bother function for
structured programmers. This program takes <code>goto</code> statements
to their logical conclusion. The layout and choice of names are
classic.</p>
structured programmers. This program takes <code>goto</code> statements to their
logical conclusion. The layout and choice of names are classic.</p>
<p>We consider this to be a beautiful counter-example for Frank Rubin’s
letter to ACM form titled: <em><a
href="https://web.archive.org/web/20090320002214/http://www.ecn.purdue.edu/ParaMount/papers/rubin87goto.pdf">“‘GOTO
Considered Harmful’ Considered Harmful”</a></em>. See the Communications
of the ACM, March 1987, Page 195-196.</p>
letter to ACM form titled: <em><a href="https://web.archive.org/web/20090320002214/http://www.ecn.purdue.edu/ParaMount/papers/rubin87goto.pdf">“‘GOTO Considered Harmful’ Considered
Harmful”</a></em>.
See the Communications of the ACM, March 1987, Page 195-196.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>No remarks were provided by the author.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
Reserved. You are free to share and adapt this file under the terms of
this license:</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
<h1 id="inventory-for-1987hines"><a name="inventory"></a>Inventory for
1987/hines</h1>
<h1 id="inventory-for-1987hines"><a name="inventory"></a>Inventory for 1987/hines</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/hines.c">hines.c</a>
- entry source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/Makefile">Makefile</a>
- entry Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/hines.orig.c">hines.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/goto.c">goto.c</a>
- sample source full of goto statements</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/goto.txt">goto.txt</a>
- a file to goto and see</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/try.sh">try.sh</a>
- how to run</li>
<li><a href="1987_hines.tar.bz2">1987_hines.tar.bz2</a> - download entry
source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/hines.c">hines.c</a> - entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/hines.orig.c">hines.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/goto.c">goto.c</a> - sample source full of goto statements</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/goto.txt">goto.txt</a> - a file to goto and see</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/try.sh">try.sh</a> - how to run</li>
<li><a href="1987_hines.tar.bz2">1987_hines.tar.bz2</a> - download entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/.entry.json">.entry.json</a>
- description of entry in JSON</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/.gitignore">.gitignore</a>
- list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/.entry.json">.entry.json</a> - description of entry in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href=".path">.path</a> - directory path from top directory</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/README.md">README.md</a>
- markdown source for index.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/hines/README.md">README.md</a> - markdown source for index.html</li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
+34 -50
View File
@@ -123,68 +123,52 @@
<!-- END: this line ends content from: inc/before-content.default.html -->
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h1 id="fourth-international-obfuscated-c-code-contest">Fourth
International Obfuscated C Code Contest</h1>
<p>View the <code>index.html</code> web page for the given winning entry
for information on how compile it and how to run the winning program.
Look at the winning source and try to figure how it does what it does!
You may then wish to look at the Author’s remarks for even more
details.</p>
<p>The <a href="rules.txt">rules for 1997</a> suggested even more
categories than in 1986. Hints for what to do and not to do were also
given in the <a href="rules.txt">rules</a>. For example, a simple
excessive abuse of <code>/lib/cpp</code> was discouraged unless the
abuse was unusual. The mailboxes for the contest were moved from nsc to
amdahl. The practice of posting a preliminary set of rules for the next
year was started this year.</p>
<p><a href="rules.txt">Rules</a> and results were posted to comp.lang.c
and comp.unix.wizards with an announcement in news.announce.important.
<a
href="https://www.vintage-computer.com/publications.php?microsystemsjournal">Micro/Systems
Journal</a> published the 1987 winning entries. <a
href="https://www.amazon.com/stores/Mark-R.-Horton/author/B001HPGRB8">Mark
R. Horton</a> included a version of the <a
href="../years.html#1987">1987 winning entries</a> in an appendix of his
C book <a
href="https://www.amazon.com/Portable-Software-Mark-R-Horton/dp/0138680507">Portable
C Software International Edition</a>. The first announcement of winning
entries at the Summer 87 USENIX was helped by a small fly that danced
all over the foils.</p>
<h1 id="fourth-international-obfuscated-c-code-contest">Fourth International Obfuscated C Code Contest</h1>
<p>View the <code>index.html</code> web page for the given winning entry for information on how
compile it and how to run the winning program. Look at the winning source and
try to figure how it does what it does! You may then wish to look at the
Author’s remarks for even more details.</p>
<p>The <a href="rules.txt">rules for 1997</a> suggested even more categories than in 1986.
Hints for what to do and not to do were also given in the <a href="rules.txt">rules</a>.
For example, a simple excessive abuse of <code>/lib/cpp</code> was discouraged unless the
abuse was unusual. The mailboxes for the contest were moved from nsc to amdahl.
The practice of posting a preliminary set of rules for the next year was started
this year.</p>
<p><a href="rules.txt">Rules</a> and results were posted to comp.lang.c and comp.unix.wizards
with an announcement in news.announce.important.
<a href="https://www.vintage-computer.com/publications.php?microsystemsjournal">Micro/Systems Journal</a>
published the 1987 winning entries. <a href="https://www.amazon.com/stores/Mark-R.-Horton/author/B001HPGRB8">Mark R.
Horton</a> included
a version of the <a href="../years.html#1987">1987 winning entries</a> in an appendix of his C book
<a href="https://www.amazon.com/Portable-Software-Mark-R-Horton/dp/0138680507">Portable C Software International
Edition</a>.
The first announcement of winning entries at the Summer 87 USENIX was helped by a small
fly that danced all over the foils.</p>
<h2 id="final-comments">Final Comments</h2>
<p><strong>IMPORTANT NOTE</strong>: See <a
href="../contact.html">contact.html</a> for up to date contact details
as well as details on how to provide fixes to any of the entries. See
also <a href="../faq.html">the IOCCC FAQ</a> for addition information on
the IOCCC.</p>
<p><strong>IMPORTANT NOTE</strong>: See <a href="../contact.html">contact.html</a> for up to date contact details
as well as details on how to provide fixes to any of the entries.
See also <a href="../faq.html">the IOCCC FAQ</a> for addition information on the IOCCC.</p>
<h1 id="copyright-and-license">Copyright and License</h1>
<p>Copyright (c) 1987,2023, Landon Curt Noll and Larry Bassel. All
Rights Reserved. This work is licensed under a <a
href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons
CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a> license.
If you do use this work in some form, the <a href="../judges.html">IOCCC
judges</a> would appreciate (but does not require) if you were to <a
href="../contact.html">send us a note about your use</a>.</p>
<p>Copyright (c) 1987,2023, Landon Curt Noll and Larry Bassel. All Rights Reserved.
This work is licensed under a <a href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons CC BY-SA 4.0 DEED Attribution-ShareAlike
4.0 International</a> license.
If you do use this work in some form, the <a href="../judges.html">IOCCC judges</a> would appreciate
(but does not require) if you were to <a href="../contact.html">send us a note about your use</a>.</p>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-year-index.sh via bin/md2html.sh -->
<!-- START: this line starts content generated by: bin/output-year-index.sh -->
<h1
id="winning-entries-of-1987---the-4th-ioccc"><a name=inventory></a><a name=1987></a>Winning
Entries of 1987 - The 4th IOCCC</h1>
<p><strong>Download IOCCC</strong> <a
href="1987/ioccc.1987.tar.bz2">1987 entry source</a></p>
<h1 id="winning-entries-of-1987---the-4th-ioccc"><a name=inventory></a><a name=1987></a>Winning Entries of 1987 - The 4th IOCCC</h1>
<p><strong>Download IOCCC</strong> <a href="1987/ioccc.1987.tar.bz2">1987 entry source</a></p>
<ul>
<li><a href="biggar/index.html">1987/biggar</a> - Best Abuse of the
Rules</li>
<li><a href="heckbert/index.html">1987/heckbert</a> - Best Obfuscator of
Programs</li>
<li><a href="biggar/index.html">1987/biggar</a> - Best Abuse of the Rules</li>
<li><a href="heckbert/index.html">1987/heckbert</a> - Best Obfuscator of Programs</li>
<li><a href="hines/index.html">1987/hines</a> - Worst Style</li>
<li><a href="korn/index.html">1987/korn</a> - Best One Liner</li>
<li><a href="lievaart/index.html">1987/lievaart</a> - Grand Prize</li>
<li><a href="wall/index.html">1987/wall</a> - Most Useful
Obfuscation</li>
<li><a href="wall/index.html">1987/wall</a> - Most Useful Obfuscation</li>
<li><a href="westley/index.html">1987/westley</a> - Best Layout</li>
</ul>
<p> <strong>Jump to:</strong> <a href="#">top</a></p>
+31 -55
View File
@@ -130,8 +130,8 @@
<h2 id="author"><a name="author"></a>Author:</h2>
<ul>
<li>Name: <a href="../../authors.html#David_Korn">David Korn</a><br>
Location: <a href="../../location.html#US">US</a> - <em>United States of
America</em> (<em>United States</em>) <br><br></li>
Location: <a href="../../location.html#US">US</a> - <em>United States of America</em> (<em>United States</em>)
<br><br></li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
@@ -144,26 +144,22 @@ America</em> (<em>United States</em>) <br><br></li>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./korn</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>The Judges believe that this is the best one line entry ever
received. Compile on a UNIX system, or at least one using a C
implementation that fakes it. Very few people are able to determine what
this program does by visual inspection. I suggest that you stop reading
this section right now and see if you are one of the few people who
can.</p>
<p>The Judges believe that this is the best one line entry ever received.
Compile on a UNIX system, or at least one using a C implementation that
fakes it. Very few people are able to determine what this program
does by visual inspection. I suggest that you stop reading this
section right now and see if you are one of the few people who can.</p>
<p>Several points are important to understand this program:</p>
<ol type="1">
<li><p>What is the symbol <code>unix</code> and what is its value in the
program? Clearly <code>unix</code> is not a function, and since
<code>unix</code> is not declared to be a data type (such as
<code>int</code>, <code>char</code>, <code>struct foo</code>,
<code>enum</code>, …) what must <code>unix</code> be?</p></li>
<li><p>What is the value of the symbol <code>"have"</code>? (hint: the
value is NOT 4 characters, or <code>'h'</code>, or a string) Consider
the fact that:</p></li>
<li><p>What is the symbol <code>unix</code> and what is its value in the program? Clearly
<code>unix</code> is not a function, and since <code>unix</code> is not declared to be a data type
(such as <code>int</code>, <code>char</code>, <code>struct foo</code>, <code>enum</code>, …) what must <code>unix</code> be?</p></li>
<li><p>What is the value of the symbol <code>"have"</code>? (hint: the value is NOT 4
characters, or <code>'h'</code>, or a string) Consider the fact that:</p></li>
</ol>
<div class="sourceCode" id="cb3"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="dt">char</span> <span class="op">*</span>x<span class="op">;</span></span></code></pre></div>
<p>defines a pointer to a <code>char</code> (i.e. an address), and that
the <code>=</code> assigns things of compatible types. Since:</p>
<p>defines a pointer to a <code>char</code> (i.e. an address), and that the <code>=</code> assigns
things of compatible types. Since:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> <span class="st">&quot;have&quot;</span><span class="op">;</span></span></code></pre></div>
<p>is legal C, what type of value is <code>"have"</code>?</p>
<ol start="3" type="1">
@@ -172,61 +168,41 @@ the <code>=</code> assigns things of compatible types. Since:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a>x<span class="op">[</span><span class="dv">3</span><span class="op">]</span> <span class="op">*(</span>x<span class="op">+</span><span class="dv">3</span><span class="op">)</span> <span class="op">*(</span><span class="dv">3</span><span class="op">+</span>x<span class="op">)</span></span></code></pre></div>
<p>since addition is commutative. What can be said about this value?</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="dv">3</span><span class="op">[</span>x<span class="op">]</span></span></code></pre></div>
<p><a
href="https://news.slashdot.org/story/01/02/06/2030205/david-korn-tells-all">David
Korn</a>’s <a
href="https://en.wikipedia.org/wiki/KornShell">/bin/ksh</a> provides us
with a greatly improved version of the <a
href="https://en.wikipedia.org/wiki/Bourne_shell">/bin/sh</a>. The
source for <a
href="https://en.wikipedia.org/wiki/Version_7_Unix">v7</a>’s /bin/sh
<p><a href="https://news.slashdot.org/story/01/02/06/2030205/david-korn-tells-all">David
Korn</a>’s
<a href="https://en.wikipedia.org/wiki/KornShell">/bin/ksh</a> provides us with a greatly
improved version of the <a href="https://en.wikipedia.org/wiki/Bourne_shell">/bin/sh</a>.
The source for <a href="https://en.wikipedia.org/wiki/Version_7_Unix">v7</a>’s /bin/sh
greatly inspired this contest.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>No remarks were provided by the author.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
Reserved. You are free to share and adapt this file under the terms of
this license:</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
<h1 id="inventory-for-1987korn"><a name="inventory"></a>Inventory for
1987/korn</h1>
<h1 id="inventory-for-1987korn"><a name="inventory"></a>Inventory for 1987/korn</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/korn/korn.c">korn.c</a>
- entry source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/korn/Makefile">Makefile</a>
- entry Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/korn/korn.orig.c">korn.orig.c</a>
- original source</li>
<li><a href="1987_korn.tar.bz2">1987_korn.tar.bz2</a> - download entry
source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/korn/korn.c">korn.c</a> - entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/korn/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/korn/korn.orig.c">korn.orig.c</a> - original source</li>
<li><a href="1987_korn.tar.bz2">1987_korn.tar.bz2</a> - download entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/korn/.entry.json">.entry.json</a>
- description of entry in JSON</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/korn/.gitignore">.gitignore</a>
- list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/korn/.entry.json">.entry.json</a> - description of entry in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/korn/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href=".path">.path</a> - directory path from top directory</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/korn/README.md">README.md</a>
- markdown source for index.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/korn/README.md">README.md</a> - markdown source for index.html</li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
+36 -60
View File
@@ -129,9 +129,9 @@
<h2 id="author"><a name="author"></a>Author:</h2>
<ul>
<li>Name: <a href="../../authors.html#Roemer_B_Lievaart">Roemer B.
Lievaart</a><br> Location: <a href="../../location.html#NL">NL</a> -
<em>Kingdom of the Netherlands</em> (<em>Netherlands</em>) <br><br></li>
<li>Name: <a href="../../authors.html#Roemer_B_Lievaart">Roemer B. Lievaart</a><br>
Location: <a href="../../location.html#NL">NL</a> - <em>Kingdom of the Netherlands</em> (<em>Netherlands</em>)
<br><br></li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
@@ -145,83 +145,59 @@ Lievaart</a><br> Location: <a href="../../location.html#NL">NL</a> -
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./lievaart</span></span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a><span class="co"># enter a level and start playing as described below</span></span></code></pre></div>
<h2 id="try">Try:</h2>
<p>To see what it would have looked like without the size
restrictions:</p>
<p>To see what it would have looked like without the size restrictions:</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./lievaart2</span></span>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="co"># enter a level and start playing as described below</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>We believe that you too will be amazed at just how much power
Mr. Lievaart packed into 1024 bytes!</p>
<p>This Plays the game of <a
href="https://en.wikipedia.org/wiki/Reversi">Reversi (Othello)</a>!
Compile and run. It then asks for a playing level. Enter 0-10
(easy-hard). It then asks for your move. A move is a number within
11-88, or 99 to pass. Illegal moves (except for an illegal pass) are
rejected. Then the computer does its move (or a 0 to pass), until the
board is full.</p>
<p>It plays rather well, for such a small program! Lievaart had to leave
out the board printing routine, so you’ll have to take a real game board
to play it (or see below). … Also due to space-limitations (the rules
for 1987 had a limit of 1024 byes), Lievaart took out the
passing-handler, which makes its ending-game rather poor. But further it
knows all the rules, uses <a
href="https://en.wikipedia.org/wiki/Alpha-beta_pruning">alpha-beta
pruning</a>, and it plays for instance on mobility(!). Most important:
it can play a pretty good game of Reversi!</p>
<p>The Author was kind enough to supply the fully functional version of
the program. The file <a href="lievaart2.c">lievaart2.c</a> contains
what the program would have been without the size restriction. This
version has the full end game logic and displays the board after each
move! See above for how to use this.</p>
<p>We believe that you too will be amazed at just how much power Mr. Lievaart
packed into 1024 bytes!</p>
<p>This Plays the game of <a href="https://en.wikipedia.org/wiki/Reversi">Reversi
(Othello)</a>! Compile and run. It then
asks for a playing level. Enter 0-10 (easy-hard). It then asks for
your move. A move is a number within 11-88, or 99 to pass. Illegal
moves (except for an illegal pass) are rejected. Then the computer
does its move (or a 0 to pass), until the board is full.</p>
<p>It plays rather well, for such a small program! Lievaart had to leave out the
board printing routine, so you’ll have to take a real game board to play it (or
see below). … Also due to space-limitations (the rules for 1987 had a limit
of 1024 byes), Lievaart took out the passing-handler, which makes its
ending-game rather poor. But further it knows all the rules, uses <a href="https://en.wikipedia.org/wiki/Alpha-beta_pruning">alpha-beta
pruning</a>, and it plays for
instance on mobility(!). Most important: it can play a pretty good game of Reversi!</p>
<p>The Author was kind enough to supply the fully functional version of the
program. The file <a href="lievaart2.c">lievaart2.c</a> contains what the program would
have been without the size restriction. This version has the full end game
logic and displays the board after each move! See above for how to use this.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>No remarks were provided by the author.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
Reserved. You are free to share and adapt this file under the terms of
this license:</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
<h1 id="inventory-for-1987lievaart"><a name="inventory"></a>Inventory
for 1987/lievaart</h1>
<h1 id="inventory-for-1987lievaart"><a name="inventory"></a>Inventory for 1987/lievaart</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/lievaart.c">lievaart.c</a>
- entry source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/Makefile">Makefile</a>
- entry Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/lievaart.orig.c">lievaart.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/lievaart2.c">lievaart2.c</a>
- source without size restriction</li>
<li><a href="1987_lievaart.tar.bz2">1987_lievaart.tar.bz2</a> - download
entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/lievaart.c">lievaart.c</a> - entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/lievaart.orig.c">lievaart.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/lievaart2.c">lievaart2.c</a> - source without size restriction</li>
<li><a href="1987_lievaart.tar.bz2">1987_lievaart.tar.bz2</a> - download entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/.entry.json">.entry.json</a>
- description of entry in JSON</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/.gitignore">.gitignore</a>
- list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/.entry.json">.entry.json</a> - description of entry in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href=".path">.path</a> - directory path from top directory</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/README.md">README.md</a>
- markdown source for index.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/lievaart/README.md">README.md</a> - markdown source for index.html</li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
+26 -47
View File
@@ -130,8 +130,8 @@
<h2 id="author"><a name="author"></a>Author:</h2>
<ul>
<li>Name: <a href="../../authors.html#Larry_Wall">Larry Wall</a><br>
Location: <a href="../../location.html#US">US</a> - <em>United States of
America</em> (<em>United States</em>) <br><br></li>
Location: <a href="../../location.html#US">US</a> - <em>United States of America</em> (<em>United States</em>)
<br><br></li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
@@ -149,8 +149,8 @@ America</em> (<em>United States</em>) <br><br></li>
<span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a><span class="co"># enter some strings or numbers, depending on command</span></span></code></pre></div>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<p>You may of course run the commands manually and enter text as you
wish. For instance you might try one or both of:</p>
<p>You may of course run the commands manually and enter text as you wish. For
instance you might try one or both of:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./wall</span> <span class="kw">|</span> <span class="fu">bc</span></span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./wall</span> <span class="kw">|</span> <span class="fu">cat</span></span></code></pre></div>
@@ -158,67 +158,46 @@ wish. For instance you might try one or both of:</p>
<pre><code>x*x
2^x
quit # for the cat version</code></pre>
<p>which the script does through a pipeline except that here you can
enter more text if you wish, line by line.</p>
<p>which the script does through a pipeline except that here you can enter more
text if you wish, line by line.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>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 <code>vi</code> refers to functions which
seem to not be directly called. Even so, these pointers to functions are
being used as an argument to <code>signal(3)</code> (used both with and
without an arg - but how?). Can you determine why this is being done and
how it is being exploited?</p>
<p>Some compilers complained about this file, so we changed:
<code>=++I</code> to <code>= ++I</code>.</p>
<p>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 <code>vi</code> refers to functions which seem to not be directly called.
Even so, these pointers to functions are being used as an argument to
<code>signal(3)</code> (used both with and without an arg - but how?). Can you determine
why this is being done and how it is being exploited?</p>
<p>Some compilers complained about this file, so we changed: <code>=++I</code> to <code>= ++I</code>.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>No remarks were provided by the author.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
Reserved. You are free to share and adapt this file under the terms of
this license:</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
<h1 id="inventory-for-1987wall"><a name="inventory"></a>Inventory for
1987/wall</h1>
<h1 id="inventory-for-1987wall"><a name="inventory"></a>Inventory for 1987/wall</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/wall.c">wall.c</a>
- entry source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/Makefile">Makefile</a>
- entry Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/wall.orig.c">wall.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/try.sh">try.sh</a>
- how to run</li>
<li><a href="1987_wall.tar.bz2">1987_wall.tar.bz2</a> - download entry
source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/wall.c">wall.c</a> - entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/wall.orig.c">wall.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/try.sh">try.sh</a> - how to run</li>
<li><a href="1987_wall.tar.bz2">1987_wall.tar.bz2</a> - download entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/.entry.json">.entry.json</a>
- description of entry in JSON</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/.gitignore">.gitignore</a>
- list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/.entry.json">.entry.json</a> - description of entry in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href=".path">.path</a> - directory path from top directory</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/README.md">README.md</a>
- markdown source for index.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/wall/README.md">README.md</a> - markdown source for index.html</li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
+17 -34
View File
@@ -129,9 +129,9 @@
<h2 id="author"><a name="author"></a>Author:</h2>
<ul>
<li>Name: <a href="../../authors.html#Brian_Westley">Brian
Westley</a><br> Location: <a href="../../location.html#US">US</a> -
<em>United States of America</em> (<em>United States</em>) <br><br></li>
<li>Name: <a href="../../authors.html#Brian_Westley">Brian Westley</a><br>
Location: <a href="../../location.html#US">US</a> - <em>United States of America</em> (<em>United States</em>)
<br><br></li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
@@ -144,56 +144,39 @@ Westley</a><br> Location: <a href="../../location.html#US">US</a> -
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./westley</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p><code>putchar()</code> must exist in the C library and not just as a
macro. If it fails to compile, bug your OS/compiler vendor.</p>
<p><code>putchar()</code> must exist in the C library and not just as a macro.
If it fails to compile, bug your OS/compiler vendor.</p>
<p>Line by line symmetry performed better than any C beautifier. Think
of if it as a C ink blot. :-)</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>No remarks were provided by the author.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
Reserved. You are free to share and adapt this file under the terms of
this license:</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
<h1 id="inventory-for-1987westley"><a name="inventory"></a>Inventory for
1987/westley</h1>
<h1 id="inventory-for-1987westley"><a name="inventory"></a>Inventory for 1987/westley</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/westley/westley.c">westley.c</a>
- entry source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/westley/Makefile">Makefile</a>
- entry Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/westley/westley.orig.c">westley.orig.c</a>
- original source</li>
<li><a href="1987_westley.tar.bz2">1987_westley.tar.bz2</a> - download
entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/westley/westley.c">westley.c</a> - entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/westley/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/westley/westley.orig.c">westley.orig.c</a> - original source</li>
<li><a href="1987_westley.tar.bz2">1987_westley.tar.bz2</a> - download entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/westley/.entry.json">.entry.json</a>
- description of entry in JSON</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/westley/.gitignore">.gitignore</a>
- list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/westley/.entry.json">.entry.json</a> - description of entry in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/westley/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href=".path">.path</a> - directory path from top directory</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/westley/README.md">README.md</a>
- markdown source for index.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1987/westley/README.md">README.md</a> - markdown source for index.html</li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->