diff --git a/tools/generate_interfaces/generate_interfaces.cpp b/tools/generate_interfaces/generate_interfaces.cpp index b06e676b..6c2ae723 100644 --- a/tools/generate_interfaces/generate_interfaces.cpp +++ b/tools/generate_interfaces/generate_interfaces.cpp @@ -1,16 +1,14 @@ #include #include #include -#include #include #include // these are defined in dll.cpp at the top like this: // static char old_xxx[128] = ... - const static std::vector interface_patterns = { R"(SteamClient\d+)", - + R"(SteamGameServerStats\d+)", R"(SteamGameServer\d+)", @@ -27,10 +25,10 @@ const static std::vector interface_patterns = { R"(STEAMSCREENSHOTS_INTERFACE_VERSION\d+)", R"(STEAMHTTP_INTERFACE_VERSION\d+)", R"(STEAMUNIFIEDMESSAGES_INTERFACE_VERSION\d+)", - - R"(STEAMCONTROLLER_INTERFACE_VERSION\d+)", + + R"(STEAMCONTROLLER_INTERFACE_VERSION)", R"(SteamController\d+)", - + R"(STEAMUGC_INTERFACE_VERSION\d+)", R"(STEAMAPPLIST_INTERFACE_VERSION\d+)", R"(STEAMMUSIC_INTERFACE_VERSION\d+)", @@ -47,56 +45,64 @@ unsigned int findinterface( const std::string &interface_patt) { std::regex interface_regex(interface_patt); - auto begin = std::sregex_iterator(file_contents.begin(), file_contents.end(), interface_regex); + + auto begin = std::sregex_iterator(file_contents.cbegin(), file_contents.cend(), interface_regex); auto end = std::sregex_iterator(); unsigned int matches = 0; - for (std::sregex_iterator i = begin; i != end; ++i) { - std::smatch match = *i; - std::string match_str = match.str(); - out_file << match_str << std::endl; + + for (std::sregex_iterator i = begin; i != end; ++i) + { + out_file << i->str() << std::endl; ++matches; } return matches; } -int main (int argc, char *argv[]) +int main(int argc, char *argv[]) { - if (argc < 2) { + if (argc < 2) + { std::cerr << "usage: " << argv[0] << " " << std::endl; return 1; } std::ifstream steam_api_file(std::filesystem::u8path(argv[1]), std::ios::binary); - if (!steam_api_file.is_open()) { - std::cerr << "Error opening file" << std::endl; + if (!steam_api_file) + { + std::cerr << "Error opening file: " << argv[1] << std::endl; return 1; } - std::string steam_api_contents( - (std::istreambuf_iterator(steam_api_file)), - std::istreambuf_iterator()); + std::string steam_api_contents((std::istreambuf_iterator(steam_api_file)), std::istreambuf_iterator()); + steam_api_file.close(); - if (steam_api_contents.size() == 0) { + if (steam_api_contents.empty()) + { std::cerr << "Error loading data" << std::endl; return 1; } - unsigned int total_matches = 0; - std::ofstream out_file(std::filesystem::u8path("steam_interfaces.txt")); - if (!out_file.is_open()) { + std::ofstream out_file("steam_interfaces.txt"); + if (!out_file) + { std::cerr << "Error opening output file" << std::endl; return 1; } - for (const auto &patt : interface_patterns) { + unsigned int total_matches = 0; + + for (const auto &patt : interface_patterns) + { total_matches += findinterface(out_file, steam_api_contents, patt); } + out_file.close(); - if (total_matches == 0) { + if (total_matches == 0) + { std::cerr << "No interfaces were found" << std::endl; return 1; }