Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ames!oliveb!sun!david@sun.com From: david@sun.com (live by the lawn dart, die by the lawn dart) Newsgroups: comp.sources.d Subject: Re: v17i064: Zoo archive program, Part01/10 Message-ID: <89034@sun.uucp> Date: 9 Feb 89 01:27:21 GMT References: <389@greens.UUCP> Sender: david@sun.uucp Lines: 25 In article <389@greens.UUCP> matthew@sunpix.UUCP ( Sun NCAA) writes: >The problem simply turned out to be, that the value returned from signal() >under pre-[SunOS]4.0 was a pointer to an int. Under 4.0 it is now a pointer >to a void. The fix is (take your choice): > ... >2) Redefine the oldsignal declaration in comment.c, misc.c (2 declarations), > zoodel.c, zooext.c, and zoopack.c from: > > int (*oldsignal)(); > > -- to -- > > void (*oldsignal)(); You can easily (?) #ifdef it so it will work with either pre or post 4.0 SunOS: #ifdef SIG_ERR #define SIGNAL_HANDLER_TYPE void #else #define SIGNAL_HANDLER_TYPE int #endif SIGNAL_HANDLER_TYPE (*oldsignal)();