jove 4.12 on SCO Xenix 286 ?

Jeffery A Buhrt buhrt at sawmill.UUCP
Tue Apr 11 01:11:02 AEST 1989


I have jove4.12 running on a sequent symmetry, AT&T 3b1 (blah), and
Uport 2.4 on a '286 (changes should also apply to xenix).

Things in that area are int vs (char *), a pointer comparision out
of the current segment, minor preprocessor bugs (order dependent stuff),
plus some other little things....

As for the sysV i-shells, it is great to have them put BACK into jove...
Yes back, 4.[56] had working i-shells but they soon were removed.

sysV:
1) Things to make sure: kbd && portsrv MUST be in place (/usr/local/lib/jove)
before starting an i-proc (the exec messages by default don't help).

2) If size_t is not defined in sys/types.h (uport doesn't), define it to
	be int (yes int).

3) I included the 3b1 and uport specific files for reference from each port.

Bugs/things to do:
1) (sysV) If you have an iproc running and pause jove (ie: push a shell)
	kbd will still be left running....
	(this means it will fight for the keyboard)
	I have tried calling kbd_{strt, stop} to get around this
	but kbd then dies when the kbd_strt() is called on the way back in.
	I haven't had enough time to track this one down yet (ideas?)


2) (gen) The IPROCS define is recursive between tune.h and sysdep.h, for
	now patched by having a second copy of the define.

3) (sysV) recover doesn't compile....
	I have a working version from jove.? and haven't yet even tried
	the 4.12 version.

4) (uport) term.c the code:
	if (termp > tspace+ sizeof(tspace))
		goto wimperr;
	core dumps on a '286, didn't even try to fix.

5) As Jonathan pointed out, the docs are out of date w/ the new features.

6) I still don't have it compiling on a 3b2 yet.... Whenever time permits.


						-Jeff Buhrt
						Grauel Ent., Inc.
						(317) 477-6000
		{newton.physics.purdue.edu (aka: pur-phy), sequent, ...}!
						sawmill!buhrt

Here is my .joverc (the process-bind-to-keys are needed to use i-shells)
----
auto-execute-command show-match-mode .*$
auto-execute-command auto-indent-mode .*\.[chyls]$
auto-execute-command auto-fill-mode /tmp/Re\|/tmp/article
auto-execute-command show-match .*\.[lchyf]$\|.*\.lisp$\|.*\.scm$
auto-execute-command c-mode .*\.[chy]$
auto-execute-command lisp-mode .*\.l$\|.*\.lisp$\|.*\.scm$

set make-backup-files on
set mode-line-should-standout off
set paren-flash-delay 2

make-keymap prefix3
bind-keymap-to-key prefix3 ^C
bind-to-key exit-jove ^X^Z
bind-to-key buffer-position ^X=
bind-to-key fill-comment ^Xj
bind-to-key filter-region ^C^F
bind-to-key i-search-forward ^S
bind-to-key i-search-forward ^\
bind-to-key i-search-reverse ^R
bind-to-key pause-jove ^C^Z
bind-to-key pause-jove ^[S
bind-to-key pause-jove ^[s

process-bind-to-key interrupt-process ^C
process-bind-to-key process-newline ^M

set mode-line %3c %[%sJOVE (%M) Buffer: %b "%f" %]%s%m*- %((%t %l)%s%)%e
-----

*** Diffs from my sequent/3b1/uport version to 4.12 

# This is a shell archive.  Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
#
# Wrapped by sawmill!buhrt on Mon Apr 10 09:05:50 EST 1989
# Contents:  Makefile Makefile.uport extend.c fp.h io.h iproc-pipes.c iproc.c
#	iproc.h jove.h malloc.c portsrv.c proc.c sysdep.3b1 sysdep.h
#	sysdep.uport term.c tune.3b1 tune.h tune.uport util.c
 
echo x - Makefile
sed 's/^@//' > "Makefile" <<'@//E*O*F Makefile//'
*** Makefile	Thu Mar  2 20:39:18 1989
--- ../Makefile	Fri Mar 31 14:00:34 1989
***************
*** 17,29
  # JOVE, RECOVER and TEACHJOVE.  MANEXT is the extension for the man pages,
  # e.g., jove.1 or jove.l or jove.m.
  
  DESTDIR =
  TMPDIR = /tmp
! LIBDIR = /home/chacha/jpayne/lib/jove
! BINDIR = /home/chacha/jpayne/bin
! MANDIR = /home/chacha/jpayne/lib/manl
  MANEXT = l
  JSHELL = /bin/csh
  
  # These should all just be right if the above ones are.
  JOVE = $(DESTDIR)$(BINDIR)/jove

--- 17,29 -----
  # JOVE, RECOVER and TEACHJOVE.  MANEXT is the extension for the man pages,
  # e.g., jove.1 or jove.l or jove.m.
  
  DESTDIR =
  TMPDIR = /tmp
! LIBDIR = /usr/local/lib/jove
! BINDIR = /usr/local/bin
! MANDIR = /usr/man/manl
  MANEXT = l
  JSHELL = /bin/ksh
  
  # These should all just be right if the above ones are.
  JOVE = $(DESTDIR)$(BINDIR)/jove
***************
*** 21,31
  TMPDIR = /tmp
  LIBDIR = /home/chacha/jpayne/lib/jove
  BINDIR = /home/chacha/jpayne/bin
  MANDIR = /home/chacha/jpayne/lib/manl
  MANEXT = l
! JSHELL = /bin/csh
  
  # These should all just be right if the above ones are.
  JOVE = $(DESTDIR)$(BINDIR)/jove
  TEACHJOVE = $(DESTDIR)$(BINDIR)/teachjove
  RECOVER = $(DESTDIR)$(LIBDIR)/recover

--- 21,31 -----
  TMPDIR = /tmp
  LIBDIR = /usr/local/lib/jove
  BINDIR = /usr/local/bin
  MANDIR = /usr/man/manl
  MANEXT = l
! JSHELL = /bin/ksh
  
  # These should all just be right if the above ones are.
  JOVE = $(DESTDIR)$(BINDIR)/jove
  TEACHJOVE = $(DESTDIR)$(BINDIR)/teachjove
  RECOVER = $(DESTDIR)$(LIBDIR)/recover
@//E*O*F Makefile//
chmod u=rw,g=rw,o=r Makefile
 
echo x - Makefile.uport
sed 's/^@//' > "Makefile.uport" <<'@//E*O*F Makefile.uport//'
###########################################################################
# 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.                                              #
###########################################################################

# 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 create a
# directory that doesn't get clearned upon reboot, and use that instead.
# You would probably want to clean out that directory periodically with
# /etc/cron.  LIBDIR is for online documentation, the PORTSRV process,
# RECOVER, and the system-wide .joverc file.  BINDIR is where to put the
# executables JOVE and TEACHJOVE.  MANDIR is where the manual pages go for
# JOVE, RECOVER and TEACHJOVE.  MANEXT is the extension for the man pages,
# e.g., jove.1 or jove.l or jove.m.

DESTDIR =
TMPDIR = /tmp
LIBDIR = /usr/local/lib/jove
BINDIR = /usr/local/bin
MANDIR = /usr/man/manl
MANEXT = l
JSHELL = /bin/csh

# These should all just be right if the above ones are.
JOVE = $(DESTDIR)$(BINDIR)/jove
TEACHJOVE = $(DESTDIR)$(BINDIR)/teachjove
RECOVER = $(DESTDIR)$(LIBDIR)/recover
PORTSRV = $(DESTDIR)$(LIBDIR)/portsrv
KBD = $(DESTDIR)$(LIBDIR)/kbd
JOVERC = $(DESTDIR)$(LIBDIR)/jove.rc
CMDS.DOC = $(DESTDIR)$(LIBDIR)/cmds.doc
TEACH-JOVE = $(DESTDIR)$(LIBDIR)/teach-jove
JOVEM = $(DESTDIR)$(MANDIR)/jove.$(MANEXT)
TEACHJOVEM = $(DESTDIR)$(MANDIR)/teachjove.$(MANEXT)

# Select the right libraries for your system.
#	2.10BSD:LIBS = -ltermcap
#	v7:	LIBS = -ltermcap
#	4.1BSD:	LIBS = -ltermcap -ljobs
#	4.2BSD:	LIBS = -ltermcap
#	4.3BSD:	LIBS = -ltermcap
#	SysV Rel. 2: LIBS = -lcurses
#	SCO Xenix: LIBS = -ltermcap -lx

LIBS = -lcurses

# If you are not VMUNIX (vax running Berkeley Version 4), you must specify
# the -i flags (split I/D space) and maybe the -x option (for adb to work).
#	2.10BSD:LDFLAGS =
#	v7:	LDFLAGS =
#	4.1BSD:	LDFLAGS =
#	4.2BSD:	LDFLAGS =
#	4.3BSD:	LDFLAGS =
#	SysV Rel. 2: LDFLAGS = -Ml
#	SCO Xenix: LDFLAGS = -Ml -F 3000
#
# SEPFLAG should be:
#	not on a PDP-11:		SEPFLAG =
#	PDP-11 with separate I&D:	SEPFLAG = -i
#	PDP-11 without separate I&D:	SEPFLAG = -n
#

LDFLAGS = -Ml

SEPFLAG =

# for SCO Xenix, set
#	MEMFLAGS = -Mle
#	CFLAGS = -LARGE -O -F 3000 -K -Mle  (say -Mle2 for an 80286)

#CFLAGS = -O -Ml -DSigHold(x)="" -DSigRelse(x)="" -DSIGCHLD=SIGCLD -DUPORT
CFLAGS = -Ml -DSIGCHLD=SIGCLD -DUPORT

BASESEG = funcdefs.o keys.o argcount.o ask.o buf.o ctype.o delete.o \
	  disp.o insert.o io.o jove.o malloc.o marks.o misc.o re.o \
	  screen.o tune.o util.o vars.o version.o list.o keymaps.o dup2.o
OVLAY1 = abbrev.o rec.o paragraph.o fmt.o
OVLAY2 = c.o wind.o fp.o move.o
OVLAY3 = extend.o macros.o
OVLAY4 = iproc.o re1.o
OVLAY5 = proc.o scandir.o term.o case.o

OBJECTS = $(BASESEG) $(OVLAY1) $(OVLAY2) $(OVLAY3) $(OVLAY4) $(OVLAY5)

C_SRC = funcdefs.c abbrev.c argcount.c ask.c buf.c c.c case.c ctype.c \
	delete.c disp.c extend.c fp.c fmt.c insert.c io.c iproc.c \
	jove.c list.c macros.c malloc.c marks.c misc.c move.c paragraph.c \
	proc.c re.c re1.c rec.c scandir.c screen.c term.c util.c \
	vars.c version.c wind.c getch.c mac.c keymaps.c pcscr.c

SOURCES = $(C_SRC) portsrv.c recover.c setmaps.c teachjove.c kbd.c

HEADERS = argcount.h buf.h chars.h ctype.h dataobj.h disp.h \
	externs.h fp.h io.h iproc.h jove.h keymaps.h list.h mac.h \
	re.h rec.h scandir.h screen.h style.h sysdep.h temp.h termcap.h \
	ttystate.h tune.h util.h vars.h wait.h wind.h


DOCS1 =	doc/example.rc doc/jove.1 doc/jove.2 doc/jove.3 \
	doc/jove.4 doc/jove.5 doc/jove.nr doc/system.rc \
	doc/teach-jove doc/teachjove.nr doc/README doc/jove.qref
DOCS2 = doc/cmds.doc.nr
DOCS3 = doc/joveman doc/cmds.doc doc/manpage
DOCS = $(DOCS1) $(DOCS2)

MISC = Makefile Makefile.dos tune.dos tune.template README Readme.dos \
	Readme.mac iproc-pipes.c iproc-ptys.c

SUPPORT = teachjove.c recover.c setmaps.c portsrv.c kbd.c keys.txt \
	macvert.c menumaps.txt mjovers.Hqx

BACKUPS = $(HEADERS) $(C_SRC) $(DOCS) $(SUPPORT) $(MISC)

all:	sdate xjove recover teachjove portsrv kbd macvert edate

sdate:
	@echo "**** make started at `date` ****"

edate:
	@echo "**** make completed at `date` ****"

xjove:	$(OBJECTS)
	$(CC) $(LDFLAGS) -o xjove $(OBJECTS) $(LIBS)
	@-size xjove

gjove:	$(OBJECTS)
	ld -X /lib/gcrt0.o -o gjove $(OBJECTS) -lc $(LIBS)
	@-size gjove

ovjove:	$(OBJECTS)
	ld $(SEPFLAG) $(LDFLAGS) -X /lib/crt0.o \
		-Z $(OVLAY1) \
		-Z $(OVLAY2) \
		-Z $(OVLAY3) \
		-Z $(OVLAY4) \
		-Z $(OVLAY5) \
		-Y $(BASESEG) \
		-o xjove $(LIBS) -lc
	@-size xjove

portsrv:	portsrv.o dup2.o
	$(CC) $(LDFLAGS) -o portsrv $(SEPFLAG) portsrv.o dup2.o $(LIBS)

kbd:	kbd.o
	$(CC) $(LDFLAGS) -o kbd $(SEPFLAG) kbd.o $(LIBS)

recover:	recover.o tune.o rec.h temp.h
	$(CC) $(LDFLAGS) -o recover $(SEPFLAG) recover.o tune.o $(LIBS)

teachjove:	teachjove.o
	$(CC) $(LDFLAGS) -o teachjove $(SEPFLAG) teachjove.o $(LIBS)

setmaps:	setmaps.o funcdefs.c
	$(CC) -o setmaps setmaps.o

teachjove.o:	teachjove.c /usr/include/sys/types.h /usr/include/sys/file.h
	cc -c $(CFLAGS) -DTEACHJOVE=\"$(TEACH-JOVE)\" teachjove.c

# don't optimize setmaps.c because it produces bad code in some places
# for some reason
setmaps.o:	funcdefs.c keys.txt
	$(CC) $(MEMFLAGS) -c setmaps.c

# ignore error messages from setmaps
# it doesn't understand ifdefs

keys.c:	setmaps keys.txt
	-./setmaps < keys.txt > keys.c

keys.o:	keys.c jove.h

tune.c: Makefile tune.template
	@echo "/* Changes should be made in Makefile, not to this file! */" > tune.c
	@echo "" >> tune.c
	@sed -e 's;TMPDIR;$(TMPDIR);' \
	     -e 's;LIBDIR;$(LIBDIR);' \
	     -e 's;BINDIR;$(BINDIR);' \
	     -e 's;SHELL;$(JSHELL);' tune.template >> tune.c

iproc.o: iproc-ptys.c iproc-pipes.c iproc.c
	$(CC) -c $(CFLAGS) iproc.c

macvert:	macvert.c
	$(CC) $(CFLAGS) -o macvert macvert.c

# install doesn't work for Xenix (no install program)

install: $(DESTDIR)$(LIBDIR) $(TEACH-JOVE) $(CMDS.DOC) $(JOVERC) \
	 $(PORTSRV) $(KBD) $(RECOVER) $(JOVE) $(TEACHJOVE) $(JOVEM) \
	 $(RECOVERM) $(TEACHJOVEM)

$(DESTDIR)$(LIBDIR):
	-mkdir $(DESTDIR)$(LIBDIR)

$(TEACH-JOVE): doc/teach-jove
	install -c -m 644 doc/teach-jove $(TEACH-JOVE)

doc/cmds.doc:	doc/cmds.doc.nr doc/jove.4 doc/jove.5
	nroff doc/cmds.doc.nr doc/jove.4 doc/jove.5 > doc/cmds.doc

$(CMDS.DOC): doc/cmds.doc
	install -c -m 644 doc/cmds.doc $(CMDS.DOC)

$(JOVERC): doc/system.rc
	install -c -m 644 doc/system.rc $(JOVERC)

$(PORTSRV): portsrv
	install -c -s -m 755 portsrv $(PORTSRV)

$(KBD): kbd
	install -c -s -m 755 kbd $(KBD)

$(RECOVER): recover
	install -c -s -m 755 recover $(RECOVER)

$(JOVE): xjove
	install -c -m 755 xjove $(JOVE)

$(TEACHJOVE): teachjove
	install -c -s -m 755 teachjove $(TEACHJOVE)

$(JOVEM): doc/jove.nr
	@sed -e 's;TMPDIR;$(TMPDIR);' \
	     -e 's;LIBDIR;$(LIBDIR);' \
	     -e 's;SHELL;$(JSHELL);' doc/jove.nr > /tmp/jove.nr
	install -m 644 /tmp/jove.nr $(JOVEM)

$(TEACHJOVEM): doc/teachjove.nr
	@sed -e 's;TMPDIR;$(TMPDIR);' \
	     -e 's;LIBDIR;$(LIBDIR);' \
	     -e 's;SHELL;$(JSHELL);' doc/teachjove.nr > /tmp/teachjove.nr
	install -m 644 /tmp/teachjove.nr $(TEACHJOVEM)

echo:
	@echo $(C-FILES) $(HEADERS)

lint:
	lint -n $(C_SRC) tune.c keys.c
	@echo Done

tags:
	ctags -w $(C_SRC) $(HEADERS) iproc-ptys.c

ciall:
	ci $(BACKUPS)

coall:
	co $(BACKUPS)

jove.shar:
	shar $(BACKUPS) > jove.shar

backup: $(BACKUPS)
	tar chf backup $(BACKUPS)

tape-backup:
	tar c $(BACKUPS)

srcdownload:
	kermit -s $(SUPPORT) $(MISC) $(HEADERS) $(C_SRC)

docdownload:
	kermit -s $(DOCS1) $(DOCS3)
	kermit -s doc/cmds.doc.nr -a cmdsdoc.nr

touch:
	touch $(OBJECTS)

clean:
	rm -f a.out core *.o keys.c tune.c xjove portsrv kbd recover setmaps \
	teachjove macvert

# This version only works under 4.3BSD
# To enable, remove single # from start of following lines
depend:
	for i in ${SOURCES} ; do \
		cc -M ${CFLAGS} $$i | \
		awk ' /[/]usr[/]include/ { next } \
			{ if ($$1 != prev) \
		    { if (rec != "") print rec; rec = $$0; prev = $$1; } \
		    else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
		    else rec = rec " " $$2 } } \
		    END { print rec } ' >> makedep; \
	done
	echo '$$a' >eddep
	echo '' >>eddep
	echo '.' >>eddep
	echo '/^# DO NOT DELETE THIS LINE/+1,$$d' >>eddep
	echo '$$r makedep' >>eddep
	echo 'w' >>eddep
	cp Makefile Makefile.bak
	ed - Makefile < eddep
	rm eddep makedep
	echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
	echo '# see make depend above' >> Makefile

# DO NOT DELETE THIS LINE -- make depend uses it
funcdefs.o: funcdefs.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h
funcdefs.o: ./iproc.h ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h
funcdefs.o: ./screen.h ./style.h ./externs.h ./ctype.h
abbrev.o: abbrev.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h
abbrev.o: ./iproc.h ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h
abbrev.o: ./screen.h ./style.h ./externs.h ./fp.h ./ctype.h
argcount.o: argcount.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h
argcount.o: ./iproc.h ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h
argcount.o: ./screen.h ./style.h ./externs.h
ask.o: ask.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
ask.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
ask.o: ./style.h ./externs.h ./termcap.h ./ctype.h ./chars.h ./disp.h
buf.o: buf.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
buf.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
buf.o: ./style.h ./externs.h ./ctype.h ./disp.h
c.o: c.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
c.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
c.o: ./style.h ./externs.h ./re.h ./ctype.h
case.o: case.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
case.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
case.o: ./style.h ./externs.h ./disp.h ./ctype.h
ctype.o: ctype.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
ctype.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
ctype.o: ./style.h ./externs.h ./ctype.h
delete.o: delete.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h
delete.o: ./iproc.h ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h
delete.o: ./screen.h ./style.h ./externs.h ./disp.h
disp.o: disp.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
disp.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
disp.o: ./style.h ./externs.h ./ctype.h ./termcap.h ./chars.h ./fp.h ./disp.h
extend.o: extend.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h
extend.o: ./iproc.h ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h
extend.o: ./screen.h ./style.h ./externs.h ./fp.h ./termcap.h ./ctype.h
extend.o: ./chars.h ./disp.h
fp.o: fp.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
fp.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
fp.o: ./style.h ./externs.h ./fp.h ./ctype.h ./termcap.h
fmt.o: fmt.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
fmt.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
fmt.o: ./style.h ./externs.h ./fp.h ./termcap.h ./ctype.h ./disp.h
insert.o: insert.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h
insert.o: ./iproc.h ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h
insert.o: ./screen.h ./style.h ./externs.h ./ctype.h ./list.h ./chars.h
insert.o: ./disp.h
io.o: io.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
io.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
io.o: ./style.h ./externs.h ./list.h ./fp.h ./termcap.h ./ctype.h ./disp.h
io.o: ./io.h ./temp.h
iproc.o: iproc.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
iproc.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
iproc.o: ./style.h ./externs.h ./re.h ./ctype.h ./disp.h ./iproc-ptys.c
iproc.o: ./wait.h
jove.o: jove.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
jove.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
jove.o: ./style.h ./externs.h ./fp.h ./termcap.h ./ctype.h ./chars.h ./disp.h
list.o: list.c ./list.h ./tune.h ./sysdep.h
macros.o: macros.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h
macros.o: ./iproc.h ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h
macros.o: ./screen.h ./style.h ./externs.h ./ctype.h ./fp.h ./chars.h ./disp.h
malloc.o: malloc.c ./tune.h ./sysdep.h
marks.o: marks.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
marks.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
marks.o: ./style.h ./externs.h
misc.o: misc.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
misc.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
misc.o: ./style.h ./externs.h ./ctype.h
move.o: move.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
move.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
move.o: ./style.h ./externs.h ./re.h ./ctype.h
paragraph.o: paragraph.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h
paragraph.o: ./iproc.h ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h
paragraph.o: ./screen.h ./style.h ./externs.h
proc.o: proc.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
proc.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
proc.o: ./style.h ./externs.h ./ctype.h ./fp.h ./re.h ./termcap.h ./wait.h
re.o: re.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
re.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
re.o: ./style.h ./externs.h ./re.h ./ctype.h
re1.o: re1.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
re1.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
re1.o: ./style.h ./externs.h ./fp.h ./re.h ./ctype.h ./chars.h ./disp.h
rec.o: rec.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
rec.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
rec.o: ./style.h ./externs.h ./fp.h ./rec.h
scandir.o: scandir.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h
scandir.o: ./iproc.h ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h
scandir.o: ./screen.h ./style.h ./externs.h
screen.o: screen.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h
screen.o: ./iproc.h ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h
screen.o: ./screen.h ./style.h ./externs.h ./fp.h ./ctype.h ./termcap.h
screen.o: ./disp.h
term.o: term.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
term.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
term.o: ./style.h ./externs.h ./fp.h ./termcap.h
util.o: util.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
util.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
util.o: ./style.h ./externs.h ./ctype.h ./termcap.h ./disp.h
vars.o: vars.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
vars.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
vars.o: ./style.h ./externs.h
version.o: version.c
wind.o: wind.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
wind.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
wind.o: ./style.h ./externs.h ./termcap.h ./chars.h ./disp.h
getch.o: getch.c ./tune.h ./sysdep.h
mac.o: mac.c ./tune.h ./sysdep.h
keymaps.o: keymaps.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h
keymaps.o: ./iproc.h ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h
keymaps.o: ./screen.h ./style.h ./externs.h ./list.h ./fp.h ./termcap.h
keymaps.o: ./chars.h
pcscr.o: pcscr.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h ./iproc.h
pcscr.o: ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h ./screen.h
pcscr.o: ./style.h ./externs.h
portsrv.o: portsrv.c ./tune.h ./sysdep.h
recover.o: recover.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h ./io.h
recover.o: ./iproc.h ./dataobj.h ./keymaps.h ./argcount.h ./util.h ./vars.h
recover.o: ./screen.h ./style.h ./externs.h ./temp.h ./rec.h ./ctype.h
setmaps.o: setmaps.c ./funcdefs.c ./jove.h ./tune.h ./sysdep.h ./buf.h ./wind.h
setmaps.o: ./io.h ./iproc.h ./dataobj.h ./keymaps.h ./argcount.h ./util.h
setmaps.o: ./vars.h ./screen.h ./style.h ./externs.h ./ctype.h
teachjove.o: teachjove.c
kbd.o: kbd.c ./tune.h ./sysdep.h
# DEPENDENCIES MUST END AT END OF FILE
# IF YOU PUT STUFF HERE IT WILL GO AWAY
# see make depend above
@//E*O*F Makefile.uport//
chmod u=rw,g=r,o=r Makefile.uport
 
echo x - extend.c
sed 's/^@//' > "extend.c" <<'@//E*O*F extend.c//'
*** extend.c	Tue Feb 28 15:54:33 1989
--- ../extend.c	Thu Apr  6 13:21:41 1989
***************
*** 11,21
  #include "ctype.h"
  #include "chars.h"
  #include "disp.h"
  #include "re.h"
  
! #ifdef JOB_CONTROL
  # include <signal.h>
  #endif
  
  #ifdef MAC
  # include "mac.h"

--- 11,21 -----
  #include "ctype.h"
  #include "chars.h"
  #include "disp.h"
  #include "re.h"
  
! #if defined JOB_CONTROL || defined IPROCS
  # include <signal.h>
  #endif
  
  #ifdef MAC
  # include "mac.h"
@//E*O*F extend.c//
chmod u=rw,g=rw,o=r extend.c
 
echo x - fp.h
sed 's/^@//' > "fp.h" <<'@//E*O*F fp.h//'
*** fp.h	Tue Feb 28 15:54:34 1989
--- ../fp.h	Thu Apr  6 16:27:12 1989
***************
*** 3,12
   * 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.                                              *
   ***************************************************************************/
  
  extern void	putchar proto((int c));	/* hidden by macro */
  
  #define putchar(c)	putc(c, stdout)
  #define putc(c, fp)	(--(fp)->f_cnt >= 0 ? (*(fp)->f_ptr++ = (c)) : _flush((c), fp))
  #define getc(fp)	(((--(fp)->f_cnt < 0) ? filbuf(fp) : *(fp)->f_ptr++))

--- 3,16 -----
   * 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.                                              *
   ***************************************************************************/
  
+ #ifndef FPDEFINED
+ 
+ #define FPDEFINED
+ 
  extern void	putchar proto((int c));	/* hidden by macro */
  
  #define putchar(c)	putc(c, stdout)
  #define putc(c, fp)	(--(fp)->f_cnt >= 0 ? (*(fp)->f_ptr++ = (c)) : _flush((c), fp))
  #define getc(fp)	(((--(fp)->f_cnt < 0) ? filbuf(fp) : *(fp)->f_ptr++))
***************
*** 10,20
  #define putchar(c)	putc(c, stdout)
  #define putc(c, fp)	(--(fp)->f_cnt >= 0 ? (*(fp)->f_ptr++ = (c)) : _flush((c), fp))
  #define getc(fp)	(((--(fp)->f_cnt < 0) ? filbuf(fp) : *(fp)->f_ptr++))
  #define f_eof(fp)	(fp->f_flags & F_EOF)
  
! typedef struct file {
  	int	f_cnt,		/* number of characters left in buffer */
  		f_bufsize,	/* size of what f_base points to */
  		f_fd,		/* fildes */
  		f_flags;	/* various flags */
  	char	*f_ptr,		/* current offset */

--- 14,24 -----
  #define putchar(c)	putc(c, stdout)
  #define putc(c, fp)	(--(fp)->f_cnt >= 0 ? (*(fp)->f_ptr++ = (c)) : _flush((c), fp))
  #define getc(fp)	(((--(fp)->f_cnt < 0) ? filbuf(fp) : *(fp)->f_ptr++))
  #define f_eof(fp)	(fp->f_flags & F_EOF)
  
! typedef struct jove_file {
  	int	f_cnt,		/* number of characters left in buffer */
  		f_bufsize,	/* size of what f_base points to */
  		f_fd,		/* fildes */
  		f_flags;	/* various flags */
  	char	*f_ptr,		/* current offset */
***************
*** 67,71
  	flush proto((File *fp)),
  	flusho proto((void)),
  	fputnchar proto((char *s,int n,File *fp)),
  	gc_openfiles proto((void)),
  	putstr proto((char *s));

--- 71,76 -----
  	flush proto((File *fp)),
  	flusho proto((void)),
  	fputnchar proto((char *s,int n,File *fp)),
  	gc_openfiles proto((void)),
  	putstr proto((char *s));
+ #endif /* !FPDEFINED */
@//E*O*F fp.h//
chmod u=rw,g=rw,o=r fp.h
 
echo x - io.h
sed 's/^@//' > "io.h" <<'@//E*O*F io.h//'
*** io.h	Tue Feb 28 15:54:38 1989
--- ../io.h	Thu Apr  6 10:34:07 1989
***************
*** 21,31
  extern char
  	*lbptr proto((struct line *line)),
  	*pr_name proto((char *fname,int okay_home)),
  	*sprint proto((char *, ...));
  
! extern struct file
  	*open_file proto((char *fname,char *buf,int how,int complainifbad,int loudness));
  
  extern void
  	setCWD proto((char *d)),
  	getCWD proto((void)),

--- 21,31 -----
  extern char
  	*lbptr proto((struct line *line)),
  	*pr_name proto((char *fname,int okay_home)),
  	*sprint proto((char *, ...));
  
! extern struct jove_file
  	*open_file proto((char *fname,char *buf,int how,int complainifbad,int loudness));
  
  extern void
  	setCWD proto((char *d)),
  	getCWD proto((void)),
@//E*O*F io.h//
chmod u=rw,g=rw,o=r io.h
 
echo x - iproc-pipes.c
sed 's/^@//' > "iproc-pipes.c" <<'@//E*O*F iproc-pipes.c//'
*** iproc-pipes.c	Tue Feb 28 15:54:38 1989
--- ../iproc-pipes.c	Mon Apr 10 08:46:20 1989
***************
*** 122,132
  		p->p_toproc = -1;	/* writes will fail */
  		NumProcs -= 1;
  	}
  }
  
! void void
  proc_write(p, buf, nbytes)
  Process	*p;
  char	*buf;
  int	nbytes;
  {

--- 122,132 -----
  		p->p_toproc = -1;	/* writes will fail */
  		NumProcs -= 1;
  	}
  }
  
! void
  proc_write(p, buf, nbytes)
  Process	*p;
  char	*buf;
  int	nbytes;
  {
***************
*** 181,191
  	}
  
  	newp = (Process *) malloc(sizeof *newp);
  	newp->p_next = procs;
  	newp->p_state = NEW;
! 	newp->p_cmd = 0;
  
  	cmdbuf[0] = '\0';
  	va_init(ap, clobber);
  	while (cp = va_arg(ap, char *))
  		swritef(&cmdbuf[strlen(cmdbuf)], "%s ", cp);

--- 181,191 -----
  	}
  
  	newp = (Process *) malloc(sizeof *newp);
  	newp->p_next = procs;
  	newp->p_state = NEW;
! /*	newp->p_cmd = 0;*/
  
  	cmdbuf[0] = '\0';
  	va_init(ap, clobber);
  	while (cp = va_arg(ap, char *))
  		swritef(&cmdbuf[strlen(cmdbuf)], "%s ", cp);
***************
*** 235,245
  	if (kbd_pid == 0) {
  		signal(SIGINT, SIG_IGN);
  		signal(SIGALRM, SIG_IGN);
  		close(1);
  		dup(ProcOutput);
! 		execl(Kbd_Proc, "kbd", 0);
  		exit(-1);
  	}
  }
  
  private int	kbd_state = OFF;

--- 235,245 -----
  	if (kbd_pid == 0) {
  		signal(SIGINT, SIG_IGN);
  		signal(SIGALRM, SIG_IGN);
  		close(1);
  		dup(ProcOutput);
! 		execl(Kbd_Proc, "kbd", (char *)0);
  		exit(-1);
  	}
  }
  
  private int	kbd_state = OFF;
@//E*O*F iproc-pipes.c//
chmod u=rw,g=rw,o=r iproc-pipes.c
 
echo x - iproc.c
sed 's/^@//' > "iproc.c" <<'@//E*O*F iproc.c//'
*** iproc.c	Tue Feb 28 15:54:39 1989
--- ../iproc.c	Mon Apr 10 08:46:28 1989
***************
*** 174,183
  register Process	*p;
  int	sig;
  {
  	if (isdead(p))
  		return;
  	if (killpg(p->p_pid, sig) == -1)
  		s_mess("Cannot kill %s!", proc_buf(p));
  }
  
  /* Free process CHILD.  Do all the necessary cleaning up (closing fd's,

--- 174,186 -----
  register Process	*p;
  int	sig;
  {
  	if (isdead(p))
  		return;
+ #if defined u3b1 || defined UPORT
+ 	if (kill(p->p_pid, sig) == -1)
+ #else
  	if (killpg(p->p_pid, sig) == -1)
  #endif /* u3b1 || UPORT */
  		s_mess("Cannot kill %s!", proc_buf(p));
  }
  
***************
*** 175,184
  int	sig;
  {
  	if (isdead(p))
  		return;
  	if (killpg(p->p_pid, sig) == -1)
  		s_mess("Cannot kill %s!", proc_buf(p));
  }
  
  /* Free process CHILD.  Do all the necessary cleaning up (closing fd's,
     etc.). */

--- 178,188 -----
  		return;
  #if defined u3b1 || defined UPORT
  	if (kill(p->p_pid, sig) == -1)
  #else
  	if (killpg(p->p_pid, sig) == -1)
+ #endif /* u3b1 || UPORT */
  		s_mess("Cannot kill %s!", proc_buf(p));
  }
  
  /* Free process CHILD.  Do all the necessary cleaning up (closing fd's,
     etc.). */
***************
*** 402,412
  private int
  proc_child()
  {
  	union wait	w;
  	register int	pid;
! 
  	for (;;) {
  #ifndef BSD4_2
  		pid = wait2(&w.w_status, (WNOHANG | WUNTRACED));
  #else
  		pid = wait3(&w, (WNOHANG | WUNTRACED), (struct rusage *) 0);

--- 406,419 -----
  private int
  proc_child()
  {
  	union wait	w;
  	register int	pid;
! #if defined u3b1 || defined UPORT
! 	pid = wait();
! 	kill_off(pid, w);
! #else
  	for (;;) {
  #ifndef BSD4_2
  		pid = wait2(&w.w_status, (WNOHANG | WUNTRACED));
  #else
  		pid = wait3(&w, (WNOHANG | WUNTRACED), (struct rusage *) 0);
***************
*** 413,422
  #endif
  		if (pid <= 0)
  			break;
  		kill_off(pid, w);
  	}
  	return 0;	/* signal handlers return something! */
  }
  
  void
  kill_off(pid, w)

--- 420,430 -----
  #endif
  		if (pid <= 0)
  			break;
  		kill_off(pid, w);
  	}
+ #endif /* u3b1 || UPORT */
  	return 0;	/* signal handlers return something! */
  }
  
  void
  kill_off(pid, w)
@//E*O*F iproc.c//
chmod u=rw,g=rw,o=r iproc.c
 
echo x - iproc.h
sed 's/^@//' > "iproc.h" <<'@//E*O*F iproc.h//'
*** iproc.h	Tue Feb 28 15:54:41 1989
--- ../iproc.h	Thu Apr  6 16:31:58 1989
***************
*** 27,36
  };
  
  extern int  NumProcs;
  
  #ifdef PIPEPROCS
  extern File	*ProcInput;
  extern int	kbd_pid;
  #else
  extern long global_fd;
  #endif

--- 27,37 -----
  };
  
  extern int  NumProcs;
  
  #ifdef PIPEPROCS
+ #include "fp.h"
  extern File	*ProcInput;
  extern int	kbd_pid;
  #else
  extern long global_fd;
  #endif
@//E*O*F iproc.h//
chmod u=rw,g=rw,o=r iproc.h
 
echo x - jove.h
sed 's/^@//' > "jove.h" <<'@//E*O*F jove.h//'
*** jove.h	Tue Feb 28 15:54:42 1989
--- ../jove.h	Thu Apr  6 16:32:45 1989
***************
*** 12,21
  # include "tune.h"
  #endif
  
  #if !defined(MAC)
  # include <sys/types.h>
  # include <string.h>
  #else
  # include <types.h>
  #endif
  

--- 12,22 -----
  # include "tune.h"
  #endif
  
  #if !defined(MAC)
  # include <sys/types.h>
+ #ifdef u3b1
  # include <string.h>
  #else
  # include <strings.h>
  #endif /* u3b1 */
  #else
***************
*** 13,22
  #endif
  
  #if !defined(MAC)
  # include <sys/types.h>
  # include <string.h>
  #else
  # include <types.h>
  #endif
  
  #if defined(__STDC__) || defined(USE_PROTOTYPES)

--- 14,26 -----
  
  #if !defined(MAC)
  # include <sys/types.h>
  #ifdef u3b1
  # include <string.h>
+ #else
+ # include <strings.h>
+ #endif /* u3b1 */
  #else
  # include <types.h>
  #endif
  
  #if defined(__STDC__) || defined(USE_PROTOTYPES)
@//E*O*F jove.h//
chmod u=rw,g=rw,o=r jove.h
 
echo x - malloc.c
sed 's/^@//' > "malloc.c" <<'@//E*O*F malloc.c//'
*** malloc.c	Tue Feb 28 15:54:49 1989
--- ../malloc.c	Wed Mar 29 09:07:40 1989
***************
*** 4,14
   * away copies of JOVE, including sources, provided that this notice is    *
   * included in all the files.                                              *
   ***************************************************************************/
  
  #include "tune.h"
! 
  #ifdef MY_MALLOC
  
  /*	avoid break bug */
  #ifdef pdp11
  # define GRANULE 64

--- 4,14 -----
   * away copies of JOVE, including sources, provided that this notice is    *
   * included in all the files.                                              *
   ***************************************************************************/
  
  #include "tune.h"
! #include "sys/types.h"
  #ifdef MY_MALLOC
  
  /*	avoid break bug */
  #ifdef pdp11
  # define GRANULE 64
@//E*O*F malloc.c//
chmod u=rw,g=rw,o=r malloc.c
 
echo x - portsrv.c
sed 's/^@//' > "portsrv.c" <<'@//E*O*F portsrv.c//'
*** portsrv.c	Tue Feb 28 15:54:53 1989
--- ../portsrv.c	Thu Apr  6 16:34:07 1989
***************
*** 14,23
  
  #define EOF	-1
  
  #include <signal.h>
  #include <sys/ioctl.h>
  #include "wait.h"
  
  struct header {
  	int	pid;
  	int	nbytes;

--- 14,24 -----
  
  #define EOF	-1
  
  #include <signal.h>
  #include <sys/ioctl.h>
+ #include "jove.h"
  #include "wait.h"
  
  struct header {
  	int	pid;
  	int	nbytes;
@//E*O*F portsrv.c//
chmod u=rw,g=rw,o=r portsrv.c
 
echo x - proc.c
sed 's/^@//' > "proc.c" <<'@//E*O*F proc.c//'
*** proc.c	Tue Feb 28 15:54:53 1989
--- ../proc.c	Mon Apr 10 08:46:35 1989
***************
*** 504,515
  void
  dowait(pid, status)
  int	pid,
  	*status;
  {
! # ifndef IPROCS
! 
  	int	rpid;
  
  	while ((rpid = wait(status)) != pid)
  		;
  # else

--- 504,514 -----
  void
  dowait(pid, status)
  int	pid,
  	*status;
  {
! # if !defined IPROCS || defined u3b1 || defined UPORT
  	int	rpid;
  
  	while ((rpid = wait(status)) != pid)
  		;
  # else
@//E*O*F proc.c//
chmod u=rw,g=rw,o=r proc.c
 
echo x - sysdep.3b1
sed 's/^@//' > "sysdep.3b1" <<'@//E*O*F sysdep.3b1//'
/***************************************************************************
 * 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.                                              *
 ***************************************************************************/

#ifdef THINK_C
# define MAC 1
# define defined(x) (x)	/* take this out and you're in trouble... */
#endif

#ifdef	MAC
    extern int	errno;
#endif	/* MAC */

#if !(defined(MSDOS) || defined(MAC) || defined(__STDC__))
# define void int
#endif

#ifndef	__STDC__
#define	const
#endif

/* The operating system (MSDOS or MAC) must be defined by this point.
   IBMPC is defined in the Makefile. All MAC defines should be
   numerical (i.e. #define MAC 1) so that defined() will work. */

#if !(defined(MSDOS) || defined(MAC))
# define UNIX
#endif

#ifdef UNIX
# if !sun
    extern int	errno;
# endif
/*# define YP_PASSWD	/* if you are a sun running the yellow pages */
/*# define VFORK		/* if you have vfork(2) */
/*# define JOB_CONTROL	/* if you have job stopping */
# ifdef JOB_CONTROL
#  define MENLO_JCL
# endif
# define KILL0		/* kill(pid, 0) returns 0 if proc exists */
#endif /* UNIX */

#ifdef UNIX
# ifdef pdp11
#  define SMALL
#  define BUFSIZ	512	/* or 1024 */
#  define NBUF		3
# else
#  define VMUNIX		/* Virtual Memory UNIX */
#  define BUFSIZ	1024
#  ifdef iAPX286
#   define NBUF		48	/* NBUF*BUFSIZ must be less than 64 kB */
#  else
#   define NBUF	64	/* number of disk buffers */
#  endif /* iAPX286 */
# endif
#endif

#ifdef SMALL
  typedef unsigned short	daddr;
#else
# if defined(iAPX286) || defined(MSDOS) || defined(MAC)
   typedef long	daddr;
# else
   typedef	int	daddr;
# endif /* iAPX286 */
#endif /* SMALL */

#ifdef UNIX
			/* pick your version of Unix */
/*# define BSD4_2		/* Berkeley 4.2 BSD */
/*# define BSD4_3		/* Berkeley 4.3 BSD and 2.10 BSD */
/*# define SYSV		-- for (System III/System V) UNIX systems */
# define SYSVR2	-- system 5, rel. 2 */
			/* M_XENIX is defined by the Compiler */
#endif /* UNIX */

#ifdef SYSVR2
# ifndef SYSV
#  define SYSV	/* SYSV is a subset of SYSVR2 */
# endif
#endif

#ifdef BSD4_3
# ifndef BSD4_2
#  define BSD4_2	/* 4.3 is 4.2 only different. */
# endif
#endif

#ifdef M_XENIX
# define iAPX286 1	/* we have segments */
#endif

#ifdef MSDOS
# ifdef M_I86LM		/* large memory model */
#  define NBUF 		64
# else
#  define NBUF 		3
#  define SMALL
# endif
# define BUFSIZ		512		/* or 1024 */
#endif

#if !sun && !iAPX286
/*# define MY_MALLOC	/* use more memory efficient malloc (not on suns) */
#endif

#if (defined(BSD4_3) || defined(MAC))
# define RESHAPING	/* enable windows to handle reshaping */
#endif

#ifdef BSD4_2			/* byte_copy(from, to, len) */
# define byte_copy	bcopy	/* use fast assembler version */
#endif

#if defined(IPROCS) && !defined(BSD4_2)
# define PIPEPROCS		/* do it with pipes */
#endif

#if defined(SYSV) || defined(MSDOS) || defined(M_XENIX)
# define byte_copy(s2, s1, n)	memcpy(s1, s2, n)
# define bzero(s, n)		memset(s, 0, n)
# define index	strchr
# define rindex	strrchr
#endif

#ifndef BSD4_2
# ifdef MENLO_JCL
#  define signal	sigset
# endif /* MENLO_JCL */
#endif

#if !(defined(IBMPC) || defined(MAC))
# define TERMCAP
# define ASCII
#endif

#ifdef ASCII	/* seven bit characters */
# define NCHARS 0200
#else
# define NCHARS 0400
#endif

#define CHARMASK (NCHARS - 1)

#ifndef MSDOS
# define FILESIZE	256
#else /* MSDOS */
# define FILESIZE	64
#endif /* MSDOS */

#if defined(BSD4_2)
extern long	SigMask;

# define SigHold(s)	sigblock(SigMask |= sigmask(s))
# define SigRelse(s)	sigsetmask(SigMask &= ~sigmask(s))
#endif
@//E*O*F sysdep.3b1//
chmod u=rw,g=rw,o=r sysdep.3b1
 
echo x - sysdep.h
sed 's/^@//' > "sysdep.h" <<'@//E*O*F sysdep.h//'
*** sysdep.h	Tue Feb 28 15:55:00 1989
--- ../sysdep.h	Mon Apr 10 08:51:58 1989
***************
*** 32,42
  
  #ifdef UNIX
  # if !sun
      extern int	errno;
  # endif
! # define YP_PASSWD	/* if you are a sun running the yellow pages */
  # define VFORK		/* if you have vfork(2) */
  # define JOB_CONTROL	/* if you have job stopping */
  # ifdef JOB_CONTROL
  #  define MENLO_JCL
  # endif

--- 32,42 -----
  
  #ifdef UNIX
  # if !sun
      extern int	errno;
  # endif
! /*# define YP_PASSWD	/* if you are a sun running the yellow pages */
  # define VFORK		/* if you have vfork(2) */
  # define JOB_CONTROL	/* if you have job stopping */
  # ifdef JOB_CONTROL
  #  define MENLO_JCL
  # endif
***************
*** 70,80
  #endif /* SMALL */
  
  #ifdef UNIX
  			/* pick your version of Unix */
  # define BSD4_2		/* Berkeley 4.2 BSD */
! # define BSD4_3		/* Berkeley 4.3 BSD and 2.10 BSD */
  /*# define SYSV		-- for (System III/System V) UNIX systems */
  /*# define SYSVR2	-- system 5, rel. 2 */
  			/* M_XENIX is defined by the Compiler */
  #endif /* UNIX */
  

--- 70,80 -----
  #endif /* SMALL */
  
  #ifdef UNIX
  			/* pick your version of Unix */
  # define BSD4_2		/* Berkeley 4.2 BSD */
! /*# define BSD4_3		/* Berkeley 4.3 BSD and 2.10 BSD */
  /*# define SYSV		-- for (System III/System V) UNIX systems */
  /*# define SYSVR2	-- system 5, rel. 2 */
  			/* M_XENIX is defined by the Compiler */
  #endif /* UNIX */
  
***************
*** 103,113
  # endif
  # define BUFSIZ		512		/* or 1024 */
  #endif
  
  #if !sun && !iAPX286
! # define MY_MALLOC	/* use more memory efficient malloc (not on suns) */
  #endif
  
  #if (defined(BSD4_3) || defined(MAC))
  # define RESHAPING	/* enable windows to handle reshaping */
  #endif

--- 103,113 -----
  # endif
  # define BUFSIZ		512		/* or 1024 */
  #endif
  
  #if !sun && !iAPX286
! /*# define MY_MALLOC	/* use more memory efficient malloc (not on suns) */
  #endif
  
  #if (defined(BSD4_3) || defined(MAC))
  # define RESHAPING	/* enable windows to handle reshaping */
  #endif
***************
*** 155,160
  #if defined(BSD4_2)
  extern long	SigMask;
  
  # define SigHold(s)	sigblock(SigMask |= sigmask(s))
  # define SigRelse(s)	sigsetmask(SigMask &= ~sigmask(s))
  #endif

--- 155,163 -----
  #if defined(BSD4_2)
  extern long	SigMask;
  
  # define SigHold(s)	sigblock(SigMask |= sigmask(s))
  # define SigRelse(s)	sigsetmask(SigMask &= ~sigmask(s))
+ #else
+ # define SigHold(s)
+ # define SigRelse(s)
  #endif
@//E*O*F sysdep.h//
chmod u=rw,g=rw,o=r sysdep.h
 
echo x - sysdep.uport
sed 's/^@//' > "sysdep.uport" <<'@//E*O*F sysdep.uport//'
/***************************************************************************
 * 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.                                              *
 ***************************************************************************/

#ifdef THINK_C
# define MAC 1
# define defined(x) (x)	/* take this out and you're in trouble... */
#endif

#ifdef	MAC
    extern int	errno;
#endif	/* MAC */

#if !(defined(MSDOS) || defined(MAC) || defined(__STDC__))
# define void int
#endif

#ifndef	__STDC__
#define	const
#endif

/* The operating system (MSDOS or MAC) must be defined by this point.
   IBMPC is defined in the Makefile. All MAC defines should be
   numerical (i.e. #define MAC 1) so that defined() will work. */

#if !(defined(MSDOS) || defined(MAC))
# define UNIX
#endif

#ifdef UNIX
# if !sun
    extern int	errno;
# endif
/*# define YP_PASSWD	/* if you are a sun running the yellow pages */
# define VFORK		/* if you have vfork(2) */
# define JOB_CONTROL	/* if you have job stopping */
# ifdef JOB_CONTROL
#  define MENLO_JCL
# endif
# define KILL0		/* kill(pid, 0) returns 0 if proc exists */
#endif /* UNIX */

#ifdef UNIX
# ifdef pdp11
#  define SMALL
#  define BUFSIZ	512	/* or 1024 */
#  define NBUF		3
# else
#  define VMUNIX		/* Virtual Memory UNIX */
#  define BUFSIZ	1024
#  ifdef iAPX286
#   define NBUF		48	/* NBUF*BUFSIZ must be less than 64 kB */
#  else
#   define NBUF	64	/* number of disk buffers */
#  endif /* iAPX286 */
# endif
#endif

#ifdef SMALL
  typedef unsigned short	daddr;
#else
# if defined(iAPX286) || defined(MSDOS) || defined(MAC)
   typedef long	daddr;
# else
   typedef	int	daddr;
# endif /* iAPX286 */
#endif /* SMALL */

#ifdef UNIX
			/* pick your version of Unix */
# define BSD4_2		/* Berkeley 4.2 BSD */
/*# define BSD4_3		/* Berkeley 4.3 BSD and 2.10 BSD */
/*# define SYSV		-- for (System III/System V) UNIX systems */
/*# define SYSVR2	-- system 5, rel. 2 */
			/* M_XENIX is defined by the Compiler */
#endif /* UNIX */

#ifdef SYSVR2
# ifndef SYSV
#  define SYSV	/* SYSV is a subset of SYSVR2 */
# endif
#endif

#ifdef BSD4_3
# ifndef BSD4_2
#  define BSD4_2	/* 4.3 is 4.2 only different. */
# endif
#endif

#ifdef M_XENIX
# define iAPX286 1	/* we have segments */
#endif

#ifdef MSDOS
# ifdef M_I86LM		/* large memory model */
#  define NBUF 		64
# else
#  define NBUF 		3
#  define SMALL
# endif
# define BUFSIZ		512		/* or 1024 */
#endif

#if !sun && !iAPX286
/*# define MY_MALLOC	/* use more memory efficient malloc (not on suns) */
#endif

#if (defined(BSD4_3) || defined(MAC))
# define RESHAPING	/* enable windows to handle reshaping */
#endif

#ifdef BSD4_2			/* byte_copy(from, to, len) */
# define byte_copy	bcopy	/* use fast assembler version */
#endif

#if defined(IPROCS) && !defined(BSD4_2)
# define PIPEPROCS		/* do it with pipes */
#endif

#if defined(SYSV) || defined(MSDOS) || defined(M_XENIX)
# define byte_copy(s2, s1, n)	memcpy(s1, s2, n)
# define bzero(s, n)		memset(s, 0, n)
# define index	strchr
# define rindex	strrchr
#endif

#ifndef BSD4_2
# ifdef MENLO_JCL
#  define signal	sigset
# endif /* MENLO_JCL */
#endif

#if !(defined(IBMPC) || defined(MAC))
# define TERMCAP
# define ASCII
#endif

#ifdef ASCII	/* seven bit characters */
# define NCHARS 0200
#else
# define NCHARS 0400
#endif

#define CHARMASK (NCHARS - 1)

#ifndef MSDOS
# define FILESIZE	256
#else /* MSDOS */
# define FILESIZE	64
#endif /* MSDOS */

#if defined(BSD4_2)
extern long	SigMask;

# define SigHold(s)	sigblock(SigMask |= sigmask(s))
# define SigRelse(s)	sigsetmask(SigMask &= ~sigmask(s))
#else
# define SigHold(s)
# define SigRelse(s)
#endif
@//E*O*F sysdep.uport//
chmod u=rw,g=rw,o=r sysdep.uport
 
echo x - term.c
sed 's/^@//' > "term.c" <<'@//E*O*F term.c//'
*** term.c	Tue Feb 28 15:55:02 1989
--- ../term.c	Mon Apr 10 08:48:17 1989
***************
*** 84,93
  	TABS,
  	UPlen,
  	HOlen,
  	LLlen;
  
  #ifdef notdef
  	/*
  	 * Are you sure about this one Jon?  On the SYSV system I tried this
  	 * on I got a multiple definition of PC because it was already
  	 * defined in -ltermcap.  Similarly for BC and UP ...

--- 84,99 -----
  	TABS,
  	UPlen,
  	HOlen,
  	LLlen;
  
+ #ifdef UPORT
+ char	PC,
+ 	*BC,		/* back space */
+ 	*UP;	/* Scroll reverse, or up */
+ short	ospeed;
+ #endif
  #ifdef notdef
  	/*
  	 * Are you sure about this one Jon?  On the SYSV system I tried this
  	 * on I got a multiple definition of PC because it was already
  	 * defined in -ltermcap.  Similarly for BC and UP ...
***************
*** 180,190
  		static char	nm[3] = "xx";
  
  		nm[0] = *tsp++;
  		nm[1] = *tsp++;
  		*(meas[i]) = (char *) tgetstr(nm, &termp);
! 		if (termp > tspace + sizeof(tspace))
  			goto wimperr;
  	}
  	if (lPC)
  		PC = *lPC;
  	if (XS)

--- 188,200 -----
  		static char	nm[3] = "xx";
  
  		nm[0] = *tsp++;
  		nm[1] = *tsp++;
  		*(meas[i]) = (char *) tgetstr(nm, &termp);
! #ifndef UPORT
! 		if (termp > tspace+ sizeof(tspace))
  			goto wimperr;
  }
  #endif
  	}
  	if (lPC)
***************
*** 182,191
  		nm[0] = *tsp++;
  		nm[1] = *tsp++;
  		*(meas[i]) = (char *) tgetstr(nm, &termp);
  		if (termp > tspace + sizeof(tspace))
  			goto wimperr;
  	}
  	if (lPC)
  		PC = *lPC;
  	if (XS)
  		SO = SE = 0;

--- 192,203 -----
  		*(meas[i]) = (char *) tgetstr(nm, &termp);
  #ifndef UPORT
  		if (termp > tspac e+ sizeof(tspace))
  			goto wimperr;
+ #endif
  	}
  	if (lPC)
  		PC = *lPC;
  	if (XS)
  		SO = SE = 0;
@//E*O*F term.c//
chmod u=rw,g=rw,o=r term.c
 
echo x - tune.3b1
sed 's/^@//' > "tune.3b1" <<'@//E*O*F tune.3b1//'
/***************************************************************************
 * 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.                                              *
 ***************************************************************************/

#define TUNED		/* don't touch this */

# define IPROCS		/* interactive processes */
#include "sysdep.h"

#ifdef UNIX
# define SUBPROCS	/* only on UNIX systems (NOT INCORPORATED YET) */
# define IPROCS		/* interactive processes */
#endif /* UNIX */

#ifndef VFORK
# define vfork	fork
#endif

#define BACKUPFILES	/* enable the backup files code */
#define F_COMPLETION	/* filename completion */
#define ABBREV		/* word abbreviation mode */
#if !(defined(IBMPC) || defined(MAC))
# define ID_CHAR	/* include code to IDchar */
/*# define WIRED_TERMS	/* include code for wired terminals */
#endif
#define LISP		/* include the code for Lisp Mode */
#define CMT_FMT		/* include the comment formatting routines */

#ifdef UNIX
/*# define LOAD_AV	/* Use the load average for various commands.
#			   Do not define this if you lack a load average
#			   system call and kmem is read protected. */
#
/*# define BIFF		/* if you have biff (or the equivalent) */
# define SPELL		/* spell words and buffer commands */
#endif

#define DFLT_MODE	0664	/* file will be created with this mode */

#ifdef MAC
# undef F_COMPLETION
# define F_COMPLETION 1
# define rindex strrchr
# define bzero(s,n) setmem(s,n,0)
# define swritef sprintf
# define USE_PROTOTYPES	1
# define NBUF 64
# define BUFSIZ 1024
# undef LISP
# define LISP 1
# undef ABBREV
# define ABBREV 1
# undef CMT_FMT
# define CMT_FMT 1
#endif

/* These are here since they define things in tune.c.  If you add things to
   tune.c, add them here too, if necessary. */

extern char
	*d_tempfile,
	*p_tempfile,
	*Recover,
	*Joverc,

#ifdef PIPEPROCS
	*Portsrv,
	*Kbd_Proc,
#endif

#ifdef MSDOS
	CmdDb[],
#else
	*CmdDb,
#endif

	TmpFilePath[],
	Shell[],
	ShFlags[];
@//E*O*F tune.3b1//
chmod u=rw,g=r,o=r tune.3b1
 
echo x - tune.h
sed 's/^@//' > "tune.h" <<'@//E*O*F tune.h//'
*** tune.h	Tue Feb 28 15:55:04 1989
--- ../tune.h	Mon Apr 10 08:50:34 1989
***************
*** 5,14
   * included in all the files.                                              *
   ***************************************************************************/
  
  #define TUNED		/* don't touch this */
  
  #include "sysdep.h"
  
  #ifdef UNIX
  # define SUBPROCS	/* only on UNIX systems (NOT INCORPORATED YET) */
  # define IPROCS		/* interactive processes */

--- 5,18 -----
   * included in all the files.                                              *
   ***************************************************************************/
  
  #define TUNED		/* don't touch this */
  
+ #if defined u3b1 || defined UPORT	/* fix this? */
+ # define IPROCS		/* interactive processes */
+ #endif /* u3b1 || UPORT */
+ 
  #include "sysdep.h"
  
  #ifdef UNIX
  # define SUBPROCS	/* only on UNIX systems (NOT INCORPORATED YET) */
  # define IPROCS		/* interactive processes */
***************
*** 21,31
  #define BACKUPFILES	/* enable the backup files code */
  #define F_COMPLETION	/* filename completion */
  #define ABBREV		/* word abbreviation mode */
  #if !(defined(IBMPC) || defined(MAC))
  # define ID_CHAR	/* include code to IDchar */
! # define WIRED_TERMS	/* include code for wired terminals */
  #endif
  #define LISP		/* include the code for Lisp Mode */
  #define CMT_FMT		/* include the comment formatting routines */
  
  #ifdef UNIX

--- 25,35 -----
  #define BACKUPFILES	/* enable the backup files code */
  #define F_COMPLETION	/* filename completion */
  #define ABBREV		/* word abbreviation mode */
  #if !(defined(IBMPC) || defined(MAC))
  # define ID_CHAR	/* include code to IDchar */
! /*# define WIRED_TERMS	/* include code for wired terminals */
  #endif
  #define LISP		/* include the code for Lisp Mode */
  #define CMT_FMT		/* include the comment formatting routines */
  
  #ifdef UNIX
***************
*** 35,45
  #
  # define BIFF		/* if you have biff (or the equivalent) */
  # define SPELL		/* spell words and buffer commands */
  #endif
  
! #define DFLT_MODE	0666	/* file will be created with this mode */
  
  #ifdef MAC
  # undef F_COMPLETION
  # define F_COMPLETION 1
  # define rindex strrchr

--- 39,49 -----
  #
  # define BIFF		/* if you have biff (or the equivalent) */
  # define SPELL		/* spell words and buffer commands */
  #endif
  
! #define DFLT_MODE	0664	/* file will be created with this mode */
  
  #ifdef MAC
  # undef F_COMPLETION
  # define F_COMPLETION 1
  # define rindex strrchr
@//E*O*F tune.h//
chmod u=rw,g=rw,o=r tune.h
 
echo x - tune.uport
sed 's/^@//' > "tune.uport" <<'@//E*O*F tune.uport//'
/***************************************************************************
 * 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.                                              *
 ***************************************************************************/

#define TUNED		/* don't touch this */

#if defined u3b1 || defined UPORT	/* fix this? */
# define IPROCS		/* interactive processes */
#endif /* u3b1 || UPORT */
#include "sysdep.h"

#ifdef UNIX
# define SUBPROCS	/* only on UNIX systems (NOT INCORPORATED YET) */
# define IPROCS		/* interactive processes */
#endif /* UNIX */

#ifndef VFORK
# define vfork	fork
#endif

#define BACKUPFILES	/* enable the backup files code */
#define F_COMPLETION	/* filename completion */
#define ABBREV		/* word abbreviation mode */
#if !(defined(IBMPC) || defined(MAC))
# define ID_CHAR	/* include code to IDchar */
/*# define WIRED_TERMS	/* include code for wired terminals */
#endif
#define LISP		/* include the code for Lisp Mode */
#define CMT_FMT		/* include the comment formatting routines */

#ifdef UNIX
/*# define LOAD_AV	/* Use the load average for various commands.
#			   Do not define this if you lack a load average
#			   system call and kmem is read protected. */
#
/*# define BIFF		/* if you have biff (or the equivalent) */
# define SPELL		/* spell words and buffer commands */
#endif

#define DFLT_MODE	0664	/* file will be created with this mode */

#ifdef MAC
# undef F_COMPLETION
# define F_COMPLETION 1
# define rindex strrchr
# define bzero(s,n) setmem(s,n,0)
# define swritef sprintf
# define USE_PROTOTYPES	1
# define NBUF 64
# define BUFSIZ 1024
# undef LISP
# define LISP 1
# undef ABBREV
# define ABBREV 1
# undef CMT_FMT
# define CMT_FMT 1
#endif

/* These are here since they define things in tune.c.  If you add things to
   tune.c, add them here too, if necessary. */

extern char
	*d_tempfile,
	*p_tempfile,
	*Recover,
	*Joverc,

#ifdef PIPEPROCS
	*Portsrv,
	*Kbd_Proc,
#endif

#ifdef MSDOS
	CmdDb[],
#else
	*CmdDb,
#endif

	TmpFilePath[],
	Shell[],
	ShFlags[];
@//E*O*F tune.uport//
chmod u=rw,g=r,o=r tune.uport
 
echo x - util.c
sed 's/^@//' > "util.c" <<'@//E*O*F util.c//'
*** util.c	Tue Feb 28 15:55:05 1989
--- ../util.c	Thu Apr  6 11:10:20 1989
***************
*** 7,16
  
  #include "jove.h"
  #include "ctype.h"
  #include "termcap.h"
  #include "disp.h"
  #include <signal.h>
  
  #ifdef MAC
  # include "mac.h"
  #else

--- 7,17 -----
  
  #include "jove.h"
  #include "ctype.h"
  #include "termcap.h"
  #include "disp.h"
+ #include "fp.h"
  #include <signal.h>
  
  #ifdef MAC
  # include "mac.h"
  #else
***************
*** 767,776
  static struct	nlist nl[] = {
  	{ "_avenrun" },
  #define	X_AVENRUN	0
  	{ "" }
  };
  
  void
  get_la(dp)
  double	*dp;
  {

--- 768,782 -----
  static struct	nlist nl[] = {
  	{ "_avenrun" },
  #define	X_AVENRUN	0
  	{ "" }
  };
+ #ifdef sequent
+ #define	LA_UNIX	"/dynix"
+ #else
+ #define	LA_UNIX	"/vmunix"
+ #endif
  
  void
  get_la(dp)
  double	*dp;
  {
***************
*** 772,782
  
  void
  get_la(dp)
  double	*dp;
  {
! #ifdef sun
  	long	avenrun[3];
  #else
  	double	avenrun[3];
  #endif
  	static int	kmem = 0;

--- 778,791 -----
  
  void
  get_la(dp)
  double	*dp;
  {
! #ifdef sequent
! 	unsigned long	avenrun[3];
! #else
! #if sun
  	long	avenrun[3];
  #else
  	double	avenrun[3];
  #endif
  #endif
***************
*** 777,786
  #ifdef sun
  	long	avenrun[3];
  #else
  	double	avenrun[3];
  #endif
  	static int	kmem = 0;
  	extern long	lseek proto((int, long, int));
  
  	if (kmem == -1) {
  		*dp = 4.0;	/* So shell commands will say "Chugging" */

--- 786,796 -----
  #if sun
  	long	avenrun[3];
  #else
  	double	avenrun[3];
  #endif
+ #endif
  	static int	kmem = 0;
  	extern long	lseek proto((int, long, int));
  
  	if (kmem == -1) {
  		*dp = 4.0;	/* So shell commands will say "Chugging" */
***************
*** 789,799
  		if ((kmem = open("/dev/kmem", 0)) == -1) {
  			f_mess("Can't open kmem for load average.");
  			*dp = 4.0;
  			return;
  		}
! 		nlist("/vmunix", nl);
  	}
  	lseek(kmem, (long) nl[X_AVENRUN].n_value, 0);
  	read(kmem, (char *) avenrun, sizeof(avenrun));
  #ifdef sun
  	*dp = (double) avenrun[0] / FSCALE;

--- 799,809 -----
  		if ((kmem = open("/dev/kmem", 0)) == -1) {
  			f_mess("Can't open kmem for load average.");
  			*dp = 4.0;
  			return;
  		}
! 		nlist(LA_UNIX, nl);
  	}
  	lseek(kmem, (long) nl[X_AVENRUN].n_value, 0);
  	read(kmem, (char *) avenrun, sizeof(avenrun));
  #ifdef sun
  	*dp = (double) avenrun[0] / FSCALE;
***************
*** 796,805
  	lseek(kmem, (long) nl[X_AVENRUN].n_value, 0);
  	read(kmem, (char *) avenrun, sizeof(avenrun));
  #ifdef sun
  	*dp = (double) avenrun[0] / FSCALE;
  #else
  	*dp = avenrun[0];
  #endif
  }
  
  #    endif

--- 806,819 -----
  	lseek(kmem, (long) nl[X_AVENRUN].n_value, 0);
  	read(kmem, (char *) avenrun, sizeof(avenrun));
  #ifdef sun
  	*dp = (double) avenrun[0] / FSCALE;
  #else
+ #ifdef sequent
+ #define	FSCALE 1000.0
+ 	*dp = (double) avenrun[0] / FSCALE;
+ #else
  	*dp = avenrun[0];
  #endif
  #endif
  }
  
***************
*** 797,806
  	read(kmem, (char *) avenrun, sizeof(avenrun));
  #ifdef sun
  	*dp = (double) avenrun[0] / FSCALE;
  #else
  	*dp = avenrun[0];
  #endif
  }
  
  #    endif
  #  else /* !BSD4_2 || BSD2_10 */

--- 811,821 -----
  #ifdef sequent
  #define	FSCALE 1000.0
  	*dp = (double) avenrun[0] / FSCALE;
  #else
  	*dp = avenrun[0];
+ #endif
  #endif
  }
  
  #    endif
  #  else /* !BSD4_2 || BSD2_10 */
@//E*O*F util.c//
chmod u=rw,g=rw,o=r util.c
 
exit 0



More information about the Comp.unix.xenix mailing list