diff --git a/.travis.yml b/.travis.yml index bdf0fec902..4866b49c1d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,9 @@ branches: only: - master +git: + submodules: false + before_install: - echo "yes" | sudo apt-key adv --fetch-keys http://repos.codelite.org/CodeLite.asc - echo "yes" | sudo apt-add-repository 'deb http://repos.codelite.org/wx3.0/ubuntu/ precise universe' @@ -25,11 +28,11 @@ before_install: sudo ./cmake-2.8.12.1-Linux-i386.sh --skip-license --prefix=/usr; before_script: - - git submodule update --init --recursive + - git submodule update --init asmjit ffmpeg - mkdir build - cd build - cmake .. script: - - make + - make -j 4 diff --git a/rpcs3/Ini.cpp b/rpcs3/Ini.cpp index cf85609394..ac0086f543 100644 --- a/rpcs3/Ini.cpp +++ b/rpcs3/Ini.cpp @@ -47,14 +47,33 @@ static inline std::string BoolToString(const bool b) static std::pair StringToSize(const std::string& str) { std::pair ret; + +#if 1 + std::string s[2] = { "", "" }; + + for (uint i = 0, a = 0; i= 2) return rDefaultSize; + continue; + } + + s[a] += str.substr(i, 1); + } + + if (s[0].empty() || s[1].empty()) +#else + // Requires GCC 4.9 or new stdlib for Clang std::sregex_token_iterator first(str.begin(), str.end(), std::regex("x"), -1), last; - std::vector vec(first, last); + std::vector s(first, last); if (vec.size() < 2) +#endif return rDefaultSize; try { - ret.first = std::stoi(vec.at(0)); - ret.second = std::stoi(vec.at(1)); + ret.first = std::stoi(s[0]); + ret.second = std::stoi(s[1]); } catch (const std::invalid_argument& e) { return rDefaultSize; @@ -71,7 +90,8 @@ static std::string SizeToString(const std::pair& size) return fmt::Format("%dx%d", size.first, size.second); } -static std::pair StringToPosition(const std::string& str) +// Unused? +/*static std::pair StringToPosition(const std::string& str) { std::pair ret; std::sregex_token_iterator first(str.begin(), str.end(), std::regex("x"), -1), last; @@ -86,22 +106,40 @@ static std::pair StringToPosition(const std::string& str) return rDefaultPosition; return ret; -} +}*/ static WindowInfo StringToWindowInfo(const std::string& str) { WindowInfo ret = WindowInfo(rDefaultSize, rDefaultSize); +#if 1 + std::string s[4] = { "", "", "", "" }; + + for (uint i = 0, a = 0; i= 4) return WindowInfo::GetDefault(); + continue; + } + + s[a] += str.substr(i, 1); + } + + if (s[0].empty() || s[1].empty() || s[2].empty() || s[3].empty()) +#else + // Requires GCC 4.9 or new stdlib for Clang std::sregex_token_iterator first(str.begin(), str.end(), std::regex("x|:"), -1), last; - std::vector vec(first, last); + std::vector s(first, last); if (vec.size() < 4) +#endif return WindowInfo::GetDefault(); try{ - ret.size.first = std::stoi(vec.at(0)); - ret.size.second = std::stoi(vec.at(1)); - ret.position.first = std::stoi(vec.at(2)); - ret.position.second = std::stoi(vec.at(3)); + ret.size.first = std::stoi(s[0]); + ret.size.second = std::stoi(s[1]); + ret.position.first = std::stoi(s[2]); + ret.position.second = std::stoi(s[3]); } catch (const std::invalid_argument &e) {