blob: 4441ae2437bea23533aeb8f75729b55905719d03 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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);
}
///
|