diff options
Diffstat (limited to 'src/util.cc')
-rw-r--r-- | src/util.cc | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/util.cc b/src/util.cc index 73b158d..d1f20d8 100644 --- a/src/util.cc +++ b/src/util.cc @@ -7,10 +7,17 @@ #include <fstream> #include <algorithm> +namespace { +char to_lower_c(char ch) +{ + return static_cast<char>(::tolower(ch)); +} +} + std::string to_lower(const std::string& str) { std::string out{str}; - std::transform(out.begin(), out.end(), out.begin(), ::tolower); + std::transform(out.begin(), out.end(), out.begin(), to_lower_c); return out; } @@ -19,17 +26,23 @@ std::string readFile(const std::string& fileName) std::ifstream ifs(fileName.c_str(), std::ios::in | std::ios::binary | std::ios::ate); - std::ifstream::pos_type fileSize = ifs.tellg(); + auto tell = ifs.tellg(); + if(tell < 0) + { + return {}; + } + auto fileSize = static_cast<std::size_t>(tell); ifs.seekg(0, std::ios::beg); - std::vector<char> bytes(static_cast<std::size_t>(fileSize)); - ifs.read(bytes.data(), fileSize); + std::vector<char> bytes(fileSize); + ifs.read(bytes.data(), static_cast<std::streamsize>(bytes.size())); - return {bytes.data(), static_cast<std::size_t>(fileSize)}; + return { bytes.data(), bytes.size() }; } std::vector<std::string> readDeps(const std::string& depFile) { + return {};// TODO: parse json if(!std::filesystem::exists(depFile)) { return {}; |