diff --git a/CHANGELOG.md b/CHANGELOG.md index d7f5bac..8563eb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 0.2.4 (2017-03-23) +- fix a bug in serial key parsing + ## 0.2.3 (2017-03-23) - correctly parse serial keys (closes #8) diff --git a/Cargo.toml b/Cargo.toml index 99c63bb..fba5b70 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gog-sync" -version = "0.2.3" +version = "0.2.4" authors = ["Sebastian Hugentobler "] description = "Synchronizes a GOG library with a local folder." documentation = "https://docs.rs/crate/gog-sync" diff --git a/src/gog.rs b/src/gog.rs index b36ea22..1fe3075 100644 --- a/src/gog.rs +++ b/src/gog.rs @@ -343,22 +343,22 @@ impl<'a> Gog<'a> { let mut raw_cd_keys_fix = raw_cd_keys.to_owned(); if raw_cd_keys_fix.contains("") { - raw_cd_keys_fix = raw_cd_keys_fix.replace("", "
") + raw_cd_keys_fix = raw_cd_keys_fix.replace("
", ":") .replace("", "") .replace("", ""); } - if raw_cd_keys_fix.contains("
") { - let splitted_keys = raw_cd_keys_fix.split("
"); + raw_cd_keys_fix = raw_cd_keys_fix.replace("
", ":").replace("::", ":"); + + if raw_cd_keys_fix.contains(":") { + let splitted_keys = raw_cd_keys_fix.split(":"); let mut key_names: Vec = Vec::new(); let mut key_values: Vec = Vec::new(); for (token_index, token) in splitted_keys.enumerate() { if token_index % 2 == 0 { - let mut key_name = token.to_owned(); - key_name.truncate(token.len() - 1); - key_names.push(key_name); + key_names.push(token.to_owned()); } else { key_values.push(token.trim().to_owned()); } diff --git a/src/main.rs b/src/main.rs index d9304cf..6cf428b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -28,7 +28,7 @@ fn main() { env_logger::init().unwrap(); let matches = App::new("Gog Synchronizer") - .version("0.2.3") + .version("0.2.4") .author("Sebastian Hugentobler ") .about("Synchronizes your gog library to a local folder.") .arg(Arg::with_name("game-storage")