Add mandoc-manpage for cksum(1) and clean up code

and mark it as done in README.
This commit is contained in:
FRIGN 2015-01-17 23:38:38 +01:00 committed by sin
parent b55de3d1a2
commit 43b8fa1a58
3 changed files with 59 additions and 43 deletions

2
README
View File

@ -15,7 +15,7 @@ The following tools are implemented (* == finished):
* chmod yes none * chmod yes none
chown no -h, -H, -L, -P chown no -h, -H, -L, -P
chroot non-posix none chroot non-posix none
cksum yes none * cksum yes none
* cmp yes none * cmp yes none
* cols non-posix none * cols non-posix none
comm yes none comm yes none

36
cksum.1
View File

@ -1,9 +1,27 @@
.TH CKSUM 1 sbase\-VERSION .Dd January 17, 2014
.SH NAME .Dt CKSUM 1 sbase\-VERSION
cksum \- print file checksums .Sh NAME
.SH SYNOPSIS .Nm cksum
.B cksum .Nd compute file checksum
.RI [ file ...] .Sh SYNOPSIS
.SH DESCRIPTION .Nm cksum
.B cksum .Op Ar file ...
calculates and prints a cyclic redundancy check (CRC) for each input file. .Sh DESCRIPTION
.Nm
calculates a cyclic redundancy check (CRC) of
.Ar file
according to
.St -iso8802-3
and writes it, the file size in bytes and path to stdout.
.Pp
If no
.Ar file
is given,
.Nm
reads from stdin.
.Sh STANDARDS
The
.Nm
utility is compliant with the
.St -p1003.1-2008
specification.

64
cksum.c
View File

@ -7,14 +7,6 @@
#include "util.h" #include "util.h"
static void cksum(FILE *, const char *);
static void
usage(void)
{
eprintf("usage: %s [files...]\n", argv0);
}
static const unsigned long crctab[] = { 0x00000000, static const unsigned long crctab[] = { 0x00000000,
0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b, 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b,
0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6,
@ -69,31 +61,6 @@ static const unsigned long crctab[] = { 0x00000000,
0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4 0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
}; };
int
main(int argc, char *argv[])
{
FILE *fp;
ARGBEGIN {
default:
usage();
} ARGEND;
if (argc == 0) {
cksum(stdin, NULL);
} else {
for (; argc > 0; argc--, argv++) {
if (!(fp = fopen(argv[0], "r"))) {
weprintf("fopen %s:", argv[0]);
continue;
}
cksum(fp, argv[0]);
fclose(fp);
}
}
return 0;
}
static void static void
cksum(FILE *fp, const char *s) cksum(FILE *fp, const char *s)
{ {
@ -118,3 +85,34 @@ cksum(FILE *fp, const char *s)
printf(" %s", s); printf(" %s", s);
putchar('\n'); putchar('\n');
} }
static void
usage(void)
{
eprintf("usage: %s [files ...]\n", argv0);
}
int
main(int argc, char *argv[])
{
FILE *fp;
ARGBEGIN {
default:
usage();
} ARGEND;
if (argc == 0)
cksum(stdin, NULL);
else {
for (; argc > 0; argc--, argv++) {
if (!(fp = fopen(argv[0], "r"))) {
weprintf("fopen %s:", argv[0]);
continue;
}
cksum(fp, argv[0]);
fclose(fp);
}
}
return 0;
}