Previously the string from strerror would only be printed for some
algorithms:
$ cksum -a sha2 -l 256 /dev/null > /dev/full
cksum: write error: No space left on device
$ cksum -a sysv /dev/null > /dev/full
cksum: write error
This patch fixes it so that the error information is always printed:
$ ./src/cksum -a sha2 -l 256 /dev/null > /dev/full
cksum: write error: No space left on device
$ ./src/cksum -a sysv /dev/null > /dev/full
cksum: write error: No space left on device
* src/cksum.c (output_file): Don't check for a write error here.
(main): Check for it here instead.
* tests/misc/io-errors.sh: Add a 'cksum' invocation for each supported
algorithm.
https://github.com/coreutils/coreutils/issues/258
}
putchar (delim);
-
- if (ferror (stdout))
- write_error ();
}
#endif
{
DIGEST_OUT (file, binary_file, bin_buffer, raw_digest, prefix_tag,
digest_delim, optind != argc, length);
+ if (ferror (stdout))
+ write_error ();
}
}
}
{
printf '%s' "\
cat foo
+cksum -a sysv foo
+cksum -a bsd foo
+cksum -a crc foo
+cksum -a crc32b foo
+cksum -a md5 foo
+cksum -a sha1 foo
+cksum -a sha2 -l 256 foo
+cksum -a sha3 -l 256 foo
+cksum -a blake2b foo
+cksum -a sm3 foo
comm foo foo
cut -c1- foo
cut -f1- foo