Setup a simple topnav for missing HTML files for entries. Added `bin/gen-other-html.sh` to build entry HTML files from markdown other than README.md to index.html HTML files. Fixed duplicate link text in `2020/ferguson1/gameplay.md`. Improved `inc/md2html.cfg` to support building the missing HTML files for entries. Added `make gen_other_html` to top level Makefile. Added `make gen_other_html` to `make quick_www` and `make www`. Fixed inventory links for year level index.html files. Changed `bin/output-year-index.sh` VERSION from "1.0.1 2024-02-23" to "1.1 2024-02-27". Added missing lines in `manifest.numbers`. Update the affected `.entry.json` files. The manifest (in both `manifest.numbers` and the collection of manifests from of all entry `.entry.json` files) now match. Errors from `make verify_entry_files` will now abort both `make quick_www` and `make www` rules in the top level `Makefile`. Changed markdown files in manifest to have an _inventory_order_ of _2000000000_ so that the `index.html` file will usually appear at the start of the _Secondary files_ set for the "#inventory" section of an entry's `index.html` file. Changed compressed tar files (files that end in _.tar.bz2_) in manifest to have an _inventory_order_ of _100000_ so that these files will usually appear at the end of the _Primary files_ set for the "#inventory" section of an entry's `index.html` file. Added 'Jump to top` link above the _Primary files_ section. Changed `bin/output-index-inventory.sh` VERSION from "1.1.1 2024-02-23" to "1.2 2024-02-27". Updated HTML files to perform the above via `make www`.
327 lines
15 KiB
HTML
327 lines
15 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||
<!-- START: two lines up starts content from: inc/top.default.html -->
|
||
<!-- -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- -->
|
||
<!-- END: this line ends content from: inc/top.default.html -->
|
||
<!-- -->
|
||
<!-- The original markdown content was formed by the tool: bin/readme2index.sh -->
|
||
<!-- The HTML was converted from markdown by the tool: bin/md2html.sh -->
|
||
<!-- -->
|
||
<!-- START: this line starts content from: inc/head.default.html -->
|
||
|
||
<head>
|
||
<link rel="stylesheet" href="../../ioccc.css">
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||
<title>1991/ant - Best Utility</title>
|
||
<meta name="description" content="1991 IOCCC entry ant - Best Utility">
|
||
<meta name="keywords" content="IOCCC, 1991, IOCCC 1991, IOCCC entry, ant, Best Utility">
|
||
</head>
|
||
|
||
<!-- END: this line ends content from: inc/head.default.html -->
|
||
<!-- START: this line starts content from: inc/body.default.html -->
|
||
|
||
<body>
|
||
|
||
<!-- END: this line ends content from: inc/body.default.html -->
|
||
<!-- START: this line starts content from: inc/header.default.html -->
|
||
|
||
<div class="header">
|
||
<img src="../../png/ioccc.png" alt="IOCCC image by Matt Zucker" width=300 height=110>
|
||
<h1>The International Obfuscated C Code Contest</h1>
|
||
<h2>1991/ant - Best Utility</h2>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/header.default.html -->
|
||
<!-- START: this line starts content from: inc/topnav.first.html -->
|
||
|
||
<div class="topnav">
|
||
<a class="Left Disabled" href="#">first entry</a>
|
||
<a class="Left" href="../index.html">↑ 1991 ↑</a>
|
||
<a class="Left" href="../brnstnd/index.html">brnstnd →</a>
|
||
<a class="Right" href="#inventory">Inventory</a>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/topnav.first.html -->
|
||
<!-- START: this line starts content from: inc/begin-row.default.html -->
|
||
|
||
<div class="row">
|
||
|
||
<!-- END: this line ends content from: inc/begin-row.default.html -->
|
||
<!-- START: this line starts content from: inc/begin-leftcolumn.default.html -->
|
||
|
||
<div class="leftcolumn">
|
||
|
||
<!-- END: this line ends content from: inc/begin-leftcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/sidenav.default.html -->
|
||
|
||
<div class="sidenav">
|
||
<a href="#content">Jump to contents</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../index.html">IOCCC Home</a>
|
||
<a href="../../years.html">Winning Entries</a>
|
||
<a href="../../authors.html">People who have won</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../news.html">IOCCC News</a>
|
||
<a href="../../faq.html#submit">How to enter the IOCCC</a>
|
||
<a href="../../faq.html">FAQ</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../bugs.html">Bugs & (mis)features</a>
|
||
<a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a>
|
||
<a href="../../faq.html#fix_web_site">Fixing the web site</a>
|
||
<a href="../../faq.html#fix_author">Fixing author info</a>
|
||
<a href="../../thanks-for-help.html">Thanks for the help</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../judges.html">The IOCCC Judges</a>
|
||
<a href="../../contact.html">Contacting the IOCCC</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="#top">Jump to top</a>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/sidenav.default.html -->
|
||
<!-- START: this line starts content from: inc/end-leftcolumn.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/end-leftcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/begin-rightcolumn.default.html -->
|
||
|
||
<div class="rightcolumn">
|
||
|
||
<!-- END: this line ends content from: inc/begin-rightcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/before-content.default.html -->
|
||
|
||
<a name="content"></a>
|
||
|
||
<!-- END: this line ends content from: inc/before-content.default.html -->
|
||
<!-- START: this line starts content for HTML phase 20 by: bin/output-index-author.sh via bin/md2html.sh -->
|
||
|
||
<!-- START: this line starts content generated by: bin/output-index-author.sh -->
|
||
|
||
<h2 id="author"><a name="author"></a>Author:</h2>
|
||
<ul>
|
||
<li>Name: <a href="../../authors.html#Anthony_C_Howe">Anthony C.
|
||
Howe</a><br> Location: <a href="../../location.html#CA">CA</a>
|
||
<br><br></li>
|
||
</ul>
|
||
|
||
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
|
||
|
||
<!-- END: this line ends content for HTML phase 20 by: bin/output-index-author.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||
|
||
<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>There is an <a href="#alternate-code">alternate version</a> that
|
||
might feel a bit more familiar to vi(m) users.</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">./ant</span> some_file</span></code></pre></div>
|
||
<p>NOTE: the file must already exist and not specifying any arg will
|
||
make the program exit without doing anything.</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="fu">make</span> hill</span>
|
||
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./ant</span> hill</span></code></pre></div>
|
||
<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="fu">make</span> mole</span>
|
||
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./ant</span> mole</span></code></pre></div>
|
||
<h2 id="alternate-code">Alternate code:</h2>
|
||
<p>This version changes the commands slightly so that to go to the first
|
||
column you should enter <code>0</code>, to go to the last column you
|
||
should enter <code>$</code>, to quit you should enter <code>q</code>, to
|
||
go back a word you should enter <code>b</code> and to go forwards a word
|
||
you should enter <code>w</code>. Also, and perhaps most useful, rather
|
||
than having to hit ctrl-L (form-feed, <code>\f</code>) to get back to
|
||
command mode you can use the usual ESC (<code>\x1b</code>).</p>
|
||
<p>These will make it slightly less unwieldy for those familiar with
|
||
vi(m); the rest was unchanged.</p>
|
||
<h3 id="alternate-build">Alternate build:</h3>
|
||
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div>
|
||
<h3 id="alternate-use">Alternate use:</h3>
|
||
<p>Use <code>ant.alt</code> as you would <code>ant</code> above with the
|
||
changes in the input keys. See the author’s remarks for the remaining
|
||
keys.</p>
|
||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||
<p>The author was kind enough to supply a list of references below, in
|
||
case you are still confused after read the source! :-)</p>
|
||
<p>BTW: you’ve most likely heard the joke that if you want a
|
||
pseudo-random string of characters you can put a user unfamiliar with
|
||
vi(m) in a vi(m) session (in insert mode) and ask them to exit. Well in
|
||
this case you’re likely to have this problem if you ARE a vi(m) user!
|
||
:-) … especially if you don’t read the information below. This means if
|
||
you’re reading this in vi(m) you’ll have to exit this like in normal
|
||
vi(m) and then try the same with <code>./ant</code> only to fail.
|
||
:-)</p>
|
||
<p>NOTE: to enter form feed you should be able to hit
|
||
<code>ctrl-L</code>. This will allow you to exit insert mode rather than
|
||
ESC like in normal vi(m). See the author’s commands section for other
|
||
commands.</p>
|
||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||
<p>Ant’s Editor vIOCCC91</p>
|
||
<p>Text files consists of lines of printable text or tab characters. A
|
||
line can be of arbitrary length and is delimited by either a newline or
|
||
the end of file. Carriage return is mapped to newline on input and
|
||
ignored on output. Tab stops are every eight columns. Non-printable
|
||
characters may have unpredictable results depending on the
|
||
implementation of <code>curses</code>.</p>
|
||
<h3 id="commands">Commands</h3>
|
||
<ul>
|
||
<li>h j k l left, down, up, right cursor movement</li>
|
||
<li>H J K L word left, page down, page up, word right</li>
|
||
<li><label><input type="checkbox" />beginning and end of
|
||
line</label></li>
|
||
<li>t b top and bottom of file</li>
|
||
<li>i enter insert mode, form-feed to quit</li>
|
||
<li>x delete character under the cursor</li>
|
||
<li>W write buffer to file</li>
|
||
<li>R refresh the screen</li>
|
||
<li>Q quit</li>
|
||
</ul>
|
||
<h3 id="exit-status">Exit status</h3>
|
||
<ul>
|
||
<li>0 success</li>
|
||
<li>2 missing edit filename</li>
|
||
</ul>
|
||
<h3 id="about-this-entry">About this entry</h3>
|
||
<p>The <code>BUF</code> size should be set at compile time to 32767.
|
||
This value was used because the Sozobon C compiler for the Atari ST has
|
||
16 bit ints and a limit on the size of arrays & structures of 32k.
|
||
Also the WatCom C compiler for the PC also has 16 bits ints. On machines
|
||
that have 32 bit ints (most unix boxes), a larger value for
|
||
<code>BUF</code> could be used.</p>
|
||
<p>It is recommend that compact memory model be used on PC class
|
||
machines. Small memory model may work too provided <code>BUF</code> is
|
||
not too large.</p>
|
||
<p>The character constants <code>'\b'</code>, <code>'\f'</code>,
|
||
<code>'\n'</code>, <code>'\r'</code>, <code>'\t'</code> are used in
|
||
order to provide more portable code, since the compiler should handle
|
||
the translation of them into the native character set. Note that
|
||
<code>'\f'</code> (form-feed) was used to exit insert mode because
|
||
K&R C had no escape constant for the escape-key.</p>
|
||
<p>My goals for this project were to learn and experiment with the
|
||
Buffer Gap Scheme [Fin80][net90], write a useful and <em>portable</em>
|
||
program, and meet the requirements of the IOCCC. I initially planned to
|
||
have a mini <code>curses</code> built-in like the <a
|
||
href="/1989/tromp/README.md">IOCCC Tetris entry from a previous
|
||
year</a>, however this was not as portable as using a
|
||
<code>curses</code> library with
|
||
<code>TERMINFO</code>/<code>TERMCAP</code> support.</p>
|
||
<p>I plan to post follow-ups such as unobfuscated versions and bugs
|
||
fixes to comp.editors. Reposts of the editor.101, gap.doc, and
|
||
editor.102 can be found in the same group every so often.</p>
|
||
<p>This entry will display a file with long lines, but has trouble
|
||
scrolling the screen with long lines. Paging up and down should work
|
||
correctly, however.</p>
|
||
<h3 id="references">References:</h3>
|
||
<p>[Fin80] Craig A. Finseth, “Theory and Practice of Text Editors
|
||
or<br />
|
||
A Cookbook For An EMACS”, TM-165, MIT Lab. for Computer<br />
|
||
Science</p>
|
||
<p>[KeP81] Kernighan & Plauger, “Software Tools in Pascal”,<br />
|
||
Addison-Wesley, 81, chapter 6</p>
|
||
<p>[Mil86] Eugene W. Myers & Webb Miller, “Row-replacement
|
||
Algorithms for Screen Editors”, TR 86-19, Dept. of Computer
|
||
Science,<br />
|
||
U. of Arizona</p>
|
||
<p>[MyM86] Eugene W. Myers & Webb Miller, “A simple
|
||
row-replacement<br />
|
||
method”, TR 86-28, Dept. of Computer Science, U. of Arizona</p>
|
||
<p>[Mil87] Webb Miller, “A Software Tools Sampler”, Prentice Hall, 87
|
||
ISBN 0-13-822305-X, chapter 5</p>
|
||
<p>[net90] “Editor 101/102” articles from comp.editors</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>
|
||
|
||
<!-- 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-1991ant"><a name="inventory"></a>Inventory for
|
||
1991/ant</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/1991/ant/ant.c">ant.c</a>
|
||
- entry source</li>
|
||
<li><a
|
||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/ant/Makefile">Makefile</a>
|
||
- entry Makefile</li>
|
||
<li><a
|
||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/ant/ant.alt.c">ant.alt.c</a>
|
||
- alternative source</li>
|
||
<li><a
|
||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/ant/ant.orig.c">ant.orig.c</a>
|
||
- original source</li>
|
||
<li><a href="1991_ant.tar.bz2">1991_ant.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/1991/ant/.entry.json">.entry.json</a>
|
||
- description of entry in JSON</li>
|
||
<li><a
|
||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/ant/.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/1991/ant/README.md">README.md</a>
|
||
- markdown source for index.html</li>
|
||
</ul>
|
||
|
||
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
|
||
|
||
<!-- END: this line ends content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content from: inc/after-content.default.html -->
|
||
|
||
<!-- END: this line ends content from: inc/after-content.default.html -->
|
||
<!-- START: this line starts content from: inc/end-rightcolumn.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/end-rightcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/end-row.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/end-row.default.html -->
|
||
<!-- START: this line starts content from: inc/footer.default.html -->
|
||
|
||
<div class="footer">
|
||
<hr>
|
||
<h2>Coda</h2>
|
||
<p><a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F1991%2Fant%2Findex.html">Nu HTML check this web page</a></p>
|
||
<p><a href="#top">Jump to top</a> <a href="#content">Jump to Content</a> <a href="#inventory">Jump to Inventory</a></p>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/footer.default.html -->
|
||
<!-- START: this line starts content from: inc/bottom.default.html -->
|
||
|
||
</body>
|
||
</html>
|
||
|
||
<!-- END: this line ends content from: inc/bottom.default.html -->
|