We we move 1988-2004 entries from all of a year's winning entries in a single directory to each winner being in their own sub-directory under the given year directory.
120 lines
4.5 KiB
Plaintext
120 lines
4.5 KiB
Plaintext
Best Utility:
|
|
|
|
Anthony C Howe
|
|
Mortice Kern Systems Inc. #CL-23
|
|
35 King St. N 268 Phillip St.
|
|
Waterloo, On Waterloo, On
|
|
Canada, N2J 2W9 Canada, N2L 6G9
|
|
|
|
|
|
Judges' comments:
|
|
|
|
Make and run with a filename (writable or to be created) as an argument.
|
|
For example, try:
|
|
|
|
make ant
|
|
cp ant.hint hill
|
|
ant hill
|
|
|
|
Note that some old BSD systems may have trouble compiling this entry.
|
|
They may complain about 'idlok' being undefined. You can fix this
|
|
by changing line 26 from:
|
|
|
|
2;initscr();d=LINES;raw();noecho();idlok(stdscr,1);if(0<(i= ...
|
|
to:
|
|
2;initscr();d=LINES;raw();noecho();if(0<(i= ...
|
|
|
|
***or*** update to a modern version of Un*x. :-) If you have source,
|
|
you can use this entry to help in your upgrade.
|
|
|
|
You may need to change the makefile depending on what type of system
|
|
you are running. See the notes in ansi.mk or common.mk.
|
|
|
|
The author was kind enough to supply a list of references below,
|
|
in case you are still confused after read the source! :-)
|
|
|
|
|
|
Selected notes from the author:
|
|
|
|
Ant's Editor vIOCCC91
|
|
|
|
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 CURSES.
|
|
|
|
COMMANDS
|
|
h j k l left, down, up, right cursor movement
|
|
H J K L word left, page down, page up, word right
|
|
[ ] beginning and end of line
|
|
t b top and bottom of file
|
|
i enter insert mode, formfeed to quit
|
|
x delete character under the cursor
|
|
W write buffer to file
|
|
R refresh the screen
|
|
Q quit
|
|
|
|
EXIT STATUS
|
|
0 success
|
|
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
|
|
machines. Small memory model may work too provided BUF is not
|
|
too large.
|
|
|
|
The character constants '\b', '\f', '\n', '\r', '\t' 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 '\f' (formfeed) was used to exit insert mode because
|
|
K&R C had no escape constant for the escape-key.
|
|
|
|
My goals for this project were to learn and experiment with the
|
|
Buffer Gap Scheme [Fin80][net90], write a useful and *portable*
|
|
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.
|
|
|
|
I plan to post followups 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.
|
|
|
|
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
|
|
Science
|
|
|
|
[KeP81] Kernighan & Plauger, "Software Tools in Pascal",
|
|
Addison-Wesley, 81, chapter 6
|
|
|
|
[Mil86] Eugene W. Myers & Webb Miller, "Row-replacement Algorithms
|
|
for Screen Editors", TR 86-19, Dept. of Computer Science,
|
|
U. of Arizona
|
|
|
|
[MyM86] Eugene W. Myers & Webb Miller, "A simple row-replacement
|
|
method", TR 86-28, Dept. of Computer Science, U. of Arizona
|
|
|
|
[Mil87] Webb Miller, "A Software Tools Sampler", Prentice Hall, 87
|
|
ISBN 0-13-822305-X, chapter 5
|
|
|
|
[net90] "Editor 101/102" articles from comp.editors
|
|
|
|
Copyright (c) 1991, Landon Curt Noll & Larry Bassel.
|
|
All Rights Reserved. Permission for personal, educational or non-profit use is
|
|
granted provided this this copyright and notice are included in its entirety
|
|
and remains unaltered. All other uses must receive prior permission in writing
|
|
from both Landon Curt Noll and Larry Bassel.
|