Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!lll-winken!xanth!nic.MR.NET!hal!ncoast!allbery From: allbery@ncoast.ORG (Brandon S. Allbery) Newsgroups: comp.unix.xenix Subject: Re: jove 4.12 on SCO Xenix 286 ? Message-ID: <13564@ncoast.ORG> Date: 13 Apr 89 22:41:55 GMT References: <237@libove.UUCP> Reply-To: allbery@ncoast.UUCP (Brandon S. Allbery) Followup-To: comp.unix.xenix Organization: Cleveland Public Access UN*X, Cleveland, Oh Lines: 43 As quoted from <237@libove.UUCP> by root@libove.UUCP (Jay M. Libove): +--------------- | Has anyone gotten JOVE version 4.12 to compile on SCO Xenix 80286 | (version 2.2.1 just if it matters) ? | | I have worked through a number of small things, and finally ended | up with: | | cc -O -LARGE -F 3000 -K -Ml2e -c io.c | io.c | /usr/include/sys/file.h(24) : error 25: `file' : enum/struct/union type redefinition +--------------- Jove 4.12 is NOT directly portable to System V. I'm still working on diffs. The problem is that Jove uses a "struct file" internally, then #include's -- which is the Berkeley version of what we call . Under AT&T-derived Unixes, defines the kernel's struct file, causing a collision. Quick fix: #ifdef SYSV #include #define FREAD O_RDONLY /* working from memory, here -- the actual */ #define FWRITE O_WRONLY /* BSD flag names may be different */ #define FCREAT O_CREAT #else #include #endif This isn't the only System V incompatibility, however. I'll post my diffs when they're complete; I'm still working on things like using SVR3 signal handling to compensate for interruptable I/O where possible (a big win over the SVR2 version when editing large files). I'm also working in my modified C-mode backspace code as an option controlled by both #define and variable. ++Brandon -- Brandon S. Allbery, moderator of comp.sources.misc allbery@ncoast.org uunet!hal.cwru.edu!ncoast!allbery ncoast!allbery@hal.cwru.edu Send comp.sources.misc submissions to comp-sources-misc@ NCoast Public Access UN*X - (216) 781-6201, 300/1200/2400 baud, login: makeuser