Dec 072017
Jonatha's Own Version of Emacs 4.14 source code.
File J414SRC.ZIP from The Programmer’s Corner in
Category C Source Code
Jonatha’s Own Version of Emacs 4.14 source code.
File Name File Size Zip Size Zip Type
ABBREV.C 6623 2380 deflated
ARGCOUNT.C 3088 1066 deflated
ARGCOUNT.H 955 377 deflated
ASK.C 12818 4589 deflated
BUF.C 13770 4390 deflated
BUF.H 6689 2319 deflated
C.C 18041 5931 deflated
CASE.C 3992 1349 deflated
CHARS.H 642 287 deflated
CTYPE.C 11029 1382 deflated
CTYPE.H 1839 679 deflated
DATAOBJ.H 1939 830 deflated
DELETE.C 7015 2373 deflated
DISP.C 30521 9700 deflated
DISP.H 1871 798 deflated
EXTEND.C 14484 5082 deflated
EXTERNS.H 14648 3778 deflated
FMT.C 8811 2548 deflated
FP.C 6918 2395 deflated
FP.H 2310 947 deflated
FUNCDEFS.C 15897 4034 deflated
GETCH.ASM 2385 708 deflated
GETCH.UNX 2528 964 deflated
INSERT.C 15528 5110 deflated
IO.C 30595 9962 deflated
IO.H 1964 774 deflated
IPROC.C 10445 3961 deflated
IPROC.H 1462 647 deflated
IPROCXPI.C 5800 2336 deflated
IPROCXPT.C 7945 2974 deflated
JOVE.C 29173 9525 deflated
JOVE.H 4378 1844 deflated
JOVE.LNK 432 237 deflated
JOVE.RC 46 46 stored
KBD.C 1283 655 deflated
KEYMAPS.C 12604 3958 deflated
KEYMAPS.H 1366 594 deflated
KEYS.TXT 31895 2955 deflated
LIST.C 1522 499 deflated
LIST.H 780 350 deflated
MAC.C 55809 16199 deflated
MAC.H 4686 1813 deflated
MACROS.C 8297 2640 deflated
MACVERT.C 3084 1242 deflated
MAKEFILE 1936 888 deflated
MAKEFILE.UNX 18174 4436 deflated
MARKS.C 4831 1538 deflated
MENUMAPS.TXT 2670 1091 deflated
MISC.C 5349 2084 deflated
MOVE.C 5051 1721 deflated
PARAGRAP.C 14938 4866 deflated
PCSCR.C 7389 2266 deflated
PORTSRV.C 3568 1479 deflated
PROC.C 19928 6778 deflated
RE.C 20418 6400 deflated
RE.H 1934 823 deflated
RE1.C 13747 4984 deflated
README 9404 4089 deflated
README.DOS 11253 4602 deflated
README.MAC 18397 7209 deflated
REC.C 4103 1564 deflated
REC.H 940 446 deflated
RECOVER.C 18552 6074 deflated
SCANDIR.C 5308 1678 deflated
SCANDIR.H 724 306 deflated
SCREEN.C 24620 6615 deflated
SCREEN.H 1303 517 deflated
SETMAPS.C 4170 1448 deflated
STYLE.H 656 286 deflated
SYSDEP.H 5315 1799 deflated
TEACHJOV.C 1168 532 deflated
TEMP.H 3597 1509 deflated
TERM.C 7127 2894 deflated
TERMCAP.H 2413 926 deflated
TTYSTATE.H 455 226 deflated
TUNE.C 890 445 deflated
TUNE.DOS 890 445 deflated
TUNE.H 2159 981 deflated
TUNE.TEM 1109 532 deflated
UTIL.C 18221 6215 deflated
UTIL.H 3272 1173 deflated
VARS.C 4860 1611 deflated
VARS.H 4353 1859 deflated
VERSION.C 517 235 deflated
WAIT.H 914 401 deflated
WIND.C 10890 3526 deflated
WIND.H 2097 827 deflated

Download File J414SRC.ZIP Here

Contents of the README file

# This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne. JOVE #
# is provided to you without charge, and with no warranty. You may give #
# away copies of JOVE, including sources, provided that this notice is #
# included in all the files. #

To make JOVE edit Makefile to set the right directories for the binaries,
on line documentation, the man pages, and the TMP files and select the
appropriate load command (see SEPFLAG in Makefile). (IMPORTANT! read the
Makefile carefully.) "tune.c" will be created from "tune.template" by
MAKE automatically, and it will use the directories you specified in the
Makefile. (NOTE: You should never edit tune.c directly because your
changes will be undone by the next make. If you want to make a change to
a part of tune.c that isn't a directory name, you should edit
tune.template.) Next you must edit "tune.h" selecting the compile time
options you care about. See below for a description of all the compile
time options. You can type "make" to compile XJOVE, PORTSRV (this is
compiled but not used on 4.2+ systems), RECOVER TEACHJOVE, and
MACVERT. NOTE: make won't work if it fires up /bin/csh for the shell
commands. Test them out to see if they work. If they do, type "make
install" to install everything where it belongs.

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 if you want to recover buffers on system crashes, you should put the
(echo preserving Jove files) >/dev/console
(cd /tmp; /usr/local/lib/jovelib/recover -syscrash) >/dev/console

in the /etc/rc file BEFORE /tmp is cleared, so that you can recover
files after reboots. There shoudl be a crontab entry to clear out
old files in /usr/preserve.

For the pdp11 version there is the Ovmakefile. This has only been tested
on 2.9bsd. It works pretty well, actually, and it is possible to turn on
all the compile time options with this version.

Bug reports: If you find bugs in JOVE I would appreciate hearing about
them. (My net 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.

Here's a list of the compile time options and what they mean:

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

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.

BIFF - This enables turning on and off BIFF so your screen doesn't
get messed up with messages from BIFF.

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.

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.

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

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.

IPROCS - Nice feature which lets you run interactive UNIX 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 systems with JOB_CONTROL since it relies on the fancy
signal mechanism.

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.

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 on PDP-11's.

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 yourchoice ... 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.

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 program will have to be made, and
all communication between jove and i-procs will be done using

RESHAPING - This is for BRL or Berkeley 4.3 and 2.10 systems. 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.

SPELL - Enables the spell-buffer and parse-spelling-errors commands.
They are nice especially if you have lots of paper writers.

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).

The macros have been rewritten from scratch. The most noteable change is
that they are no longer stored in binary files. The write-macros-to-file
command writes a file which is suitable for use with the source command.
So you can have actual macro definitions in your .joverc if you want. If
you have lots of macros defined in the old format, you can use the
macvert program to convert them to the new style. You say
macvert old-style-macros-file > new-style-macro-file

"doc/system.rc" and "doc/example.rc" are jove initialization files.
"system.rc" is the "system" rc file here at UoR, and it gets ready every
time JOVE starts up FOR EVERYONE. ("make install" should copy the
system-wide .joverc to the right place automatically.) After that JOVE
reads an initialization file in the user's home directory. "example.rc"
is my personal .joverc.

The files "jove.[12345]" in DOC are the official JOVE manual. I 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.

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 PC version.

Thanks to Ken Mitchum for the 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 ([email protected] until further notice 🙂

 December 7, 2017  Add comments

Leave a Reply