Jove Sys V patches
Daniel M. Frank
dan at prairie.UUCP
Mon Jan 12 10:53:10 AEST 1987
As distributed, the Jove editor doesn't come up right away under
System V, Release 2. This is due both to some missing #ifdefs
around pertinent sections of code, as well as some incompatibilities
between the terminfo termcap emulation and "real" termcap. There
are some additional problems with the iAPX286 architecture and
compiler limitations.
The following patches represent the differences between the
Jove distribution available from rochester.arpa and the code that
finally produced a running editor under Microport System V, Release 2
on an AT clone. The iAPX-specific stuff has been #ifdef'ed, as have
the System V differences, so most of these patches shouldn't be
harmful for general distribution. However, the tune.h and Makefile
diffs are also included. Non-iAPX users may want to leave the Makefile
changes out. The tune.h stuff is necessary for any SVR2 site.
To install, use patch with the `-p 1' option. That'll make it
ignore the `old/' on the front of the filename line.
There may be further bugs I haven't found yet. Good luck!
------------------------------------------------------------------------
*** old/buf.c Wed Sep 24 09:51:51 1986
--- buf.c Sat Jan 10 11:29:39 1987
***************
*** 85,90
newb->b_major = TEXT;
newb->b_first = 0;
newb->b_keybinds = 0;
newb->b_process = 0;
initlist(newb);
--- 85,91 -----
newb->b_major = TEXT;
newb->b_first = 0;
newb->b_keybinds = 0;
+ #ifdef IPROCS
newb->b_process = 0;
#endif
initlist(newb);
***************
*** 86,91
newb->b_first = 0;
newb->b_keybinds = 0;
newb->b_process = 0;
initlist(newb);
return newb;
--- 87,93 -----
newb->b_keybinds = 0;
#ifdef IPROCS
newb->b_process = 0;
+ #endif
initlist(newb);
return newb;
*** old/disp.c Wed Sep 24 09:52:57 1986
--- disp.c Sat Jan 10 15:54:27 1987
***************
*** 108,113
if (VisBell && VB)
putstr(VB);
else
putpad("20\007", 1);
}
flusho();
--- 108,116 -----
if (VisBell && VB)
putstr(VB);
else
+ #ifdef SYSV /* release 2, at least */
+ putpad("$<20>\007", 1) ;
+ #else
putpad("20\007", 1);
#endif SYSV
}
***************
*** 109,114
putstr(VB);
else
putpad("20\007", 1);
}
flusho();
}
--- 112,118 -----
putpad("$<20>\007", 1) ;
#else
putpad("20\007", 1);
+ #endif SYSV
}
flusho();
}
*** old/io.c Wed Sep 24 10:00:18 1986
--- io.c Sat Jan 10 12:11:18 1987
***************
*** 121,126
int xeof = 0;
Line *savel = curline;
int savec = curchar;
strcpy(end, linebuf + curchar);
xeof = f_gets(fp, linebuf + curchar, LBSIZE - curchar);
--- 121,127 -----
int xeof = 0;
Line *savel = curline;
int savec = curchar;
+ disk_line f_getputl() ;
strcpy(end, linebuf + curchar);
xeof = f_gets(fp, linebuf + curchar, LBSIZE - curchar);
*** old/jove.c Wed Sep 24 10:01:06 1986
--- jove.c Sat Jan 10 12:35:35 1987
***************
*** 18,24
#include <errno.h>
#ifndef SYSV
#include <sgtty.h>
- #include <fcntl.h>
#else
#include <termio.h>
#endif SYSV
--- 18,23 -----
#include <errno.h>
#ifndef SYSV
#include <sgtty.h>
#else
#include <termio.h>
#endif SYSV
***************
*** 22,27
#else
#include <termio.h>
#endif SYSV
#ifdef TIOCSLTC
struct ltchars ls1,
--- 21,27 -----
#else
#include <termio.h>
#endif SYSV
+ #include <fcntl.h>
#ifdef TIOCSLTC
struct ltchars ls1,
***************
*** 378,383
case 0:
UnsetTerm(NullStr);
sigrelse(SIGCHLD);
(void) signal(SIGTERM, SIG_DFL);
(void) signal(SIGINT, SIG_DFL);
--- 378,384 -----
case 0:
UnsetTerm(NullStr);
+ #ifdef IPROCS
sigrelse(SIGCHLD);
#endif
(void) signal(SIGTERM, SIG_DFL);
***************
*** 379,384
case 0:
UnsetTerm(NullStr);
sigrelse(SIGCHLD);
(void) signal(SIGTERM, SIG_DFL);
(void) signal(SIGINT, SIG_DFL);
(void) signal(SIGQUIT, SIG_DFL);
--- 380,386 -----
UnsetTerm(NullStr);
#ifdef IPROCS
sigrelse(SIGCHLD);
+ #endif
(void) signal(SIGTERM, SIG_DFL);
(void) signal(SIGINT, SIG_DFL);
(void) signal(SIGQUIT, SIG_DFL);
***************
*** 382,388
(void) signal(SIGTERM, SIG_DFL);
(void) signal(SIGINT, SIG_DFL);
(void) signal(SIGQUIT, SIG_DFL);
! execl(Shell, basename(Shell), 0);
message("[Execl failed]");
_exit(1);
}
--- 384,390 -----
(void) signal(SIGTERM, SIG_DFL);
(void) signal(SIGINT, SIG_DFL);
(void) signal(SIGQUIT, SIG_DFL);
! execl(Shell, basename(Shell), (char *)0);
message("[Execl failed]");
_exit(1);
}
***************
*** 660,666
dorecover()
{
! execl(Recover, "jove_recover", "-d", TmpFilePath, 0);
printf("%s: execl failed!\n", Recover);
flusho();
_exit(-1);
--- 662,668 -----
dorecover()
{
! execl(Recover, "jove_recover", "-d", TmpFilePath, (char *)0);
printf("%s: execl failed!\n", Recover);
flusho();
_exit(-1);
***************
*** 1036,1042
HomeDir = "/";
HomeLen = strlen(HomeDir);
#ifdef SYSV
! sprintf(MailBox, "/usr/mail/%s", getenv("LOGNAME"));
#else
sprintf(Mailbox, "/usr/spool/mail/%s", getenv("USER"));
#endif SYSV
--- 1038,1044 -----
HomeDir = "/";
HomeLen = strlen(HomeDir);
#ifdef SYSV
! sprintf(Mailbox, "/usr/mail/%s", getenv("LOGNAME"));
#else
sprintf(Mailbox, "/usr/spool/mail/%s", getenv("USER"));
#endif SYSV
*** old/macros.c Wed Sep 24 10:01:34 1986
--- macros.c Sat Jan 10 12:30:34 1987
***************
*** 214,219
nmacs = 0;
char *file,
filebuf[FILESIZE];
file = ask_file((char *) 0, (char *) 0, filebuf);
if ((mac_fd = creat(file, 0666)) == -1)
--- 214,220 -----
nmacs = 0;
char *file,
filebuf[FILESIZE];
+ long htonl() ;
file = ask_file((char *) 0, (char *) 0, filebuf);
if ((mac_fd = creat(file, 0666)) == -1)
*** old/proc.c Wed Sep 24 10:02:19 1986
--- proc.c Sat Jan 10 12:40:45 1987
***************
*** 519,524
complain("[Fork failed]");
}
if (pid == 0) {
sigrelse(SIGCHLD); /* don't know if this matters */
(void) signal(SIGINT, SIG_DFL);
#ifdef JOB_CONTROL
--- 519,525 -----
complain("[Fork failed]");
}
if (pid == 0) {
+ #ifdef IPROCS
sigrelse(SIGCHLD); /* don't know if this matters */
#endif IPROCS
(void) signal(SIGINT, SIG_DFL);
***************
*** 520,525
}
if (pid == 0) {
sigrelse(SIGCHLD); /* don't know if this matters */
(void) signal(SIGINT, SIG_DFL);
#ifdef JOB_CONTROL
sigrelse(SIGINT);
--- 521,527 -----
if (pid == 0) {
#ifdef IPROCS
sigrelse(SIGCHLD); /* don't know if this matters */
+ #endif IPROCS
(void) signal(SIGINT, SIG_DFL);
#ifdef JOB_CONTROL
sigrelse(SIGINT);
*** old/recover.c Wed Sep 24 10:03:00 1986
--- recover.c Sat Jan 10 12:36:20 1987
***************
*** 649,655
exit(-1);
case 0:
! execl("/bin/cp", "cp", fp->file_data, fp->file_rec, REC_DIR, 0);
fprintf(stderr, "recover: cannot execl /bin/cp.\n");
exit(-1);
--- 649,656 -----
exit(-1);
case 0:
! execl("/bin/cp", "cp", fp->file_data, fp->file_rec,
! REC_DIR, (char *)0);
fprintf(stderr, "recover: cannot execl /bin/cp.\n");
exit(-1);
*** old/term.c Wed Sep 24 10:03:38 1986
--- term.c Sat Jan 10 14:59:15 1987
***************
*** 70,75
HOlen,
LLlen;
extern char PC;
static char tspace[256];
--- 70,78 -----
HOlen,
LLlen;
+ #ifdef SYSV /* release 2, at least */
+ char PC ;
+ #else
extern char PC;
#endif SYSV
***************
*** 71,76
LLlen;
extern char PC;
static char tspace[256];
--- 74,80 -----
char PC ;
#else
extern char PC;
+ #endif SYSV
static char tspace[256];
***************
*** 114,120
getTERM()
{
! char *getenv();
char termbuf[13],
*termname = 0,
*termp = tspace,
--- 118,124 -----
getTERM()
{
! char *getenv(), *tgetstr() ;
char termbuf[13],
*termname = 0,
*termp = tspace,
*** old/util.c Wed Sep 24 10:04:11 1986
--- util.c Sat Jan 10 14:27:48 1987
***************
*** 10,15
#include <signal.h>
#include <varargs.h>
struct cmd *
FindCmd(proc)
register int (*proc)();
--- 10,19 -----
#include <signal.h>
#include <varargs.h>
+ #ifdef SYSV /* release 2, at least */
+ short ospeed ;
+ #endif
+
struct cmd *
FindCmd(proc)
register int (*proc)();
*** old/jove.h Wed Sep 24 10:01:19 1986
--- jove.h Sat Jan 10 11:21:09 1987
***************
*** 271,276
int b_major, /* major mode */
b_minor; /* and minor mode */
keymap *b_keybinds; /* local bindings (if any) */
Process *b_process; /* process we're attached to */
};
--- 271,277 -----
int b_major, /* major mode */
b_minor; /* and minor mode */
keymap *b_keybinds; /* local bindings (if any) */
+ #ifdef IPROCS
Process *b_process; /* process we're attached to */
#endif
};
***************
*** 272,277
b_minor; /* and minor mode */
keymap *b_keybinds; /* local bindings (if any) */
Process *b_process; /* process we're attached to */
};
struct macro {
--- 273,279 -----
keymap *b_keybinds; /* local bindings (if any) */
#ifdef IPROCS
Process *b_process; /* process we're attached to */
+ #endif
};
struct macro {
*** old/tune.h Wed Sep 24 10:03:48 1986
--- tune.h Sat Jan 10 15:27:05 1987
***************
*** 9,15
/*#define LSRHS /* if this is Lincoln-Sudbury Regional High School */
/*#define MSDOS /* if this is MSDOS */
! #define BSD4_2 /* Berkeley 4.2 BSD */
/*#define BSD4_3 /* Berkeley 4.3 BSD */
/*#define SYSV /* for (System III/System V) UNIX systems */
#ifdef BSD4_3
--- 9,15 -----
/*#define LSRHS /* if this is Lincoln-Sudbury Regional High School */
/*#define MSDOS /* if this is MSDOS */
! /*#define BSD4_2 /* Berkeley 4.2 BSD */
/*#define BSD4_3 /* Berkeley 4.3 BSD */
#define SYSV /* for (System III/System V) UNIX systems */
#ifdef BSD4_3
***************
*** 11,17
/*#define MSDOS /* if this is MSDOS */
#define BSD4_2 /* Berkeley 4.2 BSD */
/*#define BSD4_3 /* Berkeley 4.3 BSD */
! /*#define SYSV /* for (System III/System V) UNIX systems */
#ifdef BSD4_3
# ifndef BSD4_2
# define BSD4_2 /* 4.3 is 4.2 only different. */
--- 11,17 -----
/*#define MSDOS /* if this is MSDOS */
/*#define BSD4_2 /* Berkeley 4.2 BSD */
/*#define BSD4_3 /* Berkeley 4.3 BSD */
! #define SYSV /* for (System III/System V) UNIX systems */
#ifdef BSD4_3
# ifndef BSD4_2
# define BSD4_2 /* 4.3 is 4.2 only different. */
***************
*** 22,28
#ifdef MSDOS
# define SMALL
#else /* assume we're UNIX or something */
! # if vax || sel || sun || pyr || mc68000 || tahoe
# define VMUNIX /* Virtual Memory UNIX */
# define BUFSIZ 1024
# define NBUF 64 /* number of disk buffers */
--- 22,28 -----
#ifdef MSDOS
# define SMALL
#else /* assume we're UNIX or something */
! # if vax || sel || sun || pyr || mc68000 || tahoe || iAPX286
# define VMUNIX /* Virtual Memory UNIX */
# define BUFSIZ 1024
# if iAPX286
***************
*** 25,31
# if vax || sel || sun || pyr || mc68000 || tahoe
# define VMUNIX /* Virtual Memory UNIX */
# define BUFSIZ 1024
! # define NBUF 64 /* number of disk buffers */
# else
# define SMALL
# define BUFSIZ 512 /* or 1024 */
--- 25,32 -----
# if vax || sel || sun || pyr || mc68000 || tahoe || iAPX286
# define VMUNIX /* Virtual Memory UNIX */
# define BUFSIZ 1024
! # if iAPX286
! # define NBUF 48
# else
# define NBUF 64 /* number of disk buffers */
# endif iAPX286
***************
*** 27,32
# define BUFSIZ 1024
# define NBUF 64 /* number of disk buffers */
# else
# define SMALL
# define BUFSIZ 512 /* or 1024 */
# define NBUF 3
--- 28,36 -----
# if iAPX286
# define NBUF 48
# else
+ # define NBUF 64 /* number of disk buffers */
+ # endif iAPX286
+ # else
# define SMALL
# define BUFSIZ 512 /* or 1024 */
# define NBUF 3
***************
*** 32,38
# define NBUF 3
# endif
#
! # 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. */
#
--- 36,42 -----
# define NBUF 3
# endif
#
! /* # 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. */
#
***************
*** 36,42
# Do not define this if you lack a load average
# system call and kmem is read protected. */
#
! # define JOB_CONTROL /* if you have job stopping */
#
# ifdef JOB_CONTROL
# define MENLO_JCL
--- 40,46 -----
# Do not define this if you lack a load average
# system call and kmem is read protected. */
#
! /* # define JOB_CONTROL /* if you have job stopping */
#
# ifdef JOB_CONTROL
# define MENLO_JCL
***************
*** 49,54
#ifdef SMALL
typedef short disk_line;
#else
typedef int disk_line;
#endif
--- 53,61 -----
#ifdef SMALL
typedef short disk_line;
#else
+ #if iAPX286
+ typedef long disk_line ;
+ #else
typedef int disk_line;
#endif iAPX286
#endif SMALL
***************
*** 50,56
typedef short disk_line;
#else
typedef int disk_line;
! #endif
#ifndef SMALL
# define ABBREV /* word abbreviation mode */
--- 57,64 -----
typedef long disk_line ;
#else
typedef int disk_line;
! #endif iAPX286
! #endif SMALL
#ifndef SMALL
# define ABBREV /* word abbreviation mode */
***************
*** 59,65
# define BIFF /* if you have biff (or the equivalent) */
# define F_COMPLETION /* filename completion */
# define CHDIR /* cd command and absolute pathnames */
! /*#define KILL0 /* kill(pid, 0) returns 0 if proc exists */
# define SPELL /* spell words and buffer commands */
# define ID_CHAR /* include code to IDchar */
# define WIRED_TERMS /* include code for wired terminals */
--- 67,73 -----
# define BIFF /* if you have biff (or the equivalent) */
# define F_COMPLETION /* filename completion */
# define CHDIR /* cd command and absolute pathnames */
! # define KILL0 /* kill(pid, 0) returns 0 if proc exists */
# define SPELL /* spell words and buffer commands */
# define ID_CHAR /* include code to IDchar */
# define WIRED_TERMS /* include code for wired terminals */
***************
*** 69,75
# define CMT_FMT /* include the comment formatting routines */
#endif SMALL
! #if !sun
# define MY_MALLOC /* use more memory efficient malloc (not on suns) */
#endif
--- 77,83 -----
# define CMT_FMT /* include the comment formatting routines */
#endif SMALL
! #if !sun && !iAPX286
# define MY_MALLOC /* use more memory efficient malloc (not on suns) */
#endif
***************
*** 93,98
#endif
#ifdef SYSV
# define index strchr
# define rindex strrchr
#endif
--- 101,108 -----
#endif
#ifdef SYSV
+ # 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
*** old/Makefile Fri Oct 10 09:52:53 1986
--- Makefile Sat Jan 10 16:11:21 1987
***************
*** 18,29
# e.g., jove.1 or jove.l or jove.m.
DESTDIR =
! TMPDIR = /tmp
! LIBDIR = /u/jpayne/jovelib
! BINDIR = /u/jpayne/bin
! MANDIR = /u/jpayne/manl
! MANEXT = l
! SHELL = /bin/csh
# These should all just be right if the above ones are.
JOVE = $(DESTDIR)$(BINDIR)/jove
--- 18,29 -----
# e.g., jove.1 or jove.l or jove.m.
DESTDIR =
! TMPDIR = /usr/tmp
! LIBDIR = /usr/local/lib/jove
! BINDIR = /usr/local
! MANDIR = /usr/man/local/man1
! MANEXT = 1
! SHELL = /bin/sh
# These should all just be right if the above ones are.
JOVE = $(DESTDIR)$(BINDIR)/jove
***************
*** 44,50
# 4.2BSD: LIBS = -ltermcap
# 4.3BSD: LIBS = -ltermcap
! LIBS = -ltermcap
# 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).
--- 44,50 -----
# 4.2BSD: LIBS = -ltermcap
# 4.3BSD: LIBS = -ltermcap
! 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).
***************
*** 54,60
# 4.2BSD: LDFLAGS =
# 4.3BSD: LDFLAGS =
! LDFLAGS =
CFLAGS = -O
COFLAGS = -rworking -q
--- 54,60 -----
# 4.2BSD: LDFLAGS =
# 4.3BSD: LDFLAGS =
! LDFLAGS = -Ml
CFLAGS = -Ml -g
COFLAGS = -rworking -q
***************
*** 56,62
LDFLAGS =
! CFLAGS = -O
COFLAGS = -rworking -q
OBJECTS = keymaps.o funcdefs.o abbrev.o ask.o buf.o c.o case.o ctype.o \
--- 56,62 -----
LDFLAGS = -Ml
! CFLAGS = -Ml -g
COFLAGS = -rworking -q
OBJECTS = keymaps.o funcdefs.o abbrev.o ask.o buf.o c.o case.o ctype.o \
***************
*** 91,97
@-date
portsrv: portsrv.o
! cc -o portsrv -n portsrv.o $(LIBS)
recover: recover.o tune.o rec.h temp.h
cc -o recover -n recover.o tune.o $(LIBS)
--- 91,97 -----
@-date
portsrv: portsrv.o
! cc $(LDFLAGS) -o portsrv -n portsrv.o $(LIBS)
recover: recover.o tune.o rec.h temp.h
cc $(LDFLAGS) -o recover -n recover.o tune.o $(LIBS)
***************
*** 94,100
cc -o portsrv -n portsrv.o $(LIBS)
recover: recover.o tune.o rec.h temp.h
! cc -o recover -n recover.o tune.o $(LIBS)
teachjove: teachjove.o
cc -o teachjove -n teachjove.o $(LIBS)
--- 94,100 -----
cc $(LDFLAGS) -o portsrv -n portsrv.o $(LIBS)
recover: recover.o tune.o rec.h temp.h
! cc $(LDFLAGS) -o recover -n recover.o tune.o $(LIBS)
teachjove: teachjove.o
cc $(LDFLAGS) -o teachjove -n teachjove.o $(LIBS)
***************
*** 97,103
cc -o recover -n recover.o tune.o $(LIBS)
teachjove: teachjove.o
! cc -o teachjove -n teachjove.o $(LIBS)
setmaps: setmaps.o funcdefs.c
cc -o setmaps setmaps.o
--- 97,103 -----
cc $(LDFLAGS) -o recover -n recover.o tune.o $(LIBS)
teachjove: teachjove.o
! cc $(LDFLAGS) -o teachjove -n teachjove.o $(LIBS)
setmaps: setmaps.o funcdefs.c
cc $(LDFLAGS) -o setmaps setmaps.o
***************
*** 100,106
cc -o teachjove -n 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
--- 100,106 -----
cc $(LDFLAGS) -o teachjove -n teachjove.o $(LIBS)
setmaps: setmaps.o funcdefs.c
! cc $(LDFLAGS) -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
--
Dan Frank
uucp: ... uwvax!prairie!dan
arpa: dan%caseus at spool.wisc.edu
More information about the Comp.sources.unix
mailing list