Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!uwvax!oddjob!hao!noao!arizona!robert From: robert@arizona.edu (Robert J. Drabek) Newsgroups: comp.lang.prolog Subject: Re: C-Prolog Bug Fixes Wanted Message-ID: <1636@megaron.arizona.edu> Date: Mon, 13-Apr-87 20:59:49 EST Article-I.D.: megaron.1636 Posted: Mon Apr 13 20:59:49 1987 Date-Received: Sun, 19-Apr-87 04:28:15 EST References: <4855@robin.cs.nott.ac.uk> Organization: U of Arizona CS Dept, Tucson Lines: 120 Keywords: too many to mention here Summary: code fixes for vms version In article <4855@robin.cs.nott.ac.uk>, abc@cs.nott.ac.uk (Andy Cheese) writes: > > I am compiling a list of bug fixes for C-Prolog 1.5 > I would be very grateful if you have improved or altered/fixed > it all for your improvements. -------------------------------------------------------------------- The following changes were made to C-Prolog+ by Chris Janton to get it to run under version 4.4 of VMS. file MAIN.C in initial "include" statements change extern int sys_nerr; extern char *sys_errlist[]; to #ifndef vms extern int sys_nerr; extern char *sys_errlist[]; #else #include perror #endif approx line 1529 change y = MolP(k1)->Env; k1 = MolP(k1)->Fn; to y = MolP(k1)->Env; k1 = SkelP(MolP(k1))->Fn; approx line 1747 change bn = &(SkelP(FunctorP(MolP(ARG1)->Sk)->Fn)->flgsoffe); to bn = &(FunctorP(SkelP(MolP(ARG1)->Sk)->Fn)->flgsoffe); file SYSBITS.C change extern int sys_nerr, PrologEvent; extern char *sys_errlist[]; to #ifndef vms extern int sys_nerr, PrologEvent; extern char *sys_errlist[]; #else #include perror extern int PrologEvent; #endif change function ToEOL from char ToEOL(reply,count) register char *reply; int count; { extern FILE *freopen(); extern int isatty(); char c0, c; /* check for eof */ if ( feof(stdin) ) { freopen( "/dev/tty", "r", stdin ); return PlEOF; } while ((c0 = getchar()) <= ' ' && c0 != '\n'); c = c0; while (c0 != '\n') { c0 = getchar(); if (reply && --count>0) *reply++ = c0; } if (reply) *reply = '\0'; if (c >= 'A' && c <= 'Z') c += 'a'-'A'; return c; } to char ToEOL(reply,count) register char *reply; int count; { extern FILE *freopen(); extern int isatty(); char c0, c; /* check for eof */ /* if ( feof(stdin) ) { /* freopen( "/dev/tty", "r", stdin ); /* return PlEOF; /* } */ fclose(stdin); stdin = fopen("SYS$COMMAND:", "r"); while ((c0 = getchar()) <= ' ' && c0 != '\n'); c = c0; while (c0 != '\n') { c0 = getchar(); if (reply && --count>0) *reply++ = c0; } if (reply) *reply = '\0'; if (c >= 'A' && c <= 'Z') c += 'a'-'A'; fclose(stdin); stdin = fopen("SYS$COMMAND:", "r"); return c; } file PL.H change extern int errno; to #ifndef vms extern int errno; #else extern int noshare errno; #endif copied times.h from Eunice distribution to current directory -------------------------------------------------------------------- -- Robert J. Drabek Department of Computer Science University of Arizona Tucson, AZ 85721