|
|
1.1 root 1: #define BSIZE 1024 /* research! */
2:
3: int
4: sumr(register long sum, char *buf, int n)
5: {
6: register unsigned char *s, *send;
7:
8: if(buf == 0){
9: sum &= 0xFFFF;
10: printf("%05u%6ld", sum, (n + (BSIZE - 1)) / BSIZE);
11: return(0);
12: }
13: for(s = (unsigned char *)buf, send = s+n; s < send; s++)
14: if (sum & 1)
15: sum = 0xffff & ((sum>>1) + *s + 0x8000);
16: else
17: sum = 0xffff & ((sum>>1) + *s);
18: return(sum);
19: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.