diff --git a/src/fileio.cpp b/src/fileio.cpp index 773418b156..6d356983f4 100644 --- a/src/fileio.cpp +++ b/src/fileio.cpp @@ -8,6 +8,7 @@ /** @file fileio.cpp Standard In/Out file operations */ #include "stdafx.h" +#include "core/string_consumer.hpp" #include "fileio_func.h" #include "spriteloader/spriteloader.hpp" #include "debug.h" @@ -23,7 +24,6 @@ #include #include #endif -#include #include #include @@ -514,13 +514,13 @@ bool TarScanner::AddFile(const std::string &filename, size_t, [[maybe_unused]] c std::string size = ExtractString(th.size); size_t skip = 0; if (!size.empty()) { - StrTrimInPlace(size); - auto [_, err] = std::from_chars(size.data(), size.data() + size.size(), skip, 8); - if (err != std::errc()) { + auto value = ParseInteger(size, 8); + if (!value.has_value()) { Debug(misc, 0, "The file '{}' has an invalid size for '{}'", filename, name); fclose(f); return false; } + skip = *value; } switch (th.typeflag) {