--- ray/src/ot/readobj2.c 1991/05/29 17:33:18 1.1 +++ ray/src/ot/readobj2.c 1991/07/17 13:56:02 1.3 @@ -51,7 +51,7 @@ int (*callback)(); } else if (c == '!') { /* command */ ungetc(c, infp); fgetline(buf, sizeof(buf), infp); - readobj(buf); + readobj(buf, callback); } else { /* object */ ungetc(c, infp); getobject(input, infp, callback); @@ -72,8 +72,8 @@ int (*f)(); char sbuf[MAXSTR]; OBJREC thisobj; /* get modifier */ - fscanf(fp, "%s", sbuf); - thisobj.omod = modifier(sbuf); + fscanf(fp, "%*s"); + thisobj.omod = OVOID; /* get type */ fscanf(fp, "%s", sbuf); if (!strcmp(sbuf, ALIASID)) @@ -123,6 +123,7 @@ readfargs(fa, fp) /* read function arguments from str register FUNARGS *fa; FILE *fp; { + extern char *strcpy(); char sbuf[MAXSTR]; int n; register int i; @@ -136,7 +137,10 @@ FILE *fp; for (i = 0; i < fa->nsargs; i++) { if (fscanf(fp, "%s", sbuf) != 1) return(-1); - fa->sarg[i] = savestr(sbuf); + fa->sarg[i] = malloc(strlen(sbuf)+1); + if (fa->sarg[i] == NULL) + goto memerr; + (void)strcpy(fa->sarg[i], sbuf); } } else fa->sarg = NULL;