|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: J T
Length: 18995 (0x4a33) Types: TextFile Names: »JOVE-SV«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─⟦this⟧ »EUUGD11/euug-87hel/sec1/jove/JOVE-SV«
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@spool.wisc.edu