home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / jove-4.16-src.tgz / tar.out / bsd / jove / README < prev    next >
Text File  |  1996-09-28  |  16KB  |  354 lines

  1. ########################################################################
  2. # This program is Copyright (C) 1986-1996 by Jonathan Payne.  JOVE is  #
  3. # provided to you without charge, and with no warranty.  You may give  #
  4. # away copies of JOVE, including sources, provided that this notice is #
  5. # included in all the files.                                           #
  6. ########################################################################
  7.  
  8. [Updated in September 1995]
  9.  
  10. Installation on a UNIX System.
  11. ------------------------------
  12.  
  13. To make JOVE, edit Makefile to set the right directories for the binaries,
  14. on line documentation, the man pages, and the TMP files, and select the
  15. appropriate load command (see LDFLAGS in Makefile).  (IMPORTANT! read the
  16. Makefile carefully.)  "paths.h" will be created by MAKE automatically,
  17. and it will use the directories you specified in the Makefile.  (NOTE:
  18. You should never edit paths.h directly because your changes will be undone
  19. by the next make.)
  20.  
  21. You need to set "SYSDEFS" to the symbol that identifies your system,
  22. using the notation for a macro-setting flag to the C compiler.  For
  23. example, on a Sun running SunOS 4.0, use "SYSDEFS=-DSUNOS40".  The
  24. Makefile describes suitable settings of SYSDEFS for many configurations.
  25. If yours isn't mentioned, use "grep System: sysdep.h" to find all
  26. currently supported system configurations.  If there is no canned
  27. configuration for your system, you will have to define a new symbol and
  28. edit sysdep.h suitably.  See "sysdep.doc" for the possible set of
  29. system-dependent aspects that you can select/tune.
  30.  
  31. Next you may edit "tune.h" to select the compile time features you care
  32. about.  See "tune.doc" for a description of all the compile time options.
  33. The default options are quite reasonable so, in most cases, you should
  34. leave them alone.  If you are really short on space, or are porting JOVE
  35. to a new system, you may want to define -DBAREBONES in SYSDEFS to avoid
  36. some of the less-portable features of JOVE initially.
  37.  
  38. You can type "make" to compile "jjove", "portsrv" (this is compiled on
  39. every system, but is only used if JOVE is compiled with the PIPEPROCS
  40. feature selection, typically on UNIX systems without pseudo ttys),
  41. "recover" and "teachjove".  NOTE:  make won't work if it fires up /bin/csh
  42. for the shell commands.  Test jjove to see if it works (remember that it
  43. won't be able to access its subsidiary files until they are installed, so
  44. you will need to call it with "jjove -l . -s doc ..." -- assuming you are
  45. in the main JOVE directory).  If it works, type "make install" to install
  46. everything where it belongs.
  47.  
  48. Here are some things to consider for deciding where to put the tmp files.
  49. TMPDIR is where the tmp files get stored, usually /tmp or /tmp/jove.  If
  50. your system does not remove subdirectories of /tmp on reboot (lots do remove
  51. them these days) then it makes sense to make TMPDIR be /tmp/jove; otherwise,
  52. /usr/tmp may be better.  But if you use /tmp and want to recover buffers on
  53. system crashes, you should put the lines
  54.     (echo preserving JOVE files)    >/dev/console
  55.     (cd /tmp; /usr/local/lib/jovelib/recover -syscrash) >/dev/console
  56. in the /etc/rc file BEFORE /tmp is cleared, so that you can recover
  57. files after reboots (hint: look for the equivalent code to preserve vi
  58. tempfiles).  There should then be a crontab entry to clear out old files
  59. in /usr/preserve.
  60.  
  61. If you plan on using JOVE with a xterm, look at doc/XTermresource.
  62. This file contains resource declarations that allow JOVE to respond to
  63. more function keys and mouse gestures.
  64.  
  65. For the pdp11 version there is the Ovmakefile.  This has only been
  66. tested on 2.9bsd, and not recently.  It worked pretty well, actually,
  67. and it was possible to turn on all the compile time options with this
  68. version.
  69.  
  70.  
  71. Some features.
  72. --------------
  73.  
  74. "doc/jove.rc" and "doc/example.rc" are JOVE initialization files.  "jove.rc"
  75. is the recommended "system" rc file (until you are ready to roll your own,
  76. that is).  It gets read every time JOVE starts up FOR EVERYONE ("make
  77. install" should copy it to the right place automatically).  After that
  78. JOVE reads the initialization file .joverc in the user's home directory.
  79. "example.rc" is my personal .joverc.
  80.  
  81. The files intro.nr and cmds.nr in the doc directory are the official JOVE
  82. manual.  I got permission from Richard Stallman to use his manual for the
  83. original EMACS, modifying it where necessary for JOVE.  Lots of work was
  84. done by Brian Harvey on this manual.
  85.  
  86. There are man pages for jove and teachjove.  Teachjove is for people who
  87. have never used EMACS style editors.  It is an interactive tutorial, THE
  88. tutorial written by Stallman for the original EMACS, only slightly
  89. modified for JOVE in the appropriate places.  The man pages are
  90. completely up to date, thanks to me.
  91.  
  92.  
  93. Some acknowledgments.
  94. ---------------------
  95.  
  96. Thanks to Jay (hack) Fenlason for writing the original pty code.
  97.  
  98. Thanks to Dave Curry at Purdue for putting in tons of time and effort
  99. into getting JOVE ready.  It just wouldn't be working without his help.
  100.  
  101. Thanks to Jeff Mc Carrell at Berkeley for finding bugs and adding
  102. features, in particular, the comment formatter.
  103.  
  104. Thanks to Karl Gegenfurtner for making the PC version.
  105.  
  106. Thanks to Ken Mitchum for the Macintosh version.
  107.  
  108. Thanks to Hugh Redelmeier for his input, his experience, countless bug
  109. fixes, and ... that's it, I guess.
  110.  
  111. (Thanks to Brian Harvey for teaching me about linked lists ...)
  112.  
  113. Good luck, have fun.
  114.  
  115.     Jonathan Payne (jpayne@starwave.com until further notice :-)
  116.  
  117. Thanks to Charles Lindsey for the xjove/jovetool and xterm mouse support.
  118.  
  119. Thanks to Jim Patterson for the Win 32 port.
  120.  
  121. Thanks to the other JoveHacks for testing and for contributing numerous
  122. fixes, portability enhancements, and pieces of sage advice.
  123.  
  124.     D. Hugh Redelmeier (hugh@mimosa.com)
  125.  
  126. Changes since 4.16beta
  127. ----------------------
  128.  
  129. - Added the variable paragraph-delimiter-pattern to customize paragraph
  130.   recognition.
  131.  
  132. - Ported to Win 32 (but not Win 32s)
  133.  
  134. - Several variables have been renamed to more clearly indicate their function.
  135.   The old name will still work, but eventually it will be eliminated.
  136.     allow-bad-filenames => allow-bad-characters-in-filenames
  137.     display-bad-filenames => display-filenames-with-bad-extensions
  138.     internal-tabstop => tab-width
  139.  
  140. - Several minor bugs fixed.  Several portability improvements.
  141.   + MSDOS: avoid date rollover problem
  142.   + Borland C: support version 4
  143.   + Borland and Microsoft C: enable HIGHLIGHTING
  144.   + NetBSD: dodge ssize_t redefinition
  145.   + SCO UNIX: use <ctype.h>
  146.   + SunOS + Solaris: make charp effective
  147.   + generic: Ensure screen is maintained during non-interactive processes,
  148.     even if the user has typed ahead
  149.  
  150. - The xterm mousing interface has been completely revamped.
  151.   Some small ancillary consequences of this are
  152.   + A next-line (prev-line) landing in the middle of a Tab selects the Tab
  153.     character (rather than the following one)
  154.   + A yank-pop is no longer permitted to follow a copy-region.
  155.  
  156. Changes since version 4.14.6.
  157. -----------------------------
  158.  
  159. JOVE now works on many newer systems.  For example, it compiles
  160. under Solaris 2.n (SYSDEFS=-DSYSVR4).
  161.  
  162. The uninstalled binary in the JOVE directory is jjove instead of xjove
  163. (xjove is now something else).
  164.  
  165. The new command line flag -J inhibits the reading of the global
  166. jove.rc file.  Similarly, -j inhibits ~/.joverc.
  167.  
  168. JOVE's auxiliary files are kept in two directories (actually, they can be
  169. the same directory).  The sharedir holds the system jove.rc and cmds.doc,
  170. the data used to implement the describe-command and describe-variable
  171. commands; these files are meant to be machine-independent.  The libdir
  172. holds portsrv and recover; these are compiled programs, and are
  173. machine-dependent.
  174.  
  175. There are three ways JOVE uses to determine each of the directories, two
  176. of them new.  If JOVE was invoked with -l dirname, dirname is taken as
  177. the LibDir; otherwise, if the environment contains JOVELIB, its value is
  178. taken as the LibDir; otherwise, the value of the make variable $(LIBDIR)
  179. when JOVE was compiled is used as LibDir.  Similarly, -s dirname,
  180. JOVESHARE, and $(SHAREDIR) specify ShareDir.  As a shortcut, -ls dirname
  181. specifies both directories.  Now, a good way to test an uninstalled
  182. version of JOVE is to say, within the JOVE directory,
  183.     jjove -s doc -l . other_parameters
  184.  
  185. A new command "pushlibd" effectively does a pushd command with ShareDir as
  186. the operand.  This is for use within startup files such as jove.rc.
  187.  
  188. The global startup file is now in doc/jove.rc (was doc/system.rc), so the
  189. -s flag can find it as above.  It contains lots of goodies (you might not
  190. want all of them), including an ability to call up additional TERMinal
  191. specific startup files depending on the $TERM environment variable.
  192. Among other things, these provide support for the many wacky keys that
  193. terminal makers provide.  See doc/README.
  194.  
  195. The old make-keymap and bind-keymap-to-key commands are no longer needed.
  196. Instead, bind-to-key can accept character strings of any length (they had
  197. better not be a prefix of any other binding).  This enables, among other
  198. things, binding commands to the function keys on Sun keyboards.  Buffer-
  199. specific bindings are now supported (local-bind-* commands).
  200.  
  201. All system dependencies are now gathered together in the file sysdep.h, to
  202. make it easier to select the bits of code which should or should not be
  203. included for various flavors of UNIX.
  204.  
  205. The position of the mark is now indicated by underlining it (the position of
  206. point is, of course, indicated by the cursor, so the extent of the region is
  207. now easily seen).  The bad news is that, although this works well on
  208. terminals, underlining is broken in some environments (notably SunView
  209. and the versions of OpenWindows with SUNOS4.1.x and Solaris 2.0 -- Solaris
  210. 2.1+ is OK).  For the broken OpenWindows versions, you can include the
  211. following in your .Xdefaults file
  212.     term.boldStyle:                Offset_X_and_Y
  213.     term.underlineStyle:            Same_as_Bold
  214. The stock X11 terminfo entry for xterm was broken until X11R6 in a way that
  215. will cause the screen to be scrambled when JOVE tries to use underlining.
  216. The following fixes to the entry solve this problem and more:
  217.     replace "blink=@," with "blink@,"
  218.     replace "rs2=@" with "rs2@," [note the added comma!]
  219.     add "kf1=\EOP," [if not already be present]
  220.     delete "smul@,"    and "rmul@," [if present]
  221.     add "smul=\E[4m, rmul=\E[m," [xterm does support underlining]
  222.  
  223. The portion of the buffer visible in the window is now indicated by
  224. "uninverting" a part of the modeline in proportion.  This feature is really
  225. intended for use with "xjove" (described next), and there is a variable
  226. "scroll-bar" to enable it.
  227.  
  228. xjove is a complete front-end for JOVE which will be found in the directory
  229. xjove (see the README there).  It enables setting of point and mark with the
  230. mouse, cutting and pasting of text via the region, and scrolling by pointing
  231. into the modeline.  It is written using the XView library (supplied with
  232. Suns, or with the X-distribution from MIT); there is also a version for
  233. Sunview known as jovetool.  See its man entry in doc/xjove.nr.
  234.  
  235. An alternative way of using the mouse is provided in the form of commands
  236. designed to recognize the mouse events coded by Xterm.  These facilities
  237. are not nearly as extensive or convenient as those provided via xjove or
  238. jovetool.
  239.  
  240. Within SHELL windows, the TERM environment variable is now set to "emacs",
  241. mainly to discourage running programs which might have depended on something
  242. else.  Some shells (tcsh, for example) have specific provisions for the emacs
  243. terminal type.
  244.  
  245. By default, commands requiring a "y" or "n" response require a Return as
  246. well.  When variable "one-key-confirmation" is set "on", a single
  247. character "y" or "n" is expected.
  248.  
  249. Some features have been removed.  Marks always float, so the variable
  250. "marks-should-float" is gone.  The IBMPC-specific commands scroll-*-page
  251. are gone.
  252.  
  253. JOVE is now 8-bit clean (the old behavior can be retained by setting NCHARS
  254. to 128 in sysdep.h, but no known system requires this setting).  In operating
  255. systems with the necessary support (USE_CTYPE set in sysdep.h) it is
  256. possible to set the environment variable LC_CTYPE (or the JOVE variable
  257. lc-ctype) to a "locale" such as "iso_8859_1", whereupon characters with the
  258. 8th bit set sent from the keyboard (using the Alt Graph key, or the Compose
  259. key, or the Meta key, or whatever the particular hardware provides) will be
  260. displayed correctly, and will be treated as upper/lower case, etc in the
  261. correct manner.  The default locale is "C", which reverts to 7-bit ASCII with
  262. the top 128 characters being displayed in octal.
  263.  
  264. The format of the "jrec" file has changed.  This means that previous
  265. versions of recover cannot deal with the files left by crashes of the new
  266. JOVE, and vice versa.
  267.  
  268. Here is a list of reasons why your .joverc might no longer work.  JOVE
  269. places diagnostics about the user and system .joverc files in the buffer
  270. "RC errors".
  271.  
  272. - JOVE no longer ignores extra stuff on the end of binding commands.
  273.  
  274. - All keymap creation is implicit.  You no longer can or need to create
  275.   new keymaps explicitly.
  276.  
  277. - auto-execute-command no longer magically supplies a numeric argument
  278.   for its command.  If the command is intended to set a mode, you should
  279.   supply the argument.  If you don't set the numeric argument, the mode
  280.   will be flipped.  Here is an example from the system jove.rc:
  281.     1 auto-execute-command c-mode .*\.[chy]$
  282.  
  283. - Within regular expressions, alternatives are separated by "\|".
  284.   Previously, alternatives within braces were separated by ",".
  285.   For example, "/tmp/\{Re,article,rnmail,pn\}" must be changed to
  286.   "/tmp/\{Re\|article\|rnmail\|pn\}".
  287.  
  288. - auto-execute-command and auto-execute-macro both require explicit
  289.   patterns.  Previously, the pattern would default to match every filename.
  290.  
  291. - Certain commands and variables have been eliminated or renamed:
  292.  
  293.     bind-keymap-to-key, make-keymap, process-bind-keymap-to-key --
  294.         no longer needed
  295.     unbind-key -- bind the "unbound" command instead
  296.     marks-should-float -- they always do now
  297.     physical-tabstop -- now picked up from termcap
  298.     scroll-next-page, scroll-previous-page -- IBM PC only, and useless
  299.     background-color => background-attribute -- IBM PC only
  300.     foreground-color => foreground-attribute
  301.     mode-line-color => mode-line-attribute
  302.  
  303. - On the IBM PC, the Delete key now generates the ASCII DEL character;
  304.   Control-@ and Control-Space now generate the ASCII NUL character.
  305.  
  306.  
  307. Known problems
  308. --------------
  309.  
  310. In an interactive process buffer, JOVE sometimes fails to receive an
  311. end-of-file through the pseudo-tty.  In this case, the process window
  312. will not be considered done, even though the child and all its
  313. ancestors are dead.  The only consequences are that the status
  314. display continues to report that the process is not done and that
  315. another process may not be started up in that buffer.  This only
  316. happens on certain systems, and we think that they are at fault.
  317.  
  318. If a window-find command is issued while the current window's lines
  319. are numbered, the numbering may become wrong temporarily.  We are
  320. working on this bug.
  321.  
  322. JOVE can not handle lines longer than JBUFSIZ characters (usually 1024,
  323. but 512 on some small systems).  Eliminating this limit is not easy.
  324.  
  325. JOVE can not handle NUL characters in the buffer.  In most cases,
  326. they are discarded silently, another dubious feature.
  327.  
  328.  
  329. Bug Reports and Maintenance.
  330. ----------------------------
  331.  
  332. Although Jonathan Payne still takes a fatherly interest in JOVE and retains
  333. overall control, the hassle of day-to-day bug-fixing, sifting of new
  334. features, and maintenance of general cleanliness is now co-ordinated by Hugh
  335. Redelmeier (hugh@mimosa.com).
  336.  
  337. The mailing list jovehacks@cs.toronto.edu forwards mail to the group of
  338. people who develop and maintain JOVE.  We welcome submissions to
  339. jovehacks, for example:
  340.  
  341. - queries and suggestions about support for additional systems
  342.  
  343. - bug reports (we may already have an explanation or fix)
  344.  
  345. - suggestions for and implementations of improvements or additional
  346.   features (we do try to keep JOVE small)
  347.  
  348. The "official" FTP site and directory for JOVE is:
  349.     ftp.cs.toronto.edu:/pub/moraes/jove
  350. Look here for the most recent releases of JOVE.
  351.  
  352. Hugh will report all significant new releases to comp.editors and
  353. comp.emacs.
  354.