--- ray/src/util/rpiece.c 1997/07/29 11:27:49 2.35 +++ ray/src/util/rpiece.c 2003/06/26 00:58:11 2.39 @@ -1,9 +1,6 @@ -/* Copyright (c) 1995 Regents of the University of California */ - #ifndef lint -static char SCCSid[] = "$SunId$ LBL"; +static const char RCSid[] = "$Id: rpiece.c,v 2.39 2003/06/26 00:58:11 schorsch Exp $"; #endif - /* * Generate sections of a picture. */ @@ -23,9 +20,10 @@ char *argv[]; #else #include + #include "color.h" #include "view.h" -#include "resolu.h" +#include "rtprocess.h" #ifndef NFS #define NFS 1 @@ -48,14 +46,11 @@ char *argv[]; #define unguard() 0 #endif -#ifndef linux -extern char *sys_errlist[]; -#endif +extern char *strerror(); /* rpict command */ char *rpargv[128] = {"rpict", "-S", "1"}; int rpargc = 3; -int rpd[3]; FILE *torp, *fromrp; COLR *pbuf; /* our view parameters */ @@ -77,10 +72,8 @@ int verbose = 0; unsigned timelim = 0; int rvrlim = -1; -extern long lseek(), ftell(); - int gotalrm = 0; -int onalrm() { gotalrm++; } +void onalrm(int i) { gotalrm++; } main(argc, argv) @@ -92,12 +85,13 @@ char *argv[]; progname = argv[0]; for (i = 1; i < argc; i++) { /* expand arguments */ - while (rval = expandarg(&argc, &argv, i)) - if (rval < 0) { - fprintf(stderr, "%s: cannot expand '%s'", - argv[0], argv[i]); - exit(1); - } + while ((rval = expandarg(&argc, &argv, i)) > 0) + ; + if (rval < 0) { + fprintf(stderr, "%s: cannot expand '%s'", + argv[0], argv[i]); + exit(1); + } if (argv[i][0] == '-') switch (argv[i][1]) { case 'v': @@ -202,7 +196,7 @@ int ltyp; fls.l_type = ltyp; if (fcntl(fd, F_SETLKW, &fls) < 0) { fprintf(stderr, "%s: cannot lock/unlock file: %s\n", - progname, sys_errlist[errno]); + progname, strerror(errno)); exit(1); } } @@ -217,6 +211,7 @@ char **av; char *err; FILE *fp; int hr, vr; + SUBPROC rpd; /* since we don't close_process(), this can be local */ /* set up view */ if ((err = setview(&ourview)) != NULL) { fprintf(stderr, "%s: %s\n", progname, err); @@ -275,12 +270,12 @@ char **av; goto filerr; dolock(outfd, F_UNLCK); /* start rpict process */ - if (open_process(rpd, rpargv) <= 0) { + if (open_process(&rpd, rpargv) <= 0) { fprintf(stderr, "%s: cannot start %s\n", progname, rpargv[0]); exit(1); } - if ((fromrp = fdopen(rpd[0], "r")) == NULL || - (torp = fdopen(rpd[1], "w")) == NULL) { + if ((fromrp = fdopen(rpd.r, "r")) == NULL || + (torp = fdopen(rpd.w, "w")) == NULL) { fprintf(stderr, "%s: cannot open stream to %s\n", progname, rpargv[0]); exit(1); @@ -510,7 +505,7 @@ int xpos, ypos; filerr("lock"); #endif /* write new piece to file */ - if (lseek(outfd, fls.l_start, 0) == -1) + if (lseek(outfd, (off_t)fls.l_start, 0) < 0) filerr("seek"); if (hmult == 1) { if (writebuf(outfd, (char *)pbuf, @@ -522,8 +517,8 @@ int xpos, ypos; hr*sizeof(COLR)) != hr*sizeof(COLR)) filerr("write"); if (y < vr-1 && lseek(outfd, - (long)(hmult-1)*hr*sizeof(COLR), - 1) == -1) + (off_t)(hmult-1)*hr*sizeof(COLR), + 1) < 0) filerr("seek"); } #if NFS @@ -553,7 +548,7 @@ filerr(t) /* report file error and exit */ char *t; { fprintf(stderr, "%s: %s error on file \"%s\": %s\n", - progname, t, outfile, sys_errlist[errno]); + progname, t, outfile, strerror(errno)); _exit(1); }