diff options
author | Alexander Tkachev | 2019-07-16 20:13:50 +0700 |
---|---|---|
committer | Matan Bareket | 2019-07-30 14:51:41 -0400 |
commit | 1e92e7b9f3bd7a2fb55d77a7e28934abf3d02f19 (patch) | |
tree | 48ca7a2469d075b222faefa222fb2f0d6d84b502 /backends/saves | |
parent | c1124c9cdae37271413842bce79a992bf4238cf4 (diff) | |
download | scummvm-rg350-1e92e7b9f3bd7a2fb55d77a7e28934abf3d02f19.tar.gz scummvm-rg350-1e92e7b9f3bd7a2fb55d77a7e28934abf3d02f19.tar.bz2 scummvm-rg350-1e92e7b9f3bd7a2fb55d77a7e28934abf3d02f19.zip |
CLOUD: Fix saves syncing
This mostly affects OneDrive saves syncing, because it is the only cloud
provider to return 0 as timestamp of (non-)created file. 0 is treated as
EOF in /saves/timestamps file, thus all timestamps after such 0
timestamps were ignored and files were reuploaded as being "new". This
commit also adds more verbose debug information on SavesSyncRequest
decisions making for easier debugging.
Diffstat (limited to 'backends/saves')
-rw-r--r-- | backends/saves/default/default-saves.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/backends/saves/default/default-saves.cpp b/backends/saves/default/default-saves.cpp index 44fd48bb7e..e9a4165ddb 100644 --- a/backends/saves/default/default-saves.cpp +++ b/backends/saves/default/default-saves.cpp @@ -360,7 +360,10 @@ void DefaultSaveFileManager::saveTimestamps(Common::HashMap<Common::String, uint } for (Common::HashMap<Common::String, uint32>::iterator i = timestamps.begin(); i != timestamps.end(); ++i) { - Common::String data = i->_key + Common::String::format(" %u\n", i->_value); + uint32 v = i->_value; + if (v < 1) v = 1; // 0 timestamp is treated as EOF up there, so we should never save zeros + + Common::String data = i->_key + Common::String::format(" %u\n", v); if (f.write(data.c_str(), data.size()) != data.size()) { warning("DefaultSaveFileManager: failed to write timestamps data into '%s'", filename.c_str()); return; |