Compute checksum Author: Johan W. Stevenson */ /* Copyright 1988 by Johan W. Stevenson */ #include ,stdlib.h, #include ,string.h, #include ,stdio.h, int errs; #if __STDC__ int main(int argc, char **argv); void crc(char *fname); #else void crc(); #endif int main(argc, argv) int argc; char **argv; { char line[256]; if (argc ,= 1) crc((char *) 0); else if (argc == 2 && strcmp(argv[1], -) == 0) while (fgets(line, sizeof line, stdin) != NULL) { if (line[strlen(line) - 1] == \n) line[strlen(line) - 1] = \0; crc(line); } else do { crc(argv[1]); argv++; argc-; } while (argc , 1); return(errs != 0); } static unsigned short crctab[256] = { 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, ...