tvf@frau.UUCP (Thomas V. Frauenhofer) (01/31/90)
Below is a shar file containing all the diffs needed to make Jove 4.14 compile and run under System V UNIX, specifically Microport V/AT 2.4. A couple of quick notes for people who might use this: 1) Define UPORT if you are using Microport. This gets around two pieces of Microport brain-damage. It removes large buffers from the stack (Microport's loader has an option that sup- posedly resizes the stack, but it doesn't seem to work). It also deals with the problem where the Micoport people mis-typed the parameters for 'tgetstr' (Grr!). 2) The compile/link flag '-Ml' is also required for Microport, BUT SHOULD NOT BE USED FOR OTHER SYSTEM V SYSTEMS! Things are still not perfect in Microport-world however. Three outstanding bugs are: 1) When you delete a line, another line magically "disappears" from the screen. It's still in the buffer, and if you refresh the screen (using the 'clear-and-redraw' command) it reappears. This is a bug in the ansi termifo that Microport supplies, I'll be playing with it to get something to work. 2) (Similar to the above) sometimes when I am scrolling down a file I see duplicate lines displayed. 'clear-and-redraw' again clears this up. 3) When JOVE is invoked in your HOME directory, it DOES NOT LOAD your .joverc file. I'm not sure what the problem is here, it doesn't happen under the other System V machine I use. Wierd. Personally, I can live with the above much better than I can tolerate vi (no religious flames, please, this is a personal preferance). Well, that's all for now. This shar file has an exit at the end, so you don't have to worry about the trailing garbage. Thanks to Jon Payne for such a useful piece of software. - Tom Frauenhofer (Signature at end) ------------------------------ CUT HERE ------------------------------------- : # This shar file format does not care which shell (Bourne/C/Korn) # you use, as it should always select Bourne (or Korn). # # # COMMENTS # # This contains context diffs for all the files I had to modify to get JOVE # version 4.14 to compile and execute under System V UNIX and Microport V/AT # version 2.4 (I believe that it will also compile under verions 2.3 as well). # # Files: # Makefile.diff # jove.c.diff # misc.c.diff # recover.c.diff # scandir.c.diff # sysdep.h.diff # term.c.diff # termcap.h.diff # util.c.diff # # # Test if file exists # if [ -f Makefile.diff ] then echo "Will not overwrite existing file Makefile.diff" else # # Extract contents of file Makefile.diff: # echo "-x Makefile.diff" cat << \FLUNK_STUFF > 'Makefile.diff' *** Makefile Wed Jan 10 19:14:54 1990 --- Makefile.new Sat Nov 4 08:17:56 1989 *************** *** 21,33 **** DESTDIR = TMPDIR = /tmp RECDIR = /tmp ! LIBDIR = $(HOME)/lib/jove ! BINDIR = $(HOME)/bin/sun3 ! MANDIR = $(HOME)/lib/man$(MANEXT) MANEXT = l ! JSHELL = /bin/csh PROG = jove VERSION = 4.14 --- 21,34 ---- DESTDIR = + ROOTDIR=/u/new TMPDIR = /tmp RECDIR = /tmp ! LIBDIR = $(ROOTDIR)/lib/jove ! BINDIR = $(ROOTDIR)/prebin ! MANDIR = $(ROOTDIR)/lib/man$(MANEXT) MANEXT = l ! JSHELL = /u/new/bin/ksh PROG = jove VERSION = 4.14 *************** *** 54,60 **** # SCO Xenix: LIBS = -ltermcap -lx # MIPS: -lbsd ! 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). --- 55,61 ---- # SCO Xenix: LIBS = -ltermcap -lx # MIPS: -lbsd ! 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). *************** *** 63,69 **** # 4.1BSD: LDFLAGS = # 4.2BSD: LDFLAGS = # 4.3BSD: LDFLAGS = ! # SysV Rel. 2: LDFLAGS = -Ml # SCO Xenix: LDFLAGS = -Ml -F 3000 # # SEPFLAG should be: --- 64,71 ---- # 4.1BSD: LDFLAGS = # 4.2BSD: LDFLAGS = # 4.3BSD: LDFLAGS = ! # SysV Rel. 2: LDFLAGS = ! # Microport: LDFLAGS = -Ml -k8192 # SCO Xenix: LDFLAGS = -Ml -F 3000 # # SEPFLAG should be: *************** *** 72,78 **** # PDP-11 without separate I&D: SEPFLAG = -n # ! LDFLAGS = SEPFLAG = --- 74,80 ---- # PDP-11 without separate I&D: SEPFLAG = -n # ! LDFLAGS = -Ml -k8192 SEPFLAG = *************** *** 81,89 **** # CFLAGS = -LARGE -O -F 3000 -K -Mle (say -Mle2 for an 80286) # for MIPS, set # CFLAGS = -O -I/usr/include/bsd ! CFLAGS = -O BASESEG = funcdefs.o keys.o argcount.o ask.o buf.o ctype.o delete.o \ disp.o insert.o io.o jove.o marks.o misc.o re.o screen.o \ tune.o util.o vars.o version.o list.o keymaps.o --- 83,96 ---- # CFLAGS = -LARGE -O -F 3000 -K -Mle (say -Mle2 for an 80286) # for MIPS, set # CFLAGS = -O -I/usr/include/bsd + # for Microport, set + # MEMFLAGS = -Ml + # CFLAGS = $(MEMFLAGS) -DUPORT ! MEMFLAGS = -Ml + CFLAGS = $(MEMFLAGS) -DUPORT -g + BASESEG = funcdefs.o keys.o argcount.o ask.o buf.o ctype.o delete.o \ disp.o insert.o io.o jove.o marks.o misc.o re.o screen.o \ tune.o util.o vars.o version.o list.o keymaps.o *************** *** 91,97 **** 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) --- 98,104 ---- 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 termcap.o OBJECTS = $(BASESEG) $(OVLAY1) $(OVLAY2) $(OVLAY3) $(OVLAY4) $(OVLAY5) *************** *** 99,105 **** delete.c disp.c extend.c fp.c fmt.c insert.c io.c iproc.c \ jove.c list.c macros.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 --- 106,112 ---- delete.c disp.c extend.c fp.c fmt.c insert.c io.c iproc.c \ jove.c list.c macros.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 termcap.c SOURCES = $(C_SRC) portsrv.c recover.c setmaps.c teachjove.c kbd.c *************** *** 218,260 **** -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) --- 225,276 ---- -mkdir $(DESTDIR)$(LIBDIR) $(TEACH-JOVE): doc/teach-jove ! # install -c -m 644 doc/teach-jove $(TEACH-JOVE) ! cp 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) ! cp 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) ! cp portsrv $(PORTSRV) $(KBD): kbd ! # install -c -s -m 755 kbd $(KBD) ! cp kbd $(KBD) $(RECOVER): recover ! # install -c -s -m 755 recover $(RECOVER) ! cp recover $(RECOVER) $(JOVE): xjove ! # install -c -m 755 xjove $(JOVE) ! cp xjove $(JOVE) $(TEACHJOVE): teachjove ! # install -c -s -m 755 teachjove $(TEACHJOVE) ! cp 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) ! cp /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) ! cp /tmp/teachjove.nr $(TEACHJOVEM) echo: @echo $(C-FILES) $(HEADERS) FLUNK_STUFF # # Check file size of Makefile.diff # FWC=`wc -c Makefile.diff | awk '{printf ("%d", $1)}'` if [ $FWC -ne 6343 ] then echo "ERROR: File size of Makefile.diff should be 6343 is $FWC" fi fi # # Test if file exists # if [ -f jove.c.diff ] then echo "Will not overwrite existing file jove.c.diff" else # # Extract contents of file jove.c.diff: # echo "-x jove.c.diff" cat << \FLUNK_STUFF > 'jove.c.diff' *** jove.c Wed Jan 10 18:28:42 1990 --- jove.c.new Fri Nov 3 19:23:28 1989 *************** *** 195,200 **** --- 195,201 ---- #ifdef UNIX if (CoreDump) abort(); + cl_scr(1) ; #ifdef PROFILING exit(0); #else *************** *** 1233,1238 **** --- 1234,1245 ---- } #endif + #ifdef UPORT + static char ms_iobuff[LBSIZE], + ms_genbuf[LBSIZE], + ms_linebuf[LBSIZE]; + #endif /* UPORT */ + void #ifdef MAC /* will get args from user, if option key held during launch */ *************** *** 1250,1258 **** --- 1257,1271 ---- char ttbuf[MAXTTYBUF]; #ifndef MSDOS # ifndef VMUNIX + #ifdef UPORT + char *s_iobuff = ms_iobuff, + *s_genbuf = ms_genbuf, + *s_linebuf = ms_linebuf ; + #else /* UPORT */ char s_iobuff[LBSIZE], s_genbuf[LBSIZE], s_linebuf[LBSIZE]; + #endif /* UPORT */ /* The way I look at it, there ain't no way I is gonna run out of stack space UNLESS I have some kind of infinite recursive bug. So why use up some valuable memory, when FLUNK_STUFF # # Check file size of jove.c.diff # FWC=`wc -c jove.c.diff | awk '{printf ("%d", $1)}'` if [ $FWC -ne 1015 ] then echo "ERROR: File size of jove.c.diff should be 1015 is $FWC" fi fi # # Test if file exists # if [ -f misc.c.diff ] then echo "Will not overwrite existing file misc.c.diff" else # # Extract contents of file misc.c.diff: # echo "-x misc.c.diff" cat << \FLUNK_STUFF > 'misc.c.diff' *** misc.c Wed Jan 10 18:30:09 1990 --- misc.c.new Fri Nov 3 09:24:02 1989 *************** *** 96,101 **** --- 96,102 ---- void Leave() { + cl_scr(1) ; longjmp(mainjmp, QUIT); } FLUNK_STUFF # # Check file size of misc.c.diff # FWC=`wc -c misc.c.diff | awk '{printf ("%d", $1)}'` if [ $FWC -ne 194 ] then echo "ERROR: File size of misc.c.diff should be 194 is $FWC" fi fi # # Test if file exists # if [ -f recover.c.diff ] then echo "Will not overwrite existing file recover.c.diff" else # # Extract contents of file recover.c.diff: # echo "-x recover.c.diff" cat << \FLUNK_STUFF > 'recover.c.diff' *** recover.c Wed Jan 10 18:30:17 1990 --- recover.c.new Thu Nov 2 21:56:39 1989 *************** *** 62,67 **** --- 62,71 ---- private struct rec_entry *buflist[100]; /* system initializes to 0 */ + #ifdef CCI + #define BSD_DIR + #endif /* CCI */ + #ifndef BSD_DIR typedef struct { FLUNK_STUFF # # Check file size of recover.c.diff # FWC=`wc -c recover.c.diff | awk '{printf ("%d", $1)}'` if [ $FWC -ne 299 ] then echo "ERROR: File size of recover.c.diff should be 299 is $FWC" fi fi # # Test if file exists # if [ -f scandir.c.diff ] then echo "Will not overwrite existing file scandir.c.diff" else # # Extract contents of file scandir.c.diff: # echo "-x scandir.c.diff" cat << \FLUNK_STUFF > 'scandir.c.diff' *** scandir.c Wed Jan 10 18:30:25 1990 --- scandir.c.new Thu Nov 2 21:56:39 1989 *************** *** 30,35 **** --- 30,39 ---- # undef scandir #endif + #ifdef CCI + #define BSD_DIR + #endif /* CCI */ + #ifdef BSD_DIR # define DIRSIZE(entry) DIRSIZ((entry)) #else FLUNK_STUFF # # Check file size of scandir.c.diff # FWC=`wc -c scandir.c.diff | awk '{printf ("%d", $1)}'` if [ $FWC -ne 278 ] then echo "ERROR: File size of scandir.c.diff should be 278 is $FWC" fi fi # # Test if file exists # if [ -f sysdep.h.diff ] then echo "Will not overwrite existing file sysdep.h.diff" else # # Extract contents of file sysdep.h.diff: # echo "-x sysdep.h.diff" cat << \FLUNK_STUFF > 'sysdep.h.diff' *** sysdep.h Wed Jan 10 18:30:48 1990 --- sysdep.h.new Thu Nov 2 21:56:35 1989 *************** *** 69,79 **** #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 */ ! /*# define SYSVR3 /* system 5, rel. 3 */ /* M_XENIX is defined by the Compiler */ #endif /* UNIX */ --- 69,79 ---- #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 */ ! # define SYSVR3 /* system 5, rel. 3 */ /* M_XENIX is defined by the Compiler */ #endif /* UNIX */ FLUNK_STUFF # # Check file size of sysdep.h.diff # FWC=`wc -c sysdep.h.diff | awk '{printf ("%d", $1)}'` if [ $FWC -ne 868 ] then echo "ERROR: File size of sysdep.h.diff should be 868 is $FWC" fi fi # # Test if file exists # if [ -f term.c.diff ] then echo "Will not overwrite existing file term.c.diff" else # # Extract contents of file term.c.diff: # echo "-x term.c.diff" cat << \FLUNK_STUFF > 'term.c.diff' *** term.c Wed Jan 10 18:30:30 1990 --- term.c.new Fri Nov 3 19:23:42 1989 *************** *** 118,123 **** --- 118,127 ---- _exit(1); } + #ifdef UPORT + static char gt_tbuff[2048] ; + #endif /* UPORT */ + void getTERM() { *************** *** 125,131 **** --- 129,139 ---- char termbuf[13], *termname = NULL, *termp = tspace, + #ifdef UPORT + *tbuff = gt_tbuff ; + #else /* UPORT */ tbuff[2048]; /* Good grief! */ + #endif /* UPORT */ const char *tsp = ts; int i; *************** *** 174,180 **** --- 182,192 ---- nm[0] = *tsp++; nm[1] = *tsp++; + #ifdef UPORT + *(meas[i]) = (char *) tgetstr(nm, termp); + #else /* UPORT */ *(meas[i]) = (char *) tgetstr(nm, &termp); + #endif /* UPORT */ if (termp > tspace + sizeof(tspace)) goto wimperr; } FLUNK_STUFF # # Check file size of term.c.diff # FWC=`wc -c term.c.diff | awk '{printf ("%d", $1)}'` if [ $FWC -ne 813 ] then echo "ERROR: File size of term.c.diff should be 813 is $FWC" fi fi # # Test if file exists # if [ -f termcap.h.diff ] then echo "Will not overwrite existing file termcap.h.diff" else # # Extract contents of file termcap.h.diff: # echo "-x termcap.h.diff" cat << \FLUNK_STUFF > 'termcap.h.diff' No differences encountered FLUNK_STUFF # # Check file size of termcap.h.diff # FWC=`wc -c termcap.h.diff | awk '{printf ("%d", $1)}'` if [ $FWC -ne 27 ] then echo "ERROR: File size of termcap.h.diff should be 27 is $FWC" fi fi # # Test if file exists # if [ -f util.c.diff ] then echo "Will not overwrite existing file util.c.diff" else # # Extract contents of file util.c.diff: # echo "-x util.c.diff" cat << \FLUNK_STUFF > 'util.c.diff' *** util.c Wed Jan 10 18:30:39 1990 --- util.c.new Thu Nov 2 21:56:39 1989 *************** *** 814,821 **** --- 814,825 ---- { short avg[3]; + #ifndef CCI gldav(avg); *dp = (double) avg[0] / 256; + #else /* CCI */ + *dp = 0.0 ; + #endif /* CCI */ } # endif FLUNK_STUFF # # Check file size of util.c.diff # FWC=`wc -c util.c.diff | awk '{printf ("%d", $1)}'` if [ $FWC -ne 281 ] then echo "ERROR: File size of util.c.diff should be 281 is $FWC" fi fi exit 0 -- Thomas V. Frauenhofer ...!rutgers!rochester!cci632!ccird7!tvf *or* ...!attctc!swamps!frau!tvf (tvf@frau, tvf@cci632) Daffy Duck Sings: "I once knew an acrobat's daughter who swung by her teeth from a noose. 'Til one day her bridgework gave way, and she flew through the air like a Goose!"
hsu@hutcs.hut.fi (Heikki Suonsivu) (02/01/90)
In article <39@frau.UUCP> tvf@frau.UUCP (Thomas V. Frauenhofer) writes: > it reappears. This is a bug in the ansi termifo that > Microport supplies, I'll be playing with it to get something I have seen this behaviour with nethack also, and heard rumors about other programs using terminfo failing with same symptoms (refresh clears it up). Anybody else have any information about this? I think its not the terminfo entry, same problem appears with many different terminfo entries which work correctly with most other programs. - Heikki Suonsivu, @ 2:504/1, Kuutamokatu 5 A 7/02210 Espoo/FINLAND, hsu@otax.tky.hut.fi, riippu SN, voice +358-0-8030017 mornings (11-12am) EET, Email preferable.