From 1ce3da1cca093143d9629bc46e221dd8be962e12 Mon Sep 17 00:00:00 2001 From: George Hazan <george.hazan@gmail.com> Date: Sun, 31 May 2015 11:46:05 +0000 Subject: - MAllStrings: a handy union to hold an incoming string parameter of any type; - FNAMECHAR: atavism extincted; - PROTOSEARCHRESULT: structure prepared to use results of any type, including utf git-svn-id: http://svn.miranda-ng.org/main/trunk@13932 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Yahoo/src/links.cpp | 2 +- protocols/Yahoo/src/proto.cpp | 9 ++++---- protocols/Yahoo/src/search.cpp | 52 +++++++++++++++++++++--------------------- protocols/Yahoo/src/yahoo.h | 5 ++++ 4 files changed, 37 insertions(+), 31 deletions(-) (limited to 'protocols/Yahoo') diff --git a/protocols/Yahoo/src/links.cpp b/protocols/Yahoo/src/links.cpp index b455b61e5c..ae7ef3f0aa 100644 --- a/protocols/Yahoo/src/links.cpp +++ b/protocols/Yahoo/src/links.cpp @@ -118,7 +118,7 @@ static INT_PTR ServiceParseYmsgrLink(WPARAM wParam, LPARAM lParam) acs.psr = &psr; psr.cbSize = sizeof(PROTOSEARCHRESULT); - psr.id = (TCHAR*)id; + psr.id.t = (TCHAR*)id; CallService(MS_ADDCONTACT_SHOW, 0, (LPARAM)&acs); } diff --git a/protocols/Yahoo/src/proto.cpp b/protocols/Yahoo/src/proto.cpp index c757fa6fe7..f144d89c9b 100644 --- a/protocols/Yahoo/src/proto.cpp +++ b/protocols/Yahoo/src/proto.cpp @@ -99,7 +99,7 @@ int CYahooProto::OnModulesLoadedEx(WPARAM, LPARAM) //////////////////////////////////////////////////////////////////////////////////////// // AddToList - adds a contact to the contact list -MCONTACT CYahooProto::AddToList( int flags, PROTOSEARCHRESULT* psr ) +MCONTACT CYahooProto::AddToList(int flags, PROTOSEARCHRESULT *psr) { debugLogA("[YahooAddToList] Flags: %d", flags); @@ -108,12 +108,13 @@ MCONTACT CYahooProto::AddToList( int flags, PROTOSEARCHRESULT* psr ) return 0; } - if (psr == NULL || psr->cbSize != sizeof( PROTOSEARCHRESULT )) { + YAHOO_SEARCH_RESULT *ysr = (YAHOO_SEARCH_RESULT*)psr; + if (ysr == NULL || ysr->cbSize != sizeof(YAHOO_SEARCH_RESULT)) { debugLogA("[YahooAddToList] Empty data passed?"); return 0; } - char *id = psr->flags & PSR_UNICODE ? mir_utf8encodeW((wchar_t*)psr->id) : mir_utf8encode((char*)psr->id); + char *id = psr->flags & PSR_UNICODE ? mir_utf8encodeW((wchar_t*)psr->id.t) : mir_utf8encode((char*)psr->id.t); MCONTACT hContact = getbuddyH(id); if (hContact != NULL) { if (db_get_b(hContact, "CList", "NotOnList", 0)) { @@ -130,7 +131,7 @@ MCONTACT CYahooProto::AddToList( int flags, PROTOSEARCHRESULT* psr ) debugLogA("[YahooAddToList] Adding Temporary Buddy:%s ", id); } - int protocol = psr->reserved[0]; + int protocol = ysr->protocol; debugLogA("Adding buddy:%s", id); hContact = add_buddy(id, id, protocol, flags); mir_free(id); diff --git a/protocols/Yahoo/src/search.cpp b/protocols/Yahoo/src/search.cpp index 020c9c34b3..2d25f978e6 100644 --- a/protocols/Yahoo/src/search.cpp +++ b/protocols/Yahoo/src/search.cpp @@ -33,11 +33,12 @@ void __cdecl CYahooProto::search_simplethread(void *snsearch) TCHAR *c = _tcschr(id, '@'); if (c) *c = 0; - PROTOSEARCHRESULT psr = { 0 }; + YAHOO_SEARCH_RESULT psr; + memset(&psr, 0, sizeof(psr)); psr.cbSize = sizeof(psr); psr.flags = PSR_TCHAR; - psr.id = (TCHAR*)_tcslwr(id); - psr.reserved[0] = YAHOO_IM_YAHOO; + psr.id.t = (TCHAR*)_tcslwr(id); + psr.protocol = YAHOO_IM_YAHOO; ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_DATA, (HANDLE) 1, (LPARAM) & psr); @@ -72,10 +73,11 @@ void CYahooProto::ext_got_search_result(int found, int start, int total, YList * LOG(("Start: %d", start)); LOG(("Total: %d", total)); - PROTOSEARCHRESULT psr = { 0 }; + YAHOO_SEARCH_RESULT psr; + memset(&psr, 0, sizeof(psr)); psr.cbSize = sizeof(psr); psr.flags = PSR_TCHAR; - psr.reserved[0] = YAHOO_IM_YAHOO; + psr.protocol = YAHOO_IM_YAHOO; while (en) { yct = ( yahoo_found_contact* )en->data; @@ -84,34 +86,34 @@ void CYahooProto::ext_got_search_result(int found, int start, int total, YList * LOG(("[%d] Empty record?",i++)); } else { LOG(("[%d] id: '%s', online: %d, age: %d, sex: '%s', location: '%s'", i++, yct->id, yct->online, yct->age, yct->gender, yct->location)); - psr.id = mir_utf8decodeT( yct->id ); + psr.id.t = mir_utf8decodeT( yct->id ); if (yct->gender[0] != 5) - psr.firstName = mir_utf8decodeT( yct->gender ); + psr.firstName.t = mir_utf8decodeT( yct->gender ); else - psr.firstName = NULL; + psr.firstName.t = NULL; TCHAR c[10]; if (yct->age > 0) { _itot(yct->age, c,10); - psr.lastName = ( TCHAR* )c; + psr.lastName.t = ( TCHAR* )c; } else - psr.lastName = NULL; + psr.lastName.t = NULL; if (yct->location[0] != 5) - psr.email = mir_utf8decodeT( yct->location ); + psr.email.t = mir_utf8decodeT( yct->location ); else - psr.email = NULL; + psr.email.t = NULL; //void yahoo_search(int id, enum yahoo_search_type t, const char *text, enum yahoo_search_gender g, enum yahoo_search_agerange ar, // int photo, int yahoo_only) ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_DATA, (HANDLE) 1, (LPARAM) & psr); - mir_free(psr.id); - mir_free(psr.firstName); - mir_free(psr.email); + mir_free(psr.id.t); + mir_free(psr.firstName.t); + mir_free(psr.email.t); } en = y_list_next(en); } @@ -173,20 +175,18 @@ void __cdecl CYahooProto::searchadv_thread(void *pHWND) return; } - PROTOSEARCHRESULT psr = { 0 }; + YAHOO_SEARCH_RESULT psr; + memset(&psr, 0, sizeof(psr)); psr.cbSize = sizeof(psr); psr.flags = PSR_TCHAR; - psr.id = _tcslwr(searchid); - - int pid = SendDlgItemMessage(hwndDlg , IDC_SEARCH_PROTOCOL, CB_GETCURSEL, 0, 0); - switch (pid) { - case 0: psr.firstName = _T("<Yahoo >"); pid = YAHOO_IM_YAHOO; break; - case 1: psr.firstName = _T("<Lotus Sametime>"); pid = YAHOO_IM_SAMETIME;break; - case 2: psr.firstName = _T("<LCS>"); pid = YAHOO_IM_LCS; break; - case 3: psr.firstName = _T("<Windows Live (MSN)>"); pid = YAHOO_IM_MSN; break; - } + psr.id.t = _tcslwr(searchid); - psr.reserved[0] = pid; + switch (SendDlgItemMessage(hwndDlg, IDC_SEARCH_PROTOCOL, CB_GETCURSEL, 0, 0)) { + case 0: psr.firstName.t = _T("<Yahoo >"); psr.protocol = YAHOO_IM_YAHOO; break; + case 1: psr.firstName.t = _T("<Lotus Sametime>"); psr.protocol = YAHOO_IM_SAMETIME; break; + case 2: psr.firstName.t = _T("<LCS>"); psr.protocol = YAHOO_IM_LCS; break; + case 3: psr.firstName.t = _T("<Windows Live (MSN)>"); psr.protocol = YAHOO_IM_MSN; break; + } /* * Show this in results diff --git a/protocols/Yahoo/src/yahoo.h b/protocols/Yahoo/src/yahoo.h index 214c77fb43..758918768f 100644 --- a/protocols/Yahoo/src/yahoo.h +++ b/protocols/Yahoo/src/yahoo.h @@ -105,6 +105,11 @@ extern HINSTANCE hInstance; extern int iHTTPGateway; #endif +struct YAHOO_SEARCH_RESULT : public PROTOSEARCHRESULT +{ + yahoo_im_protocols protocol; +}; + #define YAHOO_hasnotification() ServiceExists(MS_CLIST_SYSTRAY_NOTIFY) int YAHOO_util_dbsettingchanged(WPARAM wParam, LPARAM lParam); -- cgit v1.2.3