update to the latest cksum utility from uunet. this one is posix

compliant (i think), and fixes a bogon in the old CRC calculation.
yes, that's right, the CRC's it generates are different.
This commit is contained in:
cgd 1993-11-02 07:33:08 +00:00
parent 3e21ea2e33
commit 19f1d2d611
8 changed files with 169 additions and 140 deletions

View File

@ -1,5 +1,5 @@
# from: @(#)Makefile 5.3 (Berkeley) 4/4/91
# $Id: Makefile,v 1.2 1993/07/31 15:25:01 mycroft Exp $
# from: @(#)Makefile 8.1 (Berkeley) 6/6/93
# $Id: Makefile,v 1.3 1993/11/02 07:33:08 cgd Exp $
PROG= cksum
SRCS= cksum.c crc.c print.c sum1.c sum2.c

View File

@ -1,5 +1,5 @@
.\" Copyright (c) 1991, 1991 The Regents of the University of California.
.\" All rights reserved.
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" the Institute of Electrical and Electronics Engineers, Inc.
@ -32,12 +32,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" from: @(#)cksum.1 5.5 (Berkeley) 6/27/91
.\" $Id: cksum.1,v 1.2 1993/08/01 07:33:55 mycroft Exp $
.\" from: @(#)cksum.1 8.1 (Berkeley) 6/29/93
.\" $Id: cksum.1,v 1.3 1993/11/02 07:33:09 cgd Exp $
.\"
.Dd June 27, 1991
.Dd June 29, 1993
.Dt CKSUM 1
.Os
.Os BSD 4.4
.Sh NAME
.Nm cksum
.Nd display file checksums and block counts
@ -48,12 +48,13 @@
.Sh DESCRIPTION
The
.Nm cksum
utility writes to standard output three whitespace separated fields for each
input file (or the standard input by default).
utility writes to the standard output three whitespace separated
fields for each input file.
These fields are a checksum
.Tn CRC ,
the total number of bytes in the file and
the file name.
the total number of octets in the file and the file name.
If no file name is specified, the standard input is used and no file name
is written.
.Pp
The options are as follows:
.Bl -tag -width indent
@ -87,7 +88,7 @@ r = s % 2^16 + (s % 2^32) / 2^16;
cksum = (r % 2^16) + r / 2^16;
.Ed
.Pp
Both algorithm 1 and 2 write to standard output the same fields as
Both algorithm 1 and 2 write to the standard output the same fields as
the default algorithm except that the size of the file in bytes is
replaced with the size of the file in blocks.
For historic reasons, the block size is 1024 for algorithm 1 and 512
@ -118,30 +119,35 @@ the following procedure:
.Bd -filled -offset indent
The
.Ar n
bits of the file are considered to be the coefficients of a mod 2
bits to be evaluated are considered to be the coefficients of a mod 2
polynomial M(x) of degree
.Ar n Ns \-1 .
These
.Ar n
bits are the bits from the file, with the most significant bit being the most
significant bit of the first octet of the file and the last bit being the least
significant bit of the last octet, padded with zero bits (if necessary) to
achieve an integral number of octets, followed by one or more octets
representing the length of the file as a binary value, least significant octet
first.
The smallest number of octets capable of representing this integer are used.
.Pp
M(x) is multiplied by x^32 (i.e., shifted left 32 bits) and divided by
G(x) using mod 2 division, producing a remainder R(x) of degree <= 31.
During the division, each time the intermediate remainder is zero, it
is changed to the next value from a predefined sequence of
32-bit integers before completing the division.
This sequence is long and complex -- see the source code for more
information.
.Pp
The coefficients of R(x) are considered to be a 32-bit sequence.
.Ed
.Pp
The calculation used is identical to that given in pseudo-code in
the
.Tn ACM
article referenced below.
The bit sequence is complemented and the result is the CRC.
.Ed
.Pp
The
.Nm cksum
utility exits 0 on success, and >0 if an error occurs.
.Sh SEE ALSO
The default calculation is identical to that given in pseudo-code
in the following
.Tn ACM
article.
.Rs
.%T "Computation of Cyclic Redundancy Checks Via Table Lookup"
.%A Dilip V. Sarwate
@ -149,11 +155,11 @@ utility exits 0 on success, and >0 if an error occurs.
.%D "August 1988"
.Re
.Sh STANDARDS
.Nm Cksum
is expected to conform to
.St -p1003.2 .
The
.Nm cksum
utility is expected to be POSIX 1003.2 compatible.
.Sh HISTORY
The
.Nm cksum
utility is
.Ud .
utility appears in
.Bx 4.4 .

View File

@ -1,9 +1,9 @@
/*-
* Copyright (c) 1991 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* James W. Williams of the University of Maryland.
* James W. Williams of NASA Goddard Space Flight Center.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@ -35,14 +35,14 @@
*/
#ifndef lint
char copyright[] =
"@(#) Copyright (c) 1991 The Regents of the University of California.\n\
All rights reserved.\n";
static char copyright[] =
"@(#) Copyright (c) 1991, 1993\n\
The Regents of the University of California. All rights reserved.\n";
#endif /* not lint */
#ifndef lint
/*static char sccsid[] = "from: @(#)cksum.c 5.3 (Berkeley) 4/4/91";*/
static char rcsid[] = "$Id: cksum.c,v 1.2 1993/08/01 18:17:48 mycroft Exp $";
/* from: static char sccsid[] = "@(#)cksum.c 8.1 (Berkeley) 6/6/93"; */
static char *rcsid = "$Id: cksum.c,v 1.3 1993/11/02 07:33:10 cgd Exp $";
#endif /* not lint */
#include <sys/cdefs.h>
@ -55,6 +55,9 @@ static char rcsid[] = "$Id: cksum.c,v 1.2 1993/08/01 18:17:48 mycroft Exp $";
#include <string.h>
#include "extern.h"
void usage __P((void));
int
main(argc, argv)
int argc;
char **argv;
@ -91,21 +94,21 @@ main(argc, argv)
argv += optind;
fd = STDIN_FILENO;
fn = "stdin";
fn = NULL;
rval = 0;
do {
if (*argv) {
fn = *argv++;
if ((fd = open(fn, O_RDONLY, 0)) < 0) {
(void)fprintf(stderr,
"cksum: %s: %s\n", fn, strerror(errno));
(void)fprintf(stderr, "cksum: %s: %s\n",
fn, strerror(errno));
rval = 1;
continue;
}
}
if (cfncn(fd, &val, &len)) {
(void)fprintf(stderr,
"cksum: %s: %s\n", fn, strerror(errno));
(void)fprintf(stderr, "cksum: %s: %s\n",
fn ? fn : "stdin", strerror(errno));
rval = 1;
} else
pfncn(fn, val, len);
@ -114,6 +117,7 @@ main(argc, argv)
exit(rval);
}
void
usage()
{
(void)fprintf(stderr, "usage: cksum [-o 1 | 2] [file ...]\n");

View File

@ -1,9 +1,9 @@
/*-
* Copyright (c) 1991 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* James W. Williams of the University of Maryland.
* James W. Williams of NASA Goddard Space Flight Center.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@ -35,99 +35,107 @@
*/
#ifndef lint
/*static char sccsid[] = "from: @(#)crc.c 5.2 (Berkeley) 4/4/91";*/
static char rcsid[] = "$Id: crc.c,v 1.2 1993/08/01 18:17:47 mycroft Exp $";
/* from: static char sccsid[] = "@(#)crc.c 8.1 (Berkeley) 6/17/93"; */
static char *rcsid = "$Id: crc.c,v 1.3 1993/11/02 07:33:11 cgd Exp $";
#endif /* not lint */
#include <sys/types.h>
#include <unistd.h>
u_long crctab[] = {
0x7fffffff,
0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e,
0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d,
0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0,
0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63,
0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa,
0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75,
0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, 0xc8d75180,
0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87,
0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5,
0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 0x6b6b51f4,
0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b,
0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea,
0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541,
0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc,
0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f,
0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 0x5edef90e,
0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c,
0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b,
0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, 0x8708a3d2,
0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671,
0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8,
0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767,
0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, 0x36034af6,
0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795,
0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b,
0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 0x95bf4a82,
0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d,
0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8,
0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff,
0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee,
0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d,
0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 0xbdbdf21c,
0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02,
0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
static u_long crctab[] = {
0x0,
0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b,
0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6,
0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,
0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, 0x5f15adac,
0x5bd4b01b, 0x569796c2, 0x52568b75, 0x6a1936c8, 0x6ed82b7f,
0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, 0x709f7b7a,
0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58,
0xbaea46ef, 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033,
0xa4ad16ea, 0xa06c0b5d, 0xd4326d90, 0xd0f37027, 0xddb056fe,
0xd9714b49, 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,
0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, 0xe13ef6f4,
0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0,
0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5,
0x2ac12072, 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16,
0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca, 0x7897ab07,
0x7c56b6b0, 0x71159069, 0x75d48dde, 0x6b93dddb, 0x6f52c06c,
0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1,
0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b,
0xbb60adfc, 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698,
0x832f1041, 0x87ee0df6, 0x99a95df3, 0x9d684044, 0x902b669d,
0x94ea7b2a, 0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e,
0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2, 0xc6bcf05f,
0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34,
0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80,
0x644fc637, 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,
0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, 0x5c007b8a,
0x58c1663d, 0x558240e4, 0x51435d53, 0x251d3b9e, 0x21dc2629,
0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, 0x3f9b762c,
0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e,
0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65,
0xeba91bbc, 0xef68060b, 0xd727bbb6, 0xd3e6a601, 0xdea580d8,
0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,
0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, 0xae3afba2,
0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71,
0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74,
0x857130c3, 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640,
0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c, 0x7b827d21,
0x7f436096, 0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a,
0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, 0x18197087,
0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d,
0x2056cd3a, 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce,
0xcc2b1d17, 0xc8ea00a0, 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb,
0xdbee767c, 0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18,
0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, 0x89b8fd09,
0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662,
0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf,
0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
};
/*
* crc --
* Compute a POSIX.2 checksum. This routine has been broken out since
* it is anticipated that other programs will use it. It takes a file
* descriptor to read from and locations to store the crc and the number
* of bytes read. It returns 0 on success and 1 on failure. Errno is
* set on failure.
* Compute a POSIX 1003.2 checksum. This routine has been broken out so that
* other programs can use it. It takes a file descriptor to read from and
* locations to store the crc and the number of bytes read. It returns 0 on
* success and 1 on failure. Errno is set on failure.
*/
u_long crc_total = ~0; /* The crc over a number of files. */
int
crc(fd, cval, clen)
register int fd;
u_long *cval, *clen;
{
register int i, nr, step;
register u_char *p;
register u_long crc, total;
u_char buf[8192];
register int nr;
register u_long crc, len;
u_char buf[16 * 1024];
crc = step = total = 0;
#define COMPUTE(var, ch) (var) = (var) << 8 ^ crctab[(var) >> 24 ^ (ch)]
crc = len = 0;
crc_total = ~crc_total;
while ((nr = read(fd, buf, sizeof(buf))) > 0)
for (total += nr, p = buf; nr--; ++p) {
if (!(i = crc >> 24 ^ *p)) {
i = step++;
if (step >= sizeof(crctab)/sizeof(crctab[0]))
step = 0;
}
crc = (crc << 8) ^ crctab[i];
for (len += nr, p = buf; nr--; ++p) {
COMPUTE(crc, *p);
COMPUTE(crc_total, *p);
}
if (nr < 0)
return(1);
return (1);
*cval = crc & 0xffffffff; /* Mask to 32 bits. */
*clen = total;
return(0);
*clen = len;
/* Include the length of the file. */
for (; len != 0; len >>= 8) {
COMPUTE(crc, len & 0xff);
COMPUTE(crc_total, len & 0xff);
}
*cval = ~crc;
crc_total = ~crc_total;
return (0);
}

View File

@ -1,6 +1,6 @@
/*-
* Copyright (c) 1991 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@ -30,8 +30,8 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* from: @(#)extern.h 5.1 (Berkeley) 4/4/91
* $Id: extern.h,v 1.2 1993/08/01 18:17:49 mycroft Exp $
* from: @(#)extern.h 8.1 (Berkeley) 6/6/93
* $Id: extern.h,v 1.3 1993/11/02 07:33:12 cgd Exp $
*/
#include <sys/cdefs.h>

View File

@ -1,6 +1,6 @@
/*-
* Copyright (c) 1991 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@ -32,8 +32,8 @@
*/
#ifndef lint
/*static char sccsid[] = "from: @(#)print.c 5.1 (Berkeley) 4/4/91";*/
static char rcsid[] = "$Id: print.c,v 1.2 1993/08/01 18:17:45 mycroft Exp $";
/* from: static char sccsid[] = "@(#)print.c 8.1 (Berkeley) 6/6/93"; */
static char *rcsid = "$Id: print.c,v 1.3 1993/11/02 07:33:12 cgd Exp $";
#endif /* not lint */
#include <sys/types.h>
@ -45,7 +45,10 @@ pcrc(fn, val, len)
char *fn;
u_long val, len;
{
(void)printf("%lu %lu %s\n", val, len, fn);
(void)printf("%lu %lu", val, len);
if (fn)
(void)printf(" %s", fn);
(void)printf("\n");
}
void
@ -53,7 +56,10 @@ psum1(fn, val, len)
char *fn;
u_long val, len;
{
(void)printf("%lu %lu %s\n", val, (len + 1023) / 1024, fn);
(void)printf("%lu %lu", val, (len + 1023) / 1024);
if (fn)
(void)printf(" %s", fn);
(void)printf("\n");
}
void
@ -61,5 +67,8 @@ psum2(fn, val, len)
char *fn;
u_long val, len;
{
(void)printf("%lu %lu %s\n", val, (len + 511) / 512, fn);
(void)printf("%lu %lu", val, (len + 511) / 512);
if (fn)
(void)printf(" %s", fn);
(void)printf("\n");
}

View File

@ -1,6 +1,6 @@
/*-
* Copyright (c) 1991 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@ -32,13 +32,14 @@
*/
#ifndef lint
/*static char sccsid[] = "from: @(#)sum1.c 5.1 (Berkeley) 4/4/91";*/
static char rcsid[] = "$Id: sum1.c,v 1.2 1993/08/01 18:17:44 mycroft Exp $";
/* from: static char sccsid[] = "@(#)sum1.c 8.1 (Berkeley) 6/6/93"; */
static char *rcsid = "$Id: sum1.c,v 1.3 1993/11/02 07:33:13 cgd Exp $";
#endif /* not lint */
#include <sys/types.h>
#include <unistd.h>
int
csum1(fd, cval, clen)
register int fd;
u_long *cval, *clen;

View File

@ -1,6 +1,6 @@
/*-
* Copyright (c) 1991 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@ -32,13 +32,14 @@
*/
#ifndef lint
/*static char sccsid[] = "from: @(#)sum2.c 5.1 (Berkeley) 4/4/91";*/
static char rcsid[] = "$Id: sum2.c,v 1.2 1993/08/01 18:17:43 mycroft Exp $";
/* from: static char sccsid[] = "@(#)sum2.c 8.1 (Berkeley) 6/6/93"; */
static char *rcsid = "$Id: sum2.c,v 1.3 1993/11/02 07:33:14 cgd Exp $";
#endif /* not lint */
#include <sys/types.h>
#include <unistd.h>
int
csum2(fd, cval, clen)
register int fd;
u_long *cval, *clen;