xref: /freebsd/contrib/ee/README.ee (revision 00a5db46de56179184c0f000eaacad695e2b0859)
1          THIS MATERIAL IS PROVIDED "AS IS".  THERE ARE NO WARRANTIES OF
2          ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT
3          LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
4          FITNESS FOR A PARTICULAR PURPOSE.  Neither Hewlett-Packard nor
5          Hugh Mahon shall be liable for errors contained herein, nor for
6          incidental or consequential damages in connection with the
7          furnishing, performance or use of this material.  Neither
8          Hewlett-Packard nor Hugh Mahon assumes any responsibility for
9          the use or reliability of this software or documentation.  This
10          software and documentation is totally UNSUPPORTED.  There is no
11          support contract available.  Hewlett-Packard has done NO
12          Quality Assurance on ANY of the program or documentation.  You
13          may find the quality of the materials inferior to supported
14          materials.
15
16      This software may be distributed under the terms of Larry Wall's
17      Artistic license, a copy of which is included in this distribution.
18
19      This notice must be included with this software and any
20      derivatives.
21
22      Any modifications to this software by anyone but the original author
23      must be so noted.
24
25
26The editor 'ee' (easy editor) is intended to be a simple, easy to use
27terminal-based screen oriented editor that requires no instruction to
28use.  Its primary use would be for people who are new to computers, or who
29use computers only for things like e-mail.
30
31ee's simplified interface is highlighted by the use of pop-up menus which
32make it possible for users to carry out tasks without the need to
33remember commands.  An information window at the top of the screen shows
34the user the operations available with control-keys.
35
36ee allows users to use full eight-bit characters.  If the host system has
37the capabilities, ee can use message catalogs, which would allow users to
38translate the message catalog into other languages which use eight-bit
39characters.  See the file ee.i18n.guide for more details.
40
41ee relies on the virtual memory abilities of the platform it is running on
42and does not have its own memory management capabilities.
43
44I am releasing ee because I hate to see new users and non-computer types
45get frustrated by vi, and would like to see more intuitive interfaces for
46basic tools (both character-based and graphical) become more pervasive.
47Terminal capabilities and communication speeds have evolved considerably
48since the time in which vi's interface was created, allowing much more
49intuitive interfaces to be used.  Since character-based I/O won't be
50completely replaced by graphical user interfaces for at least a few more
51years, I'd like to do what I can to make using computers with less
52glamorous interfaces as easy to use as possible.  If terminal interfaces
53are still used in ten years, I hope neophytes won't still be stuck with
54only vi.
55
56For a text editor to be easy to use requires a certain set of abilities.  In
57order for ee to work, a terminal must have the ability to position the cursor
58on the screen, and should have arrow keys that send unique sequences
59(multiple characters, the first character is an "escape", octal code
60'\033').  All of this information needs to be in a database called "terminfo"
61(System V implementations) or "termcap" (usually used for BSD systems).  In
62case the arrow keys do not transmit unique sequences, motion operations are
63mapped to control keys as well, but this at least partially defeats the
64purpose.  The curses package is used to handle the I/O which deals with the
65terminal's capabilities.
66
67While ee is based on curses, I have included here the source code to
68new_curse, a subset of curses developed for use with ee.  'curses' often
69will have a defect that reduces the usefulness of the editor relying upon
70it.
71
72The file new_curse.c contains a subset of 'curses', a package for
73applications to use to handle screen output.  Unfortunately, curses
74varies from system to system, so I developed new_curse to provide
75consistent behavior across systems.  It works on both SystemV and BSD
76systems, and while it can sometimes be slower than other curses packages,
77it will get the information on the screen painted correctly more often
78than vendor supplied curses.  Unless problems occur during the building
79of ee, it is recommended that you use new_curse rather than the curses
80supplied with your system.
81
82If you experience problems with data being displayed improperly, check
83your terminal configuration, especially if you're using a terminal
84emulator, and make sure that you are using the right terminfo entry
85before rummaging through code.  Terminfo entries often contain
86inaccuracies, or incomplete information, or may not totally match the
87terminal or emulator the terminal information is being used with.
88Complaints that ee isn't working quite right often end up being something
89else (like the terminal emulator being used).
90
91Both ee and new_curse were developed using K&R C (also known as "classic
92C"), but it can also be compiled with ANSI C.  You should be able to
93build ee by simply typing "make".  A make file which takes into account
94the characteristics of your system will be created, and then ee will be
95built.  If there are problems encountered, you will be notified about
96them.
97
98ee is the result of several conflicting design goals.  While I know that it
99solves the problems of some users, I also have no doubt that some will decry
100its lack of more features.  I will settle for knowing that ee does fulfill
101the needs of a minority (but still large number) of users.  The goals of ee
102are:
103
104        1. To be so easy to use as to require no instruction.
105        2. To be easy to compile and, if necessary, port to new platforms
106           by people with relatively little knowledge of C and UNIX.
107        3. To have a minimum number of files to be dealt with, for compile
108           and installation.
109        4. To have enough functionality to be useful to a large number of
110           people.
111
112Hugh Mahon              |___|
113h_mahon@fc.hp.com       |   |
114                            |\  /|
115                            | \/ |
116
117