/contrib/ee/README.ee

https://bitbucket.org/freebsd/freebsd-head/ · Unknown · 119 lines · 101 code · 18 blank · 0 comment · 0 complexity · d0d0d1fc9c6fe167f8c47d3ed9408c30 MD5 · raw file

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