From cf6365c0957253940b8fae7e1a606105c6a2754c Mon Sep 17 00:00:00 2001 From: Xiao Pan Date: Mon, 16 Dec 2024 18:44:05 -0800 Subject: Add osk-sdl PKGBUILD from danctnix Pine64-Arch https://github.com/dreemurrs-embedded/Pine64-Arch --- .../fix-config-parsing-with-libstdc++.patch | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 pkgbuilds/osk-sdl/fix-config-parsing-with-libstdc++.patch (limited to 'pkgbuilds/osk-sdl/fix-config-parsing-with-libstdc++.patch') diff --git a/pkgbuilds/osk-sdl/fix-config-parsing-with-libstdc++.patch b/pkgbuilds/osk-sdl/fix-config-parsing-with-libstdc++.patch new file mode 100644 index 0000000..2e60e4f --- /dev/null +++ b/pkgbuilds/osk-sdl/fix-config-parsing-with-libstdc++.patch @@ -0,0 +1,39 @@ +--- src/config.cpp ++++ src/config.cpp +@@ -175,24 +175,26 @@ + std::istringstream iss(line); + std::string id, eq, val; + +- bool error = false; +- +- if (!(iss >> id)) { +- continue; +- } else if (id[0] == '#') { ++ iss >> id; ++ if (iss.fail()) { + continue; + } else if (id.empty()) { + continue; +- } else if (!(iss >> eq >> val >> std::ws) || eq != "=" || iss.get() != EOF) { +- error = true; ++ } else if (id[0] == '#') { ++ continue; + } + +- if (error) { ++ iss >> eq >> val; ++ // check that: ++ // 1) fail/bad bits aren't set ++ // 2) eq field is '=' ++ // 3) that there are no trailing fields, after ignoring any trailing whitespace ++ if (iss.fail() || eq.compare("=") || !(iss >> std::ws).eof()) { + SDL_LogError(SDL_LOG_CATEGORY_ERROR, "Syntax error on line %d", lineno); + return false; +- } else { +- Config::options[id] = val; + } ++ ++ Config::options[id] = val; + } + return true; + } -- cgit v1.2.3-70-g09d2