mirror of
https://github.com/freebsd/freebsd-src
synced 2024-11-05 18:22:52 +00:00
117 lines
6.2 KiB
Text
117 lines
6.2 KiB
Text
|
THIS MATERIAL IS PROVIDED "AS IS". THERE ARE NO WARRANTIES OF
|
||
|
ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT
|
||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||
|
FITNESS FOR A PARTICULAR PURPOSE. Neither Hewlett-Packard nor
|
||
|
Hugh Mahon shall be liable for errors contained herein, nor for
|
||
|
incidental or consequential damages in connection with the
|
||
|
furnishing, performance or use of this material. Neither
|
||
|
Hewlett-Packard nor Hugh Mahon assumes any responsibility for
|
||
|
the use or reliability of this software or documentation. This
|
||
|
software and documentation is totally UNSUPPORTED. There is no
|
||
|
support contract available. Hewlett-Packard has done NO
|
||
|
Quality Assurance on ANY of the program or documentation. You
|
||
|
may find the quality of the materials inferior to supported
|
||
|
materials.
|
||
|
|
||
|
This software may be distributed under the terms of Larry Wall's
|
||
|
Artistic license, a copy of which is included in this distribution.
|
||
|
(see doc/Artistic).
|
||
|
|
||
|
This notice must be included with this software and any
|
||
|
derivatives.
|
||
|
|
||
|
Any modifications to this software by anyone but the original author
|
||
|
must be so noted.
|
||
|
|
||
|
|
||
|
The editor 'ee' (easy editor) is intended to be a simple, easy to use
|
||
|
terminal-based screen oriented editor that requires no instruction to
|
||
|
use. Its primary use would be for people who are new to computers, or who
|
||
|
use computers only for things like e-mail.
|
||
|
|
||
|
ee's simplified interface is highlighted by the use of pop-up menus which
|
||
|
make it possible for users to carry out tasks without the need to
|
||
|
remember commands. An information window at the top of the screen shows
|
||
|
the user the operations available with control-keys.
|
||
|
|
||
|
ee allows users to use full eight-bit characters. If the host system has
|
||
|
the capabilities, ee can use message catalogs, which would allow users to
|
||
|
translate the message catalog into other languages which use eight-bit
|
||
|
characters. See the file ee.i18n.guide for more details.
|
||
|
|
||
|
ee relies on the virtual memory abilities of the platform it is running on
|
||
|
and does not have its own memory management capabilities.
|
||
|
|
||
|
I am releasing ee because I hate to see new users and non-computer types
|
||
|
get frustrated by vi, and would like to see more intuitive interfaces for
|
||
|
basic tools (both character-based and graphical) become more pervasive.
|
||
|
Terminal capabilities and communication speeds have evolved considerably
|
||
|
since the time in which vi's interface was created, allowing much more
|
||
|
intuitive interfaces to be used. Since character-based I/O won't be
|
||
|
completely replaced by graphical user interfaces for at least a few more
|
||
|
years, I'd like to do what I can to make using computers with less
|
||
|
glamorous interfaces as easy to use as possible. If terminal interfaces
|
||
|
are still used in ten years, I hope neophytes won't still be stuck with
|
||
|
only vi.
|
||
|
|
||
|
For a text editor to be easy to use requires a certain set of abilities. In
|
||
|
order for ee to work, a terminal must have the ability to position the cursor
|
||
|
on the screen, and should have arrow keys that send unique sequences
|
||
|
(multiple characters, the first character is an "escape", octal code
|
||
|
'\033'). All of this information needs to be in a database called "terminfo"
|
||
|
(System V implementations) or "termcap" (usually used for BSD systems). In
|
||
|
case the arrow keys do not transmit unique sequences, motion operations are
|
||
|
mapped to control keys as well, but this at least partially defeats the
|
||
|
purpose. The curses package is used to handle the I/O which deals with the
|
||
|
terminal's capabilities.
|
||
|
|
||
|
While ee is based on curses, I have included here the source code to
|
||
|
new_curse, a subset of curses developed for use with ee. 'curses' often
|
||
|
will have a defect that reduces the usefulness of the editor relying upon
|
||
|
it. This is unused by the FreeBSD version of ee (the existing ncurses
|
||
|
library works just fine) but is included in the doc subdirectory for
|
||
|
reference purposes should anyone wish to port ee to a platform for
|
||
|
which the existing curses libraries are insufficient.
|
||
|
|
||
|
The files doc/new_curse.[ch] contain a subset of the 'curses' library
|
||
|
used by applications to handle screen output. Unfortunately, curses
|
||
|
varies from system to system, so I developed new_curse to provide
|
||
|
consistent behavior across systems. It works on both SystemV and BSD
|
||
|
systems, and while it can sometimes be slower than other curses packages,
|
||
|
it will get the information on the screen painted correctly more often
|
||
|
than vendor supplied curses. Again, FreeBSD does not have this problem
|
||
|
but you may find it useful on other platforms.
|
||
|
|
||
|
If you experience problems with data being displayed improperly, check
|
||
|
your terminal configuration, especially if you're using a terminal
|
||
|
emulator, and make sure that you are using the right terminfo entry
|
||
|
before rummaging through code. Terminfo entries often contain
|
||
|
inaccuracies, or incomplete information, or may not totally match the
|
||
|
terminal or emulator the terminal information is being used with.
|
||
|
Complaints that ee isn't working quite right often end up being something
|
||
|
else (like the terminal emulator being used).
|
||
|
|
||
|
Both ee and new_curse were developed using K&R C (also known as "classic
|
||
|
C"), but it can also be compiled with ANSI C. You should be able to
|
||
|
build ee by simply typing "make".
|
||
|
|
||
|
ee is the result of several conflicting design goals. While I know that it
|
||
|
solves the problems of some users, I also have no doubt that some will decry
|
||
|
its lack of more features. I will settle for knowing that ee does fulfill
|
||
|
the needs of a minority (but still large number) of users. The goals of ee
|
||
|
are:
|
||
|
|
||
|
1. To be so easy to use as to require no instruction.
|
||
|
2. To be easy to compile and, if necessary, port to new platforms
|
||
|
by people with relatively little knowledge of C and UNIX.
|
||
|
3. To have a minimum number of files to be dealt with, for compile
|
||
|
and installation.
|
||
|
4. To have enough functionality to be useful to a large number of
|
||
|
people.
|
||
|
|
||
|
Hugh Mahon |___|
|
||
|
h_mahon@fc.hp.com | |
|
||
|
|\ /|
|
||
|
| \/ |
|
||
|
|