diff options
Diffstat (limited to 'games/trigger-rally/hiscore1.h.patch')
-rw-r--r-- | games/trigger-rally/hiscore1.h.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/games/trigger-rally/hiscore1.h.patch b/games/trigger-rally/hiscore1.h.patch new file mode 100644 index 0000000000..4441ae2437 --- /dev/null +++ b/games/trigger-rally/hiscore1.h.patch @@ -0,0 +1,44 @@ +diff -rupN src/include/hiscore1.h src_patched/include/hiscore1.h +--- src/include/hiscore1.h 2016-04-08 20:58:38.000000000 +0200 ++++ src_patched/include/hiscore1.h 2016-04-28 15:27:43.763427992 +0200 +@@ -41,6 +41,17 @@ + return InputStream; \
+ } else (void)0
+
++
++// TODO: remove duplicate code
++#define GETLINE_SKIP_EMPTY_LINES_B(InputStream, String) if (true) { \
++ while (std::getline(InputStream, String)) { \
++ if (!String.empty()) \
++ break; \
++ } \
++ if (String.empty()) \
++ return static_cast<bool> (InputStream); \
++} else (void)0
++
+ ///
+ /// @brief Basic structure to load and save race results.
+ ///
+@@ -724,19 +735,19 @@ private: + std::istringstream sspdata(decrypt(pdata));
+ #undef decrypt
+
+- GETLINE_SKIP_EMPTY_LINES(sspdata, ts);
++ GETLINE_SKIP_EMPTY_LINES_B(sspdata, ts);
+ nu = std::stoul(ts);
+
+ while (nu-- != 0)
+ {
+- GETLINE_SKIP_EMPTY_LINES(sspdata, ts);
++ GETLINE_SKIP_EMPTY_LINES_B(sspdata, ts);
+ allunlocks[pname].insert(ts);
+ }
+
+ while (sspdata >> rd)
+ alltimes.insert({rd.mapname, rd});
+
+- return sspdata;
++ return static_cast<bool> (sspdata);
+ }
+
+ ///
|