File:  [Research Unix] / researchv10no / cmd / sum / sumr.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:35 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv10, HEAD
researchv10 Norman

#define		BSIZE		1024		/* research! */

int
sumr(register long sum, char *buf, int n)
{
	register unsigned char *s, *send;

	if(buf == 0){
		sum &= 0xFFFF;
		printf("%05u%6ld", sum, (n + (BSIZE - 1)) / BSIZE);
		return(0);
	}
	for(s = (unsigned char *)buf, send = s+n; s < send; s++)
		if (sum & 1)
			sum = 0xffff & ((sum>>1) + *s + 0x8000);
		else
			sum = 0xffff & ((sum>>1) + *s);
	return(sum);
}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.