[comp.sources.bugs] JOVE Problems with SYSV

rommel@runx.ips.oz (Stephen Joyce) (07/26/88)

In attempting to compile the JOVE editor for my NS32k system (SYSVR2),
I come up against a few problems (mainly to do with curses).
The linker cannot find.... BC, UP, or PC in the curses library (& SP
is multiply defined ).
	Has anyone else using JOVE on a System 5 machine had similar
problems or is my curses library deficient??

					Michael 

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Stephen Joyce & Michael Katzmann / ATN Channel 7 Sydney. Engineering

ACSnet: rommel@runx.ips				CSNET:	rommel@runx.ips.oz
ARPA:	rommel%runx.ips.oz@seismo.css.gov	JANET:  runx.ips.oz!rommel@ukc
UUCP: {enea,hplabs,mcvax,prlb2,seismo,ubc-vision,ukc}!munnari!runx.ips.oz!rommel

"No more things should be presumed to exist than are absolutly necessary."
						  - William Occam (1280-1349)

woods@gpu.utcs.toronto.edu (Greg Woods) (07/30/88)

In article <1662@runx.ips.oz> rommel@runx.OZ (Michael Katzmann) writes:
>In attempting to compile the JOVE editor for my NS32k system (SYSVR2),
>I come up against a few problems (mainly to do with curses).
>The linker cannot find.... BC, UP, or PC in the curses library (& SP
>is multiply defined ).
>	Has anyone else using JOVE on a System 5 machine had similar
>problems or is my curses library deficient??
>
>					Michael 
>
>_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
>Stephen Joyce & Michael Katzmann / ATN Channel 7 Sydney. Engineering
>
>ACSnet: rommel@runx.ips				CSNET:	rommel@runx.ips.oz
>ARPA:	rommel%runx.ips.oz@seismo.css.gov	JANET:  runx.ips.oz!rommel@ukc
>UUCP: {enea,hplabs,mcvax,prlb2,seismo,ubc-vision,ukc}!munnari!runx.ips.oz!rommel

I've just completed porting Jove to my 386/ix (Sys V Rel 3.1.0.5) system.

My base version of Jove was 4.9.

The missing variables probably indicate a bug in your curses library.
Unfortunately, the SysVR2 manuals I have are not very good about
describing the curses/terminfo library.  However, if you look in term.c,
you'll see that PC is defined for SYSV, and declared otherwise.  Both BC
and UP are defined above.  SP is also defined in this file.  You might
want to check the consistensy of your source and Makefile.

I've also experienced other problems.

Jove defines all of it's own stdio and printf library.  I'm not sure I
like this, though it may make for much more efficient code.  However,
the printf routines in fmt.c (and some in ask.c and elswhere) use
varargs.h improperly, and non-portably.  If your machine (compiler)
builds its stack in a different manner than the currently supported
hardware, you may have tremendous problems.  I have fixed some of the
blatant mis-uses, but others may have to stay.

I found two bugs in 386/ix:

In ask.c, fixing do_ask() to use varargs.h properly was impossible
because of a compiler bug.  The 386/ix (1.0.5) compiler cannot properly
deal with function pointers.  (Microsoft (Xenix) worked fine!)

Also, disp.c calls byte_copy() which is actually memcpy() with a
negative value for arg 3.  I'm not sure why (maybe it really does want
to copy the buffer backwards?) but the end result is a Bus Error.  Arg 3
of memcpy() is now declared size_t, which is unsigned.  I just
un-defined the byte_copy() macro, which causes a simple C version to be
compiled in.

I found a "bug" (incompatablilty) in Jove:

Using terminfo/curses with Jove may cause the display to periodically be
corrupted with some terminal types.  The problem originates in Jove's
use of the termcap(terminfo) strings.  The new terminfo low level
routines include one called tparm().  It is used to parse and format the
more complex parameterized strings.  Jove, however, simply uses it's own
version of sprintf().  The calls to sprintf() using M_DC, M_IC, etc., in
disp. and elsewhere must be changed to something like:

	putpad(tparm(M_DC, value), ...);

I hope to send my fixes to jpayne@??? "Real Soon Now".
-- 
						Greg Woods.

UUCP: utgpu!woods, utgpu!{ontmoh, ontmoh!ixpierre}!woods
VOICE: (416) 242-7572 [h]		LOCATION: Toronto, Ontario, Canada

casey@admin.cognet.ucla.edu (Casey Leedom) (07/31/88)

In article <1662@runx.ips.oz> rommel@runx.OZ (Michael Katzmann) writes:
> 	In attempting to compile the JOVE editor for my NS32k system
> (SYSVR2), I come up against a few problems (mainly to do with curses).
> The linker cannot find.... BC, UP, or PC in the curses library (& SP is
> multiply defined ).
> 	Has anyone else using JOVE on a System 5 machine had similar
> problems or is my curses library deficient??

  What version of Jove are you attempting to compile?  Somewhere between
version 4.6 and 4.8 I helped to fix a lot of the SYSV support.  You can
get a copy of the current version of Jove (4.9a) via anonymous FTP from
cs.rochester.edu as the file public/jove.tar.4.9a.

Casey