--- ray/src/ot/writeoct.c 1989/02/02 10:33:07 1.1 +++ ray/src/ot/writeoct.c 1991/10/23 11:32:45 1.5 @@ -27,7 +27,7 @@ char *ofn[]; char sbuf[64]; register int i; /* write format number */ - putint((long)OCTMAGIC, 2); + putint((long)(OCTMAGIC+sizeof(OBJECT)), 2); if (!(store & IO_BOUNDS)) return; @@ -43,6 +43,8 @@ char *ofn[]; for (i = 0; ofn[i] != NULL; i++) putstr(ofn[i]); putstr(""); + /* write number of objects */ + putint((long)nobjects, sizeof(OBJECT)); if (!(store & IO_TREE)) return; @@ -92,7 +94,7 @@ register long i; register int siz; { while (siz--) - putc(i>>(siz<<3) & 0377, stdout); + putc(i>>(siz<<3) & 0xff, stdout); if (ferror(stdout)) error(SYSTEM, "write error in putint"); } @@ -105,8 +107,8 @@ double f; extern double frexp(); int e; - putint((long)(frexp(f,&e)*0x7fffffff), sizeof(long)); - putint(e, 1); + putint((long)(frexp(f,&e)*0x7fffffff), 4); + putint((long)e, 1); } @@ -145,9 +147,9 @@ register OBJREC *o; for (i = 0; i < o->oargs.nsargs; i++) putstr(o->oargs.sarg[i]); #ifdef IARGS - putint(o->oargs.niargs, 2); + putint((long)o->oargs.niargs, 2); for (i = 0; i < o->oargs.niargs; i++) - putint(o->oargs.iarg[i], sizeof(long)); + putint((long)o->oargs.iarg[i], 4); #endif putint((long)o->oargs.nfargs, 2); for (i = 0; i < o->oargs.nfargs; i++)