[comp.os.minix] AR.C fix - oops

walls@killer.UUCP (Monty Walls) (02/15/88)

---------------------------------------------------------------------------
Sorry about missing this but in ar.c I used ints as counters twice
where I should not have.  Because of using the ints it would not 
print the size of a member that is greater than MAXINT correctly and
it would not extract that member correctly, but would archive the 
member correctly.
			Monty Walls

---------------------------Cut Here----------------------------------------
35c35,36
<  */
---
>  * change log:
>  *	forgot that ar_size is a long for printing - 2/14/88 - mrw
438c439
< 		fprintf(stdout,"%5.5d",member->ar_size);
---
> 		fprintf(stdout,"%5.5D",member->ar_size);	/* oops is long - mrw */
448a450
> 	long size;
467,469c469,472
< 	
< 	for (cnt = member->ar_size; cnt > 0; cnt -= ret) {
< 		ret = read(fd, buffer, (cnt < BUFFERSIZE ? cnt : BUFFERSIZE));
---
> 	/* changed loop to use long size for correct extracts */	
> 	for (size = member->ar_size; size > 0; size -= ret) {
> 		cnt = (size < BUFFERSIZE ? size : BUFFERSIZE);
> 		ret = read(fd, buffer, cnt);
---------------------------End Here-----------------------------------------

Monty Walls
MIS Division, Tech. Support
Oklahoma Tax Commission
2501 N. Lincoln
OKC, OK, 73194