summaryrefslogtreecommitdiff
path: root/protocols/IcqOscarJ/src/fam_15icqserver.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2018-03-08 13:58:24 +0300
committerGeorge Hazan <ghazan@miranda.im>2018-03-08 13:58:31 +0300
commit6206d9efcead4e4cd92df1b6c9bb0150d13052cc (patch)
tree780e6bee288a40d65886d374af6a116a0dc89ea7 /protocols/IcqOscarJ/src/fam_15icqserver.cpp
parent7b5a7da18a7834e9eb3aaa25cad0f256491c90ee (diff)
fixes #1154 (Invisible" status is broken)
This reverts commit 1ca493fc7af16dd20ad13453fc19774da3c65181.
Diffstat (limited to 'protocols/IcqOscarJ/src/fam_15icqserver.cpp')
-rw-r--r--protocols/IcqOscarJ/src/fam_15icqserver.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/protocols/IcqOscarJ/src/fam_15icqserver.cpp b/protocols/IcqOscarJ/src/fam_15icqserver.cpp
index 0bce60710f..3a58297543 100644
--- a/protocols/IcqOscarJ/src/fam_15icqserver.cpp
+++ b/protocols/IcqOscarJ/src/fam_15icqserver.cpp
@@ -857,6 +857,23 @@ void CIcqProto::parseDirectoryUserDetailsData(MCONTACT hContact, oscar_tlv_chain
writeDbInfoSettingTLVStringUtf(hContact, "About", cDetails, 0x186);
+ // if (hContact)
+ // writeDbInfoSettingTLVStringUtf(hContact, DBSETTING_STATUS_NOTE, cDetails, 0x226);
+ // else
+ if (!hContact) { // Owner contact needs special processing, in the database is current status note for the client
+ // We just received the last status note set on directory, if it differs call SetStatusNote() to
+ // ensure the directory will be updated (it should be in process anyway)
+ char *szClientStatusNote = getSettingStringUtf(hContact, DBSETTING_STATUS_NOTE, nullptr);
+ char *szDirectoryStatusNote = cDetails->getString(0x226, 1);
+
+ if (mir_strcmp(szClientStatusNote, szDirectoryStatusNote))
+ SetStatusNote(szClientStatusNote, 1000, TRUE);
+
+ // Release memory
+ SAFE_FREE(&szDirectoryStatusNote);
+ SAFE_FREE(&szClientStatusNote);
+ }
+
writeDbInfoSettingTLVByte(hContact, "PrivacyLevel", cDetails, 0x1F9);
if (!hContact) {