We added a checkmark all narbar's that has the make effect of clicking on the **Nu HTML check this web page** link at the very bottom. This makes it much more convenient when one needs to quickly check the HTML of a number of web pages. Run `make www` to perform the above.
356 lines
17 KiB
HTML
356 lines
17 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 -->
|
||
|
||
<!-- END: this line ends content from: inc/top.default.html -->
|
||
<!-- START: this line starts content from: inc/head.default.html -->
|
||
|
||
<head>
|
||
<link rel="stylesheet" href="../../ioccc.css">
|
||
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap" rel="stylesheet">
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||
<title>1991/ant - Best Utility</title>
|
||
<link rel="icon" type="image/x-icon" href="../../favicon.ico">
|
||
<meta name="description" content="1991 IOCCC entry ant - Best Utility">
|
||
<meta name="keywords" content="IOCCC, 1991, IOCCC 1991, IOCCC entry, ant, Best Utility">
|
||
</head>
|
||
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- !!! 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/head.default.html -->
|
||
|
||
<!-- -->
|
||
<!-- This web page was formed via the tool: bin/readme2index.sh -->
|
||
<!-- The content of main section of this web page came from: 1991/ant/README.md -->
|
||
<!-- -->
|
||
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 1991/ant/README.md !!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 1991/ant/README.md !!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 1991/ant/README.md !!! -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
|
||
<!-- Markdown content was converted into HTML via the tool: bin/md2html.sh -->
|
||
|
||
<!-- 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/topbar.default.html -->
|
||
|
||
<div class="theader">
|
||
<nav class="topbar">
|
||
<div class="container">
|
||
<div class="logo">
|
||
IOCCC
|
||
</div>
|
||
|
||
<div class="topbar-items">
|
||
<div class="item">
|
||
<span class="item-header">
|
||
Home
|
||
</span>
|
||
|
||
<div class="sub-item">
|
||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="item">
|
||
<span class="item-header">
|
||
News
|
||
</span>
|
||
|
||
<div class="sub-item">
|
||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="item">
|
||
<span class="item-header">
|
||
Bugs
|
||
</span>
|
||
|
||
<div class="sub-item">
|
||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="item">
|
||
<span class="item-header">
|
||
Judges
|
||
</span>
|
||
|
||
<div class="sub-item">
|
||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/topbar.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/navbar.first.html -->
|
||
|
||
<div class="navbar">
|
||
<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="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/ant/ant.c">C code</a>
|
||
<a class="Right" href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/ant/Makefile">Makefile</a>
|
||
<a class="Right" href="#inventory">Inventory</a>
|
||
<a class="Right" href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F1991%2Fant%2Findex.html">✓</a>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/navbar.first.html -->
|
||
<!-- START: this line starts content from: inc/before-content.default.html -->
|
||
|
||
<div class="content" id="content">
|
||
|
||
<!-- 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">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> - <em>Canada</em></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>
|
||
<pre><code> make all</code></pre>
|
||
<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>
|
||
<pre><code> ./ant some_file</code></pre>
|
||
<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>
|
||
<pre><code> make hill
|
||
./ant hill</code></pre>
|
||
<pre><code> make mole
|
||
./ant mole</code></pre>
|
||
<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>
|
||
<pre><code> make alt</code></pre>
|
||
<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 <a href="../../authors.html#John_Tromp">John Tromp</a>’s
|
||
<a href="../../1989/tromp/index.html">1989/tromp</a> Tetris entry,
|
||
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>
|
||
<!--
|
||
|
||
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
|
||
|
||
You are free to share and adapt this file under the terms of this license:
|
||
|
||
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
||
|
||
For more information, see:
|
||
|
||
https://creativecommons.org/licenses/by-sa/4.0/
|
||
|
||
-->
|
||
|
||
<!-- 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 -->
|
||
|
||
<div id="inventory">
|
||
<h1 id="inventory-for-1991ant">Inventory for 1991/ant</h1>
|
||
</div>
|
||
<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>
|
||
</ul>
|
||
<h2 id="secondary-files">Secondary files</h2>
|
||
<ul>
|
||
<li><a href="1991_ant.tar.bz2">1991_ant.tar.bz2</a> - download entry tarball</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/ant/README.md">README.md</a> - markdown source for this web 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="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/ant/.path">.path</a> - directory path from top directory</li>
|
||
<li><a href="index.html">index.html</a> - this web page</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 -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/after-content.default.html -->
|
||
<!-- START: this line starts content from: inc/footer.default.html -->
|
||
|
||
<!--
|
||
|
||
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
|
||
|
||
You are free to share and adapt this file under the terms of this license:
|
||
|
||
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
||
|
||
For more information, see:
|
||
|
||
https://creativecommons.org/licenses/by-sa/4.0/
|
||
|
||
-->
|
||
|
||
<div class="footer">
|
||
<div id="copyright"><h2>Copyright and CC BY-SA 4.0 License</h2></div>
|
||
<p>All IOCCC content including this file and web page are:</p>
|
||
<b> Copyright © 1984-2024 by Landon Curt Noll. <a href="https://creativecommons.org/faq/#what-does-some-rights-reserved-mean">Some Rights Reserved</a>.</b>
|
||
<p>This work is licensed by Landon Curt Noll under:</p>
|
||
<p><b><a href="https://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1"
|
||
target="_blank" rel="license noopener noreferrer" style="display:inline-block;"> CC BY-SA 4.0
|
||
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
|
||
src="../../png/cc.png"
|
||
alt="cc inside circle symbol">
|
||
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
|
||
src="../../png/by.png"
|
||
alt="person inside circle symbol">
|
||
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
|
||
src="../../png/sa.png"
|
||
alt="arrow looping back on itself inside circle symbol">
|
||
</a></b></p>
|
||
<p>The <b>CC BY-SA 4.0 LEGAL CODE</b> for this license is found under:</p>
|
||
<p> <b><a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode.en">
|
||
https://creativecommons.org/licenses/by-sa/4.0/legalcode.en</a></b></p>
|
||
<p>You should <b>carefully review</b> all of the terms and conditions of the
|
||
<a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode.en">actual license</a>
|
||
before using the licensed material.</p>
|
||
<p>You may wish to review the <b><a href="../../license.html">highlights of some of the key
|
||
features and terms</a></b> of the <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode.en">actual license</a>.</p>
|
||
<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 -->
|