summaryrefslogtreecommitdiff
path: root/protocols/ICQ-WIM/src/utils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/ICQ-WIM/src/utils.cpp')
-rw-r--r--protocols/ICQ-WIM/src/utils.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/protocols/ICQ-WIM/src/utils.cpp b/protocols/ICQ-WIM/src/utils.cpp
index fc3eaf0ecb..4bd51e050c 100644
--- a/protocols/ICQ-WIM/src/utils.cpp
+++ b/protocols/ICQ-WIM/src/utils.cpp
@@ -117,16 +117,16 @@ void CIcqProto::CalcHash(AsyncHttpRequest *pReq)
/////////////////////////////////////////////////////////////////////////////////////////
-void CIcqProto::Json2int(MCONTACT hContact, const JSONNode &node, const char *szJson, const char *szSetting)
+void CIcqProto::Json2int(MCONTACT hContact, const JSONNode &node, const char *szJson, const char *szSetting, bool bIsPartial)
{
const JSONNode &var = node[szJson];
if (var)
setDword(hContact, szSetting, var.as_int());
- else
+ else if (!bIsPartial)
delSetting(hContact, szSetting);
}
-void CIcqProto::Json2string(MCONTACT hContact, const JSONNode &node, const char *szJson, const char *szSetting)
+void CIcqProto::Json2string(MCONTACT hContact, const JSONNode &node, const char *szJson, const char *szSetting, bool bIsPartial)
{
const JSONNode &var = node[szJson];
if (var) {
@@ -137,7 +137,8 @@ void CIcqProto::Json2string(MCONTACT hContact, const JSONNode &node, const char
}
else setWString(hContact, szSetting, wszStr);
}
- else delSetting(hContact, szSetting);
+ else if (!bIsPartial)
+ delSetting(hContact, szSetting);
}
/////////////////////////////////////////////////////////////////////////////////////////