Add to / fix formatting in 1991/ant/README.md

In the judges' comments add some humour.

Add a try section.

Note that a file is needed for the program to do anything (that is a
file that exists) - not specifying an arg will exit without doing
anything at all.

Explain how to enter form-feed as this is important.

Fix formatting.
This commit is contained in:
Cody Boone Ferguson committed 2023-03-19 06:05:08 -07:00
1 parent 94ece1f48d
commit 9c2c19582c
1 file changed
+71 -47
+71 -47
View File
@@ -10,28 +10,47 @@
make all make all
### To run ## To run:
./ant some_file
NOTE: the file must already exist and not specifying any arg will make the
program exit without doing anything.
## Try:
cp README.md hill cp README.md hill
./ant hill ./ant hill
## Judges' comments ## Judges' comments:
The author was kind enough to supply a list of references below, The author was kind enough to supply a list of references below,
in case you are still confused after read the source! :-) in case you are still confused after read the source! :-)
## Author's comments 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 exit `./ant` differently.
Ant's Editor vIOCCC91 NOTE: to enter form feed you should be able to hit `ctrl-L`. 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.
Text files consists of lines of printable text or tab characters. ## Author's comments:
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 Ant's Editor vIOCCC91
on input and ignored on output. Tab stops are every eight columns.
Non-printable characters may have unpredictable results depending Text files consists of lines of printable text or tab characters.
on the implementation of CURSES. 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 CURSES.
### COMMANDS:
COMMANDS
h j k l left, down, up, right cursor movement h j k l left, down, up, right cursor movement
H J K L word left, page down, page up, word right H J K L word left, page down, page up, word right
[ ] beginning and end of line [ ] beginning and end of line
@@ -42,61 +61,66 @@
R refresh the screen R refresh the screen
Q quit Q quit
EXIT STATUS ### EXIT STATUS:
0 success 0 success
2 missing edit filename 2 missing edit filename
The BUF 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 BUF could be used.
It is recommend that compact memory model be used on PC class ### ABOUT THIS ENTRY:
machines. Small memory model may work too provided BUF is not
too large.
The character constants '\b', '\f', '\n', '\r', '\t' are used The BUF size should be set at compile time to 32767. This value
in order to provide more portable code, since the compiler should was used because the Sozobon C compiler for the Atari ST has 16
handle the translation of them into the native character set. bit ints and a limit on the size of arrays & structures of 32k.
Note that '\f' (formfeed) was used to exit insert mode because Also the WatCom C compiler for the PC also has 16 bits ints. On
K&R C had no escape constant for the escape-key. machines that have 32 bit ints (most unix boxes), a larger value
for BUF could be used.
My goals for this project were to learn and experiment with the It is recommend that compact memory model be used on PC class
Buffer Gap Scheme [Fin80][net90], write a useful and *portable* machines. Small memory model may work too provided BUF is not
programme, and meet the requirements of the IOCCC. I initially too large.
planned to have a mini CURSES built-in like the IOCCC Tetris entry
from a previous year, however this was not as portable as using a
CURSES library with TERMINFO/TERMCAP support.
I plan to post followups such as unobfuscated versions and bugs The character constants '\b', '\f', '\n', '\r', '\t' are used
fixes to comp.editors. Reposts of the editor.101, gap.doc, and in order to provide more portable code, since the compiler should
editor.102 can be found in the same group every so often. handle the translation of them into the native character set.
Note that '\f' (formfeed) was used to exit insert mode because
K&R C had no escape constant for the escape-key.
This entry will display a file with long lines, but has trouble My goals for this project were to learn and experiment with the
scrolling the screen with long lines. Paging up and down should Buffer Gap Scheme [Fin80][net90], write a useful and *portable*
work correctly, however. programme, and meet the requirements of the IOCCC. I initially
planned to have a mini CURSES built-in like the IOCCC Tetris entry
from a previous year, however this was not as portable as using a
CURSES library with TERMINFO/TERMCAP support.
REFERENCES I plan to post followups such as unobfuscated versions and bugs
[Fin80] Craig A. Finseth, "Theory and Practice of Text Editors or fixes to comp.editors. Reposts of the editor.101, gap.doc, and
editor.102 can be found in the same group every so often.
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.
### REFERENCES:
[Fin80] Craig A. Finseth, "Theory and Practice of Text Editors or
A Cookbook For An EMACS", TM-165, MIT Lab. for Computer A Cookbook For An EMACS", TM-165, MIT Lab. for Computer
Science Science
[KeP81] Kernighan & Plauger, "Software Tools in Pascal", [KeP81] Kernighan & Plauger, "Software Tools in Pascal",
Addison-Wesley, 81, chapter 6 Addison-Wesley, 81, chapter 6
[Mil86] Eugene W. Myers & Webb Miller, "Row-replacement Algorithms [Mil86] Eugene W. Myers & Webb Miller, "Row-replacement Algorithms
for Screen Editors", TR 86-19, Dept. of Computer Science, for Screen Editors", TR 86-19, Dept. of Computer Science,
U. of Arizona U. of Arizona
[MyM86] Eugene W. Myers & Webb Miller, "A simple row-replacement [MyM86] Eugene W. Myers & Webb Miller, "A simple row-replacement
method", TR 86-28, Dept. of Computer Science, U. of Arizona method", TR 86-28, Dept. of Computer Science, U. of Arizona
[Mil87] Webb Miller, "A Software Tools Sampler", Prentice Hall, 87 [Mil87] Webb Miller, "A Software Tools Sampler", Prentice Hall, 87
ISBN 0-13-822305-X, chapter 5 ISBN 0-13-822305-X, chapter 5
[net90] "Editor 101/102" articles from comp.editors [net90] "Editor 101/102" articles from comp.editors
Copyright (c) 1991, Landon Curt Noll & Larry Bassel. Copyright (c) 1991, Landon Curt Noll & Larry Bassel.
All Rights Reserved. Permission for personal, educational or non-profit use is All Rights Reserved. Permission for personal, educational or non-profit use is