Index of /transameritech2/EXTRAS/JOVE-4.6

      Name                    Last modified       Size  Description

[DIR] Parent Directory 22-Nov-1994 03:31 - [TXT] ABBREV.C 24-Oct-1994 05:11 9k [TXT] ASK.C 24-Oct-1994 05:11 26k [TXT] ATARI_ST.C 24-Oct-1994 05:11 41k [TXT] BUF.C 24-Oct-1994 05:11 18k [TXT] C.C 24-Oct-1994 05:11 22k [TXT] CASE.C 24-Oct-1994 05:11 3k [DIR] CHARTABS/ 24-Oct-1994 05:11 - [TXT] CTIME.C 24-Oct-1994 05:11 1k [TXT] CTYPE.C 24-Oct-1994 05:11 7k [TXT] CTYPE.H 24-Oct-1994 05:11 4k [TXT] DEF-LIST 24-Oct-1994 05:11 23k [TXT] DELETE.C 24-Oct-1994 05:11 12k [TXT] DIRS.C 24-Oct-1994 05:11 16k [TXT] DISP.C 24-Oct-1994 05:11 30k [DIR] DOC/ 24-Oct-1994 05:11 - [TXT] EXTEND.C 24-Oct-1994 05:11 37k [TXT] FKEYS.C 24-Oct-1994 05:11 22k [TXT] FMT.C 24-Oct-1994 05:11 8k [TXT] FP.C 24-Oct-1994 05:11 13k [TXT] FUNCDEFS.C 24-Oct-1994 05:11 5k [TXT] FUNCS.INC 24-Oct-1994 05:11 15k [TXT] IF.SED 24-Oct-1994 05:11 1k [TXT] INSERT.C 24-Oct-1994 05:11 27k [TXT] IO.C 24-Oct-1994 05:11 30k [TXT] IO.H 24-Oct-1994 05:11 11k [TXT] IPR-PIPE.CI 24-Oct-1994 05:11 8k [TXT] IPR-PTY.CI 24-Oct-1994 05:11 13k [TXT] IPR-VMS.CI 24-Oct-1994 05:11 7k [TXT] IPROC.C 24-Oct-1994 05:11 20k [TXT] JOVE.C 24-Oct-1994 05:11 25k [TXT] JOVE.H 24-Oct-1994 05:11 33k [TXT] JOVE.RC 24-Oct-1994 05:11 1k [TXT] KBD.C 24-Oct-1994 05:11 7k [TXT] KEYMAPS.CT 24-Oct-1994 05:11 17k [TXT] KEYSUBST.C 24-Oct-1994 05:11 14k [TXT] LAST.C 24-Oct-1994 05:11 1k [TXT] MAC.C 24-Oct-1994 05:11 54k [DIR] MAC4.14/ 24-Oct-1994 05:11 - [TXT] MACROS.C 24-Oct-1994 05:11 19k [TXT] MAKEDEP 24-Oct-1994 05:11 1k [TXT] MAKEFILE.DOS 24-Oct-1994 05:11 18k [TXT] MAKEFILE.ST 24-Oct-1994 05:11 17k [TXT] MAKEFILE.UX 24-Oct-1994 05:11 28k [TXT] MAKEFILE.VMS 24-Oct-1994 05:11 18k [TXT] MAKEVSN.C 24-Oct-1994 05:11 43k [TXT] MALLOC.C 24-Oct-1994 05:11 5k [TXT] MAPS.C 24-Oct-1994 05:11 23k [TXT] MAPS.H 24-Oct-1994 05:11 5k [TXT] MARKS.C 24-Oct-1994 05:11 5k [TXT] MENUMAPS.CT 24-Oct-1994 05:11 3k [TXT] MISC.C 24-Oct-1994 05:11 16k [TXT] MOUSE.CI 24-Oct-1994 05:11 11k [TXT] MOVE.C 24-Oct-1994 05:11 9k [TXT] MSDOS.C 24-Oct-1994 05:11 43k [TXT] PARA.C 24-Oct-1994 05:11 21k [TXT] PORTANSI.H 24-Oct-1994 05:11 29k [TXT] PORTDEFS.H 24-Oct-1994 05:11 42k [TXT] PORTSRV.C 24-Oct-1994 05:11 3k [TXT] PROC.C 24-Oct-1994 05:11 30k [TXT] PROCESS.H 24-Oct-1994 05:11 12k [TXT] RE.C 24-Oct-1994 05:11 46k [TXT] RE.H 24-Oct-1994 05:11 3k [TXT] READDIR.H 24-Oct-1994 05:11 10k [TXT] REC.C 24-Oct-1994 05:11 13k [TXT] REC.H 24-Oct-1994 05:11 2k [TXT] RECOVER.C 24-Oct-1994 05:11 30k [TXT] REFS.INC 24-Oct-1994 05:11 1k [TXT] REFS.SED 24-Oct-1994 05:11 1k [TXT] SCANDIR.C 24-Oct-1994 05:11 3k [TXT] SCREEN.C 24-Oct-1994 05:11 42k [TXT] SCREEN.H 24-Oct-1994 05:11 4k [TXT] SEARCH.C 24-Oct-1994 05:11 24k [TXT] SETMAPS.C 24-Oct-1994 05:11 3k [TXT] TABLE.C 24-Oct-1994 05:11 2k [TXT] TABLE.H 24-Oct-1994 05:11 1k [TXT] TAGS 24-Oct-1994 05:11 85k [TXT] TEMP.H 24-Oct-1994 05:11 4k [TXT] TERM.C 24-Oct-1994 05:11 16k [TXT] TERMCAP.H 24-Oct-1994 05:11 10k [DIR] TERMCAP/ 24-Oct-1994 05:11 - [TXT] TODO 24-Oct-1994 05:11 8k [DIR] TOOLS/ 24-Oct-1994 05:11 - [TXT] TRANS.TBL 31-Dec-1969 23:35 4k [TXT] TTY.C 24-Oct-1994 05:11 27k [TXT] TTY.H 24-Oct-1994 05:11 5k [TXT] TUNE.CT 24-Oct-1994 05:11 5k [TXT] TUNE.H 24-Oct-1994 05:11 20k [TXT] UTIL.C 24-Oct-1994 05:11 18k [TXT] VARS.C 24-Oct-1994 05:11 2k [TXT] VARS.H 24-Oct-1994 05:11 6k [TXT] VARS.INC 24-Oct-1994 05:11 10k [TXT] VARS.SED 24-Oct-1994 05:11 1k [TXT] VERSION.C 24-Oct-1994 05:11 1k [TXT] VMS.C 24-Oct-1994 05:11 29k [TXT] WHATSNEW 24-Oct-1994 05:11 9k [TXT] WIND.C 24-Oct-1994 05:11 12k [TXT] XON-XOFF.C 24-Oct-1994 05:11 11k [TXT] _INSTALL.C 24-Oct-1994 05:11 4k

	README for JOVE According to Tom (version 4.6.14.32)
	====================================================

		          by Tom Hageman

			     May 1994

INSTALLATION
------------

To make JOVE copy the appropriate makefile.<SYS> (= ux, st, dos or vms)
to Makefile and edit it to set the right directories for the binaries,
on-line documentation, the man pages and the TMP files, adjust some
system-dependent commands, and select the appropriate SYSTEM, LIBS,
LDFLAGS and OPTIONS (see below for a list of compile-time options.)
IMPORTANT: read the Makefile carefully.

"tune.c" will be created from "tune.ct" by make automatically, and it 
will use the directories you specified in the Makefile. 
(NOTE: you should avoid editing "tune.c" directly because your changes 
will be undone by the make.  If you want to make a change to a part of
tune.c that isn't a directory name, you should edit tune.ct)

The include file "tune.h" contains most system-dependent information,
and selects the compile-time options.  I strongly discourage editing
this file since you risk losing your changes every time you receive an
update of JOVE.  Therefore if you want to enable a compile-time option
not yet present in the standard tune.h, add it to the OPTIONS list in
the Makefile; if you want to exclude some option already present, or
want some more extensive changes, include these in a file "Local.h" and
add the option LOCAL to the OPTIONS list.

You can type "make" to compile XJOVE, RECOVER, KEYSUBST and optionally
PORTSRV and KBD (only needed on non-BSD UNIX systems).  Test them out to
see if they work.  If they do, type "make INSTALL" to install everything
where it belongs. (Note: there is also a "make install" that installs
everything BUT the on-line documentation; you can use this for bug-fix
updates when you don't keep the JOVE manual sources on-line.)  If it
doesn't work (or doesn't compile at all), try to locate the problem
(usually it is in such system-dependent areas as signal handling,
setting tty to raw mode, or interactive processes) and eventually try
another SYSTEM in the Makefile that may be closer to your particular
machine.  Most system-dependencies are to be found in the include files
"tune.h", "tty.h" and "process.h", and the source files "tty.c", "ipr*.ci"
and "jove.c", so keep an eye open to these if you port JOVE to a new
system.  On some systems it may be necessary to use the customized
termcap library in the TERMCAP directory; if so you should make that
first (it has a separate Makefile.)

I tried to make the maintenance of files most subject to change due to
local circumstances as painless as possible, most notably the Makefile,
the system "joverc", "joveabbr" and "extra.hlp".  The local versions (or
patches) of these are held in "L-*" files in the DOC directory.  These
are maintained semi-automatically; it helps when you have context
diff(1) and Larry Wall's patch(1) program.  If they do not exist they
are copied from the distribution when you run "make INSTALL".  Here is a
list of these "L-*" files (NOTE: all these reside in the DOC directory)

  L-patch.make	- file containing context-diffs between the local
		  "Makefile" and "makefile.<SYS>".  If it does not yet
		  exist you should create it with the command:
		    make <DOC>L-patch.make

  L-system.rc	- Local system .joverc startup script.  It is made from
  		  "sys-ux.rc", if that exists, to which the contents of
    L-add.rc	  "L-add.rc" are added and the patches in the context-diff
    L-patch.rc	  file "L-patch.rc", if that exists, are applied.
		  If all this succeeds the patch file "L-patch.rc" is updated;
		  if it fails the original "L-system.rc" is still intact, and
		  the partial result is found in "L-patch.rc@".

 NOTE: THE L-system.rc MECHANISM IS RETAINED FOR BACKWARD COMPATIBILITY ONLY.
 Local site preferences can now be maintained more conveniently in
 the following  (optional) configuration file:

  L-local.rc	- Site-specific additions to system startup.  If present this
		  is installed as "$(LIBDIR)joverc.local".  This is sourced
		  at the end of the (site-independent) system-startup file.
		  
  L-extra.hlp	- Local extra help screens.  If it doesn't exist it is
		  copied from "extrahlp.<SYS>".

  L-abbrev	- Local system-wide abbreviations.  It is made from
  		  "example.abr", if that exists, to which the contents of
    L-add.abr	  "L-add.abr" are added.

These are NOT included in the distribution since these are inherently
local to your system.  Therefore it is YOUR responsibility to keep them
around after you have installed JOVE and want to free up the source
directory (hint: archive them to LIBDIR, and restore them to DOC before
you install a new JOVE release.)  I hope to create a GNU autoconf
script to make the update procedure less painful; it will be included
in a future release (hopefully soon).


COMPILE TIME OPTIONS
--------------------

First a list the options describing an operating system variant:

ATARIST	      - for Atari ST/TT running TOS. (use makefile.st; tested
		with Turbo C 2.03 + customized libraries + gulam shell
		+ pdmake; it also compiles under GCC 2.3.3 (++jrb port)
		with gnulib, but shell escapes still crash.
		Sorry, no MiNT support yet.

BSD2_9	      - If you're running a BSD 2.9 system.

BSD4_2        - Obviously, if you're a Berkeley 4.2 system.

BSD4_3	      - If you're running a Berkeley 4.3 or 2.10 system.
		This will automatically define BSD4_2, also.

MAC	      - If you're a Macintosh. This is NOT YET TESTED!!!!!!!!!!!!
		I'm assuming Lightspeed C.  Maybe some Macintosh guru can
		get it to work. (see mac.c; and also README.mac + mac414.c
		which is the main body of Ken Mitchum's original 4.14 port)

MINIX	      - If you're a Minix system (PC no guarantee; ST combined
		with ATARIST using ACK or GCC 1.37 compilers: needs STDIO,
		OR a patch in libc(ansi/ctime.c: replace %3.3s with %3s)
		if you want to keep the executable's size down)

MSDOS	      - If you're a PC running MSDOS (use makefile.dos; tested
		with MSC 5.1, 6.0 (buggy as it is) + pdmake;
		and Turbo C/Borland C++ 2.0 + pdmake, needs additional
		"unix" library that contains utime() for _install;
		Borland C++ 3.0 + pdmake compiles and links out of the box)

_POSIX_SOURCE - for systems conforming to the Posix.1 standard.

SYSV	      - If you're a System V (Rel. 2 or higher) UNIX.

SYSV_BSD      - If your a hybrid SysV/BSD UNIX system like IBM RT AIX
		or HP9000/300 (v5.5 at least).  This will define both
		SYSV and BDS4_2.

SCO_SYSV      - If you're an SCO Unix (3.2) system.

ULTRIX	      - If you're a DEC Ultrix system.

V7	      - If you're a UNIX 7th Edition system.

XENIX	      - If you're a XENIX (2.3) system.

unix	      - If you're a generic UNIX system (usually defined by the
		compiler)

vms	      - If you're a VAX/VMS (5.?) system (use makefile.vms)
		(defined by the VAX C compiler)

Here are the system-dependent and portability options (or downright
hacks) which are usually derived from one of the above (see tune.h):

_ANSI_C_, _ANSI_LIBRARY_, _ANSI_HEADERS_, etc.
	      - These describe the ANSI-ness of your C compiler.  Its value
		is usually determined automatically from __STDC__.  For
		a full description see the comments in "portansi.h" and
		eventually "portdefs.h".

BAD_VARARGS   - This should be enabled if varargs is not re-entrant on
		your system.  A strong indication for this is when the
		"Some buffers haven't been saved" message on exit of
		JOVE with some unsaved buffers is garbled. (some RISC
		systems (sparc!) are known to behave this way)

BIFF	      - This enables turning on and off BIFF so your screen doesn't
		get messed up with messages from BIFF.  This obviously is
		useful only if BIFF or something like it runs on your system.

BIG	      - Do not place any size restrictions on JOVE.  This is the
		default for most systems. (Note: this replaces VMUNIX)

BLKSIZ=N      - The number of bytes in a data block.  Usually, but not
		necessarily, equal to the system's intrinsic BUFSIZ.
		IMPORTANT: it MUST be a power of 2.  Default value is 512
		for SMALL and TINY systems, 1024 for BIG systems, and 4096
		for micros. (which speeds up disk I/O tremendously!)

BPC={7,8}     - This gives the significant number of Bits Per Character.
		Default is 7 for UNIX/VMS systems, and 8 for others.
		(see "chartabs/*.ctb" for the character sets currently
		 supported; in an ideal word this would be a single one...)

CASECONFLICT  - Indicates that external names are converted to a single
		case; This defines some preprocessor macros to avoid
		these name conflicts. (VMS)

CRLF	      - include newline conversion: <lf> vs. <cr><lf>. It is
		enabled by default for MS-DOS and Atari ST.  It can
		optionally be enabled for UNIX or VMS if you wish to be
		able to read and write DOS-style files.

IPROCS	      - Nice feature which lets you run interactive commands in
		windows.  In particular, there is a shell command built
		in which starts up an interactive shell in a window.
		This works only on UNIX and VMS systems.

JOB_CONTROL   - Versions of UNIX that have the job control facility.
		Berkeley 2.9-10 systems, and the 4.1-3 systems I know
		have job stopping, so if you're one of those, define
		this.  The reason MENLO_JCL is defined when JOB_CONTROL
		is that the 2.9 signal.h file only defines all of the
		job stopping signals only when MENLO_JCL is defined.

MAIL	      - Check for arrival of new mail. (UNIX, VMS) The VMS
		version checks for arrival of any broadcast message, not
		just the mail message.

MY_MALLOC     - Use the older version of malloc that is more memory
		efficient than the newer 4BSD version.  The 4BSD version
		places more importance on the speed of the allocation
		than the amount of memory it uses.  Make your choice
		... JOVE hardly ever calls malloc, anyway, relatively
		speaking, since it allocates lines in big chunks.  NOTE:
		This doesn't seem to work on suns and the iAPX286, and
		probably any non-UNIX system.

NOPROCS       - Exclude code concerning sub-processes.  For systems that
		cannot spawn subprocesses.

PASSWD	      - Define this if your "/etc/passwd" format is weird, or
		if (like SUNs yellow pages) another user administration
		is used on your system.  If defined JOVE uses the
		<pwd.h> library routines, otherwise JOVE thinks to know
		the format of /etc/passwd.  It is probably a good idea
		to have this defined anyway for the sake of portability.

PIPEPROCS     - If NOT defined, JOVE will use Berkeley pseudo-ttys when
		doing interactive processes.  This is infinitely better,
		since you get job control and all that stuff on i-procs.
		If defined, the portsrv and kbd programs will have to be
		made, and all communication between jove and i-procs
		will be done using pipes.  In that case I-process output
		and keystrokes are multiplexed to a single pipe, so
		JOVEs response can get sluggish when there is a burst of
		process output.

SMALL	      - If you're a small system (like, a pdp11 running 2.9bsd);
		this throws out some luxuries, and enforces a small data
		cache and short data-addresses.

STDIO	      - Define this if your C library conflicts with JOVEs own
		(not-so-)stdio, e.g., in the termcap library or ctime,
		or if you use shared system libraries.
		It is probably a good idea to have this defined anyway
		for the sake of portability.

TERMCAP	      - This determines if the system is truly using termcap (or
		terminfo, or, like VMS, a termcap emulation).  Default
		for UNIX and VMS; Atari/MSDOS and Mac versions have
		hardwired terminal emulations.

TINY	      - If you're a truly minute system (like pdp11 running V7);
		this throws out all the frills and leaves you with a bare JOVE.

VARS_DEFINED_IN_TERMCAP
	      - If you get a "doubly defined symbol" linker error for
		the variables `ospeed' and `PC' you can try recompiling
		"term.c" with this option enabled.

VIDEO	      - (MSDOS only) Includes ANSI-terminal emulation code using
		the VIDEO interrupt.  This makes JOVE independent of ANSI.SYS.
		Define VIDEO=1 for direct video support.

There are a lot more system-dependent options which I will not describe
here.  Usually these describe the presence (or absence) of a special
(Unix) system call or -feature, so these are rather self-explaining.


Finally, the system-independent options.  Most are set in "tune.h" according
to the system definition.  Some parameters are set to a convenient default
value if they are not defined explicitly:

ABBREV	      - Enables word-abbrev-mode which again is nice for paper writers.

ARG_EXPAND    - Enables UNIX-like filename wildcard expansion. This is for
		non-UNIX systems that don't have a proper shell.

ASK_DIR       - Enables directory-only file completion in cd, pushd commands.

AUTOSCROLL    - This enables the EDT-like auto-scroll feature which I like.

BACKUPFILES   - This enables backing up files on write.  I guess lots of
		people like this feature.  It enables the feature but you
		can still control whether files are backed up with the
		make-backup-files variable.

CHDIR	      - This enables the directory commands; PUSHD, POPD, DIRS
		and CD.  These simulate the csh commands exactly, I
		think.  As a side-effect, absolute path names are
		enabled, which means JOVE parses file names for "." and
		".." and all that to get at what you REALLY mean.  It's
		nicer when this is enabled, but not essential.

CLIOPTIONS    - This enables code to handle user-definable command line options.

CMT_FMT	      - This enables code to format and indent C comments.

CTAGS	      - This enables the tag-search code.

COLOR	      - Enables code to assign color to buffers. (see the manual:
		use-color for color support in termcap)

CURSOPT	      - Enables ex{t,p}ensive cursor optimizations.

DUMBTERMS     - Enables support for dumb terminals (like Hazeltine,
		are these still out there?).

DYNCACHE      - This enables code for "dynamic caching", i.e., the data
		cache is extended with a new block as soon as it fills
		up, thus keeping all of the buffers' contents in memory.

EXTBINDINGS   - Enables extended key bindings to make JOVE behave more like
		microEmacs, and some extra of my own making. (This is implied
		when STDBINDINGS is not enabled)

IPARSE	      - Enables "i-process-parse", i.e., use i-procs for make and
		spell processes.  This needs IPROCS.

F_COMPLETION  - This enables code for filename completion (who would ever
		want to do without this?).  This needs CHDIR.

FAST_FLASH    - Define this if the standard visual bell code is to be
		replaced with a custom `flash' routine (see screen.c).

FAST_IDLINE   - Define this if the standard {Insert,Delete}-lin code
		is to be replaced with custom routines (see screen.c)

FILESELECTOR  - Enables code to handle a standard `file selector' dialog.
		Strictly for addicts. (Atari/Mac only)

FUNCKEYS      - Enables code for terminal-independent fuction key recognition.

FULLRECOVER   - To include the full-blown recovery code.  The contents,
		type, position in and modes of saved buffers are recovered
		after a crash, so you can continue editing right away.
		If this is not defined, "jove -r" execs the separate RECOVER
		program.

GEMINI	      - (Atari ST only) Make JOVE run correctly in the console
		window of the Gemini shell.

ID_CHAR	      -	Enables support for Insert/Delete character on
		terminals that have those capabilities.  Couple of
		problems with this code:  it's large, takes up lots of I
		space which is a problem for the smaller computers
		(pdp11).  Also, it isn't particularly smart and
		sometimes does really stupid things.  It sometimes uses
		insert/delete character when simply redrawing would have
		been faster.  And if you look at code you'll understand
		why I don't like it all that much.

ISEARCH	      - Include the incremental search routines.

KEYALIAS=ID   - Make the FUNCKEYS code recognize arcane system-dependent
		function key names and map these to JOVEs standard names
		(F0--F9, FA--FZ, Fa--Fq).  Currently ID can be:
		  KEY_SCO	- SCO Unix/Xenix (PU,PD,HO,EN)
		  KEY_AIX	- IBM AIX (kw, k? etc., S1--SA)
		  KEY_EXT	- Sun (@? etc.)
		or a combination of these, `|'-ed together.

LOAD_AV	      - Enables load-average monitoring.  This is available only
		on some UNIX systems.

LISP	      - Enables Lisp Mode.  This includes code to indent "properly"
		for Lisp code and new routines to move over s-expressions.
		You probably won't want (or need) this if you don't have
		lisp,  so it is not defined in the standard distribution.

MAXCOLS=N     - Define maximum number of columns that can be displayed.
		Its default value is 132.  You may want to increase this
		if you install JOVE in a windowing workstation environment.

MENUS	      - Define this if JOVE has to support pull-down menus.  This
		does NOT include the menu-handling routines; it merely adds
		some hooks to facilitate their implementation. (Mac)

META_FKEYS    - Makes the FUNCKEYS code recognize function key sequences
		with the high bit set in the first character of the
		sequence as Meta-function key.  If you have a terminal
		emulator with programmable function key sequences you
		can probably make it send such sequences on META +
		function key (see for example termcap/mskermit.key)

MOUSE	      - Include code to handle the mouse (currently only for Atari/
		MSDOS/Mac systems).

NDIRS=N	      - Maximum number of entries in the directory stack.
		Its default value is 5. (this is a hard limit only for TINY
		JOVEs; others allocate the directory stack dynamically).

NFKEYS=N      - Maximum number of function key definitions.  Zero if
		FUNCKEYS is undefined, otherwise a suitable value is
		chosen.

NULLCHARS     - Enables a kludge which allows null-characters (^@) in buffers.
		Well, it works but is not very well integrated with other
		parts of JOVE (try a replacement string that contains ^@
		character(s), then guess how this is implemented :-!)

PERL	      - Enables Perl Mode.  This includes code to indent "properly"
		for Perl code, which differs enough from C to justify a new
		major mode.  You probably won't want (or need) this if you
		don't have Larry Wall's perl program, so it is not defined
		in the standard distribution.

PROC_TYPEOUT  - Enables "shell-command-with-typeout" which I consider a frill.

PROC_WRAP     - Enables "wrap-process-lines" which is only there to please
		Jonathan Payne :->

RALIGN_FILL   - Enables another frill, i.e., code to handle right-margin
		alignment during fill, as determined by the variable
		"ragged-right-fill".

RESHAPING     - This is for windowing systems, or systems that can change
		the terminal's screen resolution.  When the window size of
		the terminal jove is running in is changed a SIGWINCH is
		sent to all processes in the tty group.  This define
		enables code in jove to catch that signal and reshape
		its windows.

SELECTABLE    - This adds hooks to allow change of the character definition
		tables, i.e., switch the character set that is used by JOVE.
		For an example of this, see the codepage support in "msdos.c".

SKIPTABS      - This enables the "skip-partial-tabs" variable, which allows
		you to get the old behaviour {next,previous}-line commands
		on tabs.

STDBINDINGS   - Enables JOVEs "standard" bindings, i.e., the Delete key
		deletes backward instead of forward.  Surprisingly this
		is NOT defined by default, since I [TRH] like forward
		deletions better (see also EXTBINDINGS).

SPELL	      - Enables the spell-buffer and parse-spelling-errors commands.
	        They are nice especially if you have lots of paper writers.
		This assumes a separate program named "spell", which is
		standard on most UNIX systems.

TRACEMAC      - Enables verbose "trace-macro" code.

TTBUFSIZ=N    - Maximum size of the stdout file-buffer.  Its default
		value is 512.  If the write system call is relatively
		time-consuming and the screen update itself is fast, for
		example in a networking environment, it makes sense to
		increase this parameter.

VARTERM	      - This enables screen resizing on terminals that support it,
		using an extension of termcap (see the manual: screen-dense.)
		It implies TERMCAP and RESHAPING.

WINDOWS	      - Define this if JOVE has to support a graphic window with
		scroll-bars. This does NOT include the window-handling
		routines; it merely adds some hooks to facilitate their
		implementation. (Mac)

WIRED_TERMS   - Include compiled-in hard-wired code for certain terminals,
		like the Concept 100.  If you don't have these terminals,
		you probably don't need this (but no point in taking it
		out unless you're low on space).


UNIX considerations:
-------------------
Here are some things to consider for deciding where to put the tmp files.
TMPDIR is where the tmp files get stored, usually /tmp or /tmp/jove.  If
your system does not remove subdirectories of /tmp on reboot (lots do
remove them these days) then it makes sense to make TMPDIR be /tmp/jove.
But otherwise, if you want to recover buffers on system crashes, you
should ask your system administrator to put a line like:

	 (/usr/local/lib/jove/recover -syscrash) >/dev/console 2>&1

in the /etc/rc (or /etc/rc.local) file BEFORE /tmp is cleared, so that
you can recover files after reboots.  If your system has a network
administration daemon like Yellow Pages and you want users to receive
mail about recovered JOVE buffers, the recover command should come AFTER
the daemon is launched.  This may ultimately involve moving the command
that clears /tmp.  There should be a crontab entry to clear out old
files in /usr/preserve (or /tmp/jove).

For the 2.9bsd pdp11 version there is "make ovjove" using overlays.  It
has not been tested on this version of JOVE so I cannot give any
guarantee that it still works.

The 7th Edition pdp11 version is limited due to code-space limitations
(no comment-formatting, i-processes, right-margin-align or auto-scroll;
several other commands are not available or only in a slightly less
powerful form); it needs the private TERMCAP library.

VMS considerations:
------------------
The tmp files are created in SYS$SCRATCH:.  If the users' file quota are
small (which they usually are) it is a good idea to enable DYNCACHE.
Make on VMS is not called make but "mms" and has a non-standard Makefile
syntax (which figures since it's DEC).  JOVE needs the termcap library
AND the termcap interface to the SMG TERMTABLE routines "tsmgcap.c",
which are in the TERMCAP subdirectory.

MSDOS considerations:
--------------------
In order to compile JOVE you need a good make since Microsof's make
stinks.  For example the pdmake in the tools directory will do.

Where to put the TMP files?  If you have a hard-disk (and most MSDOS
systems have them these days) I suggest to create a directory C:\TMP
(this is the builtin tmp-file-pathname.)  If you have extended/expanded
memory and a ram-disk, you could consider placing them there to speed
things up.  However you risk losing your work if the system crashes (and
sooner or later it will!  It's MeSsyDOS, remember?).  Note that you can
set the environment variable TMP (or TMPDIR) to the desired directory.
If you have a floppy-only system you have to be careful not to remove
the data floppy once the tmp files are created or general disaster will
be the result.  JOVEs library directory is currently hardwired as
C:\ETC\JOVE (see tune.ct), but this can be changed by setting the
environment variable JOVEDIR to the desired directory.

Atari ST considerations:
-----------------------
See MSDOS above.  Fortunately for the floppy-only owners there are many
reset-resistant ram-disk programs available for the ST, which makes life
much easier.  Unfortunately the Desktop has no standard means to set
environment variables.  Therefore I wrote a special installation program
JINSTALL, which patches the tmp- and lib-dir paths into the executables.
(I'm sure you are able to guess by now which system I have on my desk 8-)

Macintosh considerations:
------------------------
The Mac version is NOT YET TESTED and probably (certainly) still needs
some work.  I included the original Mac port from Ken Mitchum in the
distribution to give some kind Mac guru the general idea of how to go
about installing it. (Any misconceptions about the Mac in the new code
are mea culpa, of course.) If there is a reliable way to find out if
there is any ram-disk volume that we could use as the TMP directory I'd
like to hear about it.

Known bugs.
----------
On VMS i-processes do not exit automatically when they're done.  The
technical reason for this is that DCL happily starts reading from the
input mailbox after completion of the initial command. I had to put in a
gruesome kludge to make at least "i-process-parse" work -- sorry for that.

Finally...
-------
(The following are excerpts from Jonathan's original README, modified
 where necessary to be up to date with my version -- TRH)

Bug reports:  If you find bugs in JOVE I would appreciate hearing about
them.  (My e-mail address is at end of this message.)  So, send me the bug
reports.  If the bug isn't already fixed, I will ask you to send me the
fix.  If you haven't found the bug, I may be able to, so don't wait until
you have found it.  If you make improvements to JOVE and want them
incorporated into the official version, send me a message explaining what
the change is, and I will decide whether I want to include it.  If it is
possible for your change to be #ifdef'd in, that would be best, since I
want to avoid making JOVE huge.  For instance, if it's a new package type
thing (say, like word abbrev. mode, or something) then it would be best
if that were a compile-time option.  I will send out periodic updates to
comp.sources.unix.  I will report all significant bug fixes there, and to
net.emacs as well.

The files "jove.ltx", "joveman.tex" and "jovecmds.tex" in DOC are the
official JOVE manual.  I [JP] got permission from Richard Stallman to
use his manual for the original EMACS, modifying it where necessary for
JOVE.  Lots of work was done by Brian Harvey on this manual. "make-tex"
in DOC is the makefile to format (and maintain) the manual.

For those poor souls that have to make do with arcane text formatters I
provided a sed script to mechanically convert the manual to {n,t}roff
source.  Cf. "make-tex jove.nro" or "make-tex print.nro".

There are man pages for jove and teachjove.  Teachjove is for people who
have never used EMACS style editors.  It is an interactive tutorial, THE
tutorial written by Stallman for the original EMACS, only slightly
modified for JOVE in the appropriate places.  The man pages are
completely up to date, thanks to me.

Thanks to Jay (hack) Fenlason for writing the original pty code.

Thanks to Dave Curry at Purdue for putting in tons of time and effort
into getting JOVE ready.  It just wouldn't be working without his help.

Thanks to Jeff Mc Carrell at Berkeley for finding bugs and adding
features, in particular, the comment formatter.

Thanks to Karl Gegenfurtner for making the original PC version.

Thanks to Ken Mitchum for the original Macintosh verison.

Thanks to Hugh Redelmeier for his input, his experience, countless bug
fixes, and ... that's it, I guess.

(Thanks to Brian Harvey for teaching me about linked lists ...)

Good luck, have fun.

	Jonathan Payne


Thanks to Gerben Wierda for many discussions and help with the MSDOS and
NeXT ports

Thanks to Erik-Jan Vens at ICCE for stimulating the IBM RT and VMS ports
and for providing a net address.

Thanks Jon,

	Tom Hageman (tom@basil.icce.rug.nl)