diff options
author | 2021-10-05 03:34:45 +1100 | |
---|---|---|
committer | 2021-10-05 03:34:45 +1100 | |
commit | aeb9eae87469e67bc6a91caf3840c34c11d959fc (patch) | |
tree | 45bffedf374dbce47caca633ad7bda547592e6c9 /src/tools/srcclean.cpp | |
parent | 33723892a3f06e678d817b36aef84364c32848ec (diff) |
util: Further API cleanups: (#8661)
* Turned `core_file` into an implementation of `random_read_write`.
* Turned PNG errors into a standard error category.
* Added a helper for generating what look like derived classes on-the-fly.
Diffstat (limited to 'src/tools/srcclean.cpp')
-rw-r--r-- | src/tools/srcclean.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/tools/srcclean.cpp b/src/tools/srcclean.cpp index 85cf28a22a2..b8402d31f7a 100644 --- a/src/tools/srcclean.cpp +++ b/src/tools/srcclean.cpp @@ -2287,9 +2287,15 @@ int main(int argc, char *argv[]) // read/process in chunks output.clear(); - std::uint64_t remaining(infile->size()); - std::uint32_t block; - while (remaining && (0U != (block = infile->read(original, (std::min)(std::uint64_t(sizeof(original)), remaining))))) + std::uint64_t remaining; + if (infile->length(remaining)) + { + util::stream_format(std::cerr, "Can't get length of %1$s\n", argv[i]); + ++failures; + continue; + } + std::size_t block; + while (remaining && !infile->read(original, (std::min)(std::uint64_t(sizeof(original)), remaining), block) && block) { remaining -= block; cleaner->process(original, original + block); |