summaryrefslogtreecommitdiffstatshomepage
path: root/src/tools/srcclean.cpp
diff options
context:
space:
mode:
author Vas Crabb <cuavas@users.noreply.github.com>2021-10-05 03:34:45 +1100
committer GitHub <noreply@github.com>2021-10-05 03:34:45 +1100
commitaeb9eae87469e67bc6a91caf3840c34c11d959fc (patch)
tree45bffedf374dbce47caca633ad7bda547592e6c9 /src/tools/srcclean.cpp
parent33723892a3f06e678d817b36aef84364c32848ec (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.cpp12
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);