--- ray/src/common/readobj.c 1989/02/02 10:34:39 1.1 +++ ray/src/common/readobj.c 1990/09/18 09:53:35 1.5 @@ -19,14 +19,14 @@ static char SCCSid[] = "$SunId$ LBL"; #include OBJREC *objblock[MAXOBJBLK]; /* our objects */ -int nobjects = 0; /* # of objects */ +OBJECT nobjects = 0; /* # of objects */ readobj(input) /* read in an object file or stream */ char *input; { FILE *popen(); - char *fgets(); + char *fgets(), *fgetline(); FILE *infp; char buf[512]; register int c; @@ -48,12 +48,9 @@ char *input; continue; if (c == '#') { /* comment */ fgets(buf, sizeof(buf), infp); - } else if (c == '!') { /* pipe */ + } else if (c == '!') { /* command */ ungetc(c, infp); - fgets(buf, sizeof(buf), infp); - c = strlen(buf); - if (buf[c-1] == '\n') - buf[c-1] = '\0'; + fgetline(buf, sizeof(buf), infp); readobj(buf); } else { /* object */ ungetc(c, infp); @@ -108,7 +105,7 @@ FILE *fp; error(USER, errmsg); } objp->otype = objptr(alias)->otype; - bcopy(&objptr(alias)->oargs, &objp->oargs, sizeof(FUNARGS)); + copystruct(&objp->oargs, &objptr(alias)->oargs); } else if (readfargs(&objp->oargs, fp) < 0) { sprintf(errmsg, "(%s): bad arguments", name); objerror(objp, USER, errmsg); @@ -146,7 +143,7 @@ FILE *fp; return(-1); #ifdef IARGS if (fa->niargs = n) { - fa->iarg = (long *)bmalloc(n*sizeof(int)); + fa->iarg = (long *)bmalloc(n*sizeof(long)); if (fa->iarg == NULL) goto memerr; for (i = 0; i < n; i++) @@ -185,7 +182,7 @@ newobject() /* get a new object */ i = nobjects >> 6; if (i >= MAXOBJBLK) return(OVOID); - objblock[i] = (OBJREC *)malloc(0100*sizeof(OBJREC)); + objblock[i] = (OBJREC *)bmalloc(0100*sizeof(OBJREC)); if (objblock[i] == NULL) return(OVOID); }