1Copyright (c) 2009, Hugh Mahon 2All rights reserved. 3 4Redistribution and use in source and binary forms, with or without 5modification, are permitted provided that the following conditions 6are met: 7 8 * Redistributions of source code must retain the above copyright 9 notice, this list of conditions and the following disclaimer. 10 * Redistributions in binary form must reproduce the above 11 copyright notice, this list of conditions and the following 12 disclaimer in the documentation and/or other materials provided 13 with the distribution. 14 15THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 18FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 19COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 20INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 21BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 25ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26POSSIBILITY OF SUCH DAMAGE. 27 28 29The editor 'ee' (easy editor) is intended to be a simple, easy to use 30terminal-based screen oriented editor that requires no instruction to 31use. Its primary use would be for people who are new to computers, or who 32use computers only for things like e-mail. 33 34ee's simplified interface is highlighted by the use of pop-up menus which 35make it possible for users to carry out tasks without the need to 36remember commands. An information window at the top of the screen shows 37the user the operations available with control-keys. 38 39ee allows users to use full eight-bit characters. If the host system has 40the capabilities, ee can use message catalogs, which would allow users to 41translate the message catalog into other languages which use eight-bit 42characters. See the file ee.i18n.guide for more details. 43 44ee relies on the virtual memory abilities of the platform it is running on 45and does not have its own memory management capabilities. 46 47I am releasing ee because I hate to see new users and non-computer types 48get frustrated by vi, and would like to see more intuitive interfaces for 49basic tools (both character-based and graphical) become more pervasive. 50Terminal capabilities and communication speeds have evolved considerably 51since the time in which vi's interface was created, allowing much more 52intuitive interfaces to be used. Since character-based I/O won't be 53completely replaced by graphical user interfaces for at least a few more 54years, I'd like to do what I can to make using computers with less 55glamorous interfaces as easy to use as possible. If terminal interfaces 56are still used in ten years, I hope neophytes won't still be stuck with 57only vi. 58 59For a text editor to be easy to use requires a certain set of abilities. In 60order for ee to work, a terminal must have the ability to position the cursor 61on the screen, and should have arrow keys that send unique sequences 62(multiple characters, the first character is an "escape", octal code 63'\033'). All of this information needs to be in a database called "terminfo" 64(System V implementations) or "termcap" (usually used for BSD systems). In 65case the arrow keys do not transmit unique sequences, motion operations are 66mapped to control keys as well, but this at least partially defeats the 67purpose. The curses package is used to handle the I/O which deals with the 68terminal's capabilities. 69 70While ee is based on curses, I have included here the source code to 71new_curse, a subset of curses developed for use with ee. 'curses' often 72will have a defect that reduces the usefulness of the editor relying upon 73it. 74 75The file new_curse.c contains a subset of 'curses', a package for 76applications to use to handle screen output. Unfortunately, curses 77varies from system to system, so I developed new_curse to provide 78consistent behavior across systems. It works on both SystemV and BSD 79systems, and while it can sometimes be slower than other curses packages, 80it will get the information on the screen painted correctly more often 81than vendor supplied curses. Unless problems occur during the building 82of ee, it is recommended that you use new_curse rather than the curses 83supplied with your system. 84 85If you experience problems with data being displayed improperly, check 86your terminal configuration, especially if you're using a terminal 87emulator, and make sure that you are using the right terminfo entry 88before rummaging through code. Terminfo entries often contain 89inaccuracies, or incomplete information, or may not totally match the 90terminal or emulator the terminal information is being used with. 91Complaints that ee isn't working quite right often end up being something 92else (like the terminal emulator being used). 93 94Both ee and new_curse were developed using K&R C (also known as "classic 95C"), but it can also be compiled with ANSI C. You should be able to 96build ee by simply typing "make". A make file which takes into account 97the characteristics of your system will be created, and then ee will be 98built. If there are problems encountered, you will be notified about 99them. 100 101ee is the result of several conflicting design goals. While I know that it 102solves the problems of some users, I also have no doubt that some will decry 103its lack of more features. I will settle for knowing that ee does fulfill 104the needs of a minority (but still large number) of users. The goals of ee 105are: 106 107 1. To be so easy to use as to require no instruction. 108 2. To be easy to compile and, if necessary, port to new platforms 109 by people with relatively little knowledge of C and UNIX. 110 3. To have a minimum number of files to be dealt with, for compile 111 and installation. 112 4. To have enough functionality to be useful to a large number of 113 people. 114 115Hugh Mahon |___| 116hugh4242@yahoo.com | | 117 |\ /| 118 | \/ | 119 120