From acc57c49daf7de42176c99d9022d9d4f6265ce7e Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 29 Dec 2023 15:54:41 +0300 Subject: =?UTF-8?q?fixes=20#4089=20(Discord:=20=D0=BA=D0=B0=D0=BD=D0=B0?= =?UTF-8?q?=D0=BB=D1=8B=20=D0=B4=D0=B2=D0=BE=D1=8F=D1=82=D1=81=D1=8F=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=20=D0=BA=D0=B0=D0=B6=D0=B4=D0=BE=D0=BC=20?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=D0=B8=D0=BD=D0=B5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mir_app/src/contacts.cpp | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/mir_app/src/contacts.cpp b/src/mir_app/src/contacts.cpp index a486cc988c..1cfc0ee50f 100644 --- a/src/mir_app/src/contacts.cpp +++ b/src/mir_app/src/contacts.cpp @@ -41,35 +41,35 @@ uint8_t nameOrder[_countof(nameOrderDescr)]; static wchar_t* ProcessDatabaseValueDefault(MCONTACT hContact, const char *szProto, const char *szSetting) { - DBVARIANT dbv; - if (!db_get_ws(hContact, szProto, szSetting, &dbv)) { - switch (dbv.type) { - case DBVT_ASCIIZ: - if (!dbv.pszVal[0]) break; - case DBVT_WCHAR: - if (!dbv.pwszVal[0]) break; - return dbv.pwszVal; - } - db_free(&dbv); - } + wchar_t *ret = db_get_wsa(hContact, szProto, szSetting); + if (ret) + return ret; + DBVARIANT dbv; if (db_get(hContact, szProto, szSetting, &dbv)) return nullptr; wchar_t buf[40]; switch (dbv.type) { case DBVT_BYTE: - return mir_wstrdup(_itow(dbv.bVal, buf, 10)); + ret = _itow(dbv.bVal, buf, 10); + break; case DBVT_WORD: - return mir_wstrdup(_itow(dbv.wVal, buf, 10)); + ret = _itow(dbv.wVal, buf, 10); + break; case DBVT_DWORD: - return mir_wstrdup(_itow(dbv.dVal, buf, 10)); + ret = _itow(dbv.dVal, buf, 10); + break; case DBVT_BLOB: - return mir_wstrdup(bin2hexW(dbv.pbVal, min(int(dbv.cpbVal), 19), buf)); + if (dbv.cpbVal == 8) + ret = _i64tow(*(__int64*)dbv.pbVal, buf, 10); + else + ret = bin2hexW(dbv.pbVal, min(int(dbv.cpbVal), 19), buf); + break; } db_free(&dbv); - return nullptr; + return mir_wstrdup(ret); } MIR_APP_DLL(wchar_t*) Contact::GetInfo(int type, MCONTACT hContact, const char *szProto) -- cgit v1.2.3