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