From bcb27264ba737778e5d3edad36088bacf74f0236 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 9 Apr 2013 20:03:46 +0000 Subject: - short function names allows to write database loops in one string; - 'continue' operator can be used then; - multiple bugs fixed in clists; - code becomes much more compact; git-svn-id: http://svn.miranda-ng.org/main/trunk@4403 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Weather/src/weather_addstn.cpp | 6 ++---- plugins/Weather/src/weather_contacts.cpp | 4 +--- plugins/Weather/src/weather_data.cpp | 4 +--- plugins/Weather/src/weather_mwin.cpp | 16 ++++------------ plugins/Weather/src/weather_update.cpp | 11 +++-------- 5 files changed, 11 insertions(+), 30 deletions(-) (limited to 'plugins/Weather/src') diff --git a/plugins/Weather/src/weather_addstn.cpp b/plugins/Weather/src/weather_addstn.cpp index fe315a8ad5..08ee90d862 100644 --- a/plugins/Weather/src/weather_addstn.cpp +++ b/plugins/Weather/src/weather_addstn.cpp @@ -40,8 +40,7 @@ INT_PTR WeatherAddToList(WPARAM wParam, LPARAM lParam) return 0; // search for existing contact - HANDLE hContact = db_find_first(); - while (hContact != NULL) { + for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { // check if it is a weather contact if ( IsMyContact(hContact)) { DBVARIANT dbv; @@ -61,12 +60,11 @@ INT_PTR WeatherAddToList(WPARAM wParam, LPARAM lParam) db_free(&dbv); } } - hContact = db_find_next(hContact); } // if contact with the same ID was not found, add it if (psr->cbSize < sizeof(PROTOSEARCHRESULT)) return 0; - hContact = (HANDLE) CallService(MS_DB_CONTACT_ADD, 0, 0); + HANDLE hContact = (HANDLE) CallService(MS_DB_CONTACT_ADD, 0, 0); CallService(MS_PROTO_ADDTOCONTACT, (WPARAM)hContact, (LPARAM)WEATHERPROTONAME); // suppress online notification for the new contact CallService(MS_IGNORE_IGNORE, (WPARAM)hContact, IGNOREEVENT_USERONLINE); diff --git a/plugins/Weather/src/weather_contacts.cpp b/plugins/Weather/src/weather_contacts.cpp index c43f3332d4..a52727f002 100644 --- a/plugins/Weather/src/weather_contacts.cpp +++ b/plugins/Weather/src/weather_contacts.cpp @@ -448,8 +448,7 @@ int ContactDeleted(WPARAM wParam, LPARAM lParam) // now the default station is deleted, try to get a new one // start looking for other weather stations - HANDLE hContact = db_find_first(); - while(hContact) { + for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { if (IsMyContact(hContact)) { if ( !db_get_ts(hContact, WEATHERPROTONAME, "ID", &dbv)) { // if the station is not a default station, set it as the new default station @@ -470,7 +469,6 @@ int ContactDeleted(WPARAM wParam, LPARAM lParam) db_free(&dbv); } } - hContact = db_find_next(hContact); } // got here if no more weather station left opt.Default[0] = 0; // no default station diff --git a/plugins/Weather/src/weather_data.cpp b/plugins/Weather/src/weather_data.cpp index cc7a4e93b9..3f6ce3b0f2 100644 --- a/plugins/Weather/src/weather_data.cpp +++ b/plugins/Weather/src/weather_data.cpp @@ -124,8 +124,7 @@ void EraseAllInfo() HANDLE LastContact = NULL; DBVARIANT dbv; // loop through all contacts - HANDLE hContact = db_find_first(); - while(hContact) { + for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { // see if the contact is a weather contact if ( IsMyContact(hContact)) { db_set_w(hContact,WEATHERPROTONAME, "Status",ID_STATUS_OFFLINE); @@ -173,7 +172,6 @@ void EraseAllInfo() ContactCount++; // increment counter LastContact = hContact; } - hContact = db_find_next(hContact); } // if weather contact exists, set the status to online so it is ready for update diff --git a/plugins/Weather/src/weather_mwin.cpp b/plugins/Weather/src/weather_mwin.cpp index b748173aeb..7f70b659d0 100644 --- a/plugins/Weather/src/weather_mwin.cpp +++ b/plugins/Weather/src/weather_mwin.cpp @@ -384,33 +384,25 @@ void InitMwin(void) FontRegisterT(&fontid); } - HANDLE hContact = db_find_first(); - while(hContact) - { + for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { // see if the contact is a weather contact - if (IsMyContact(hContact)) - { + if (IsMyContact(hContact)) { if (db_get_dw(hContact, WEATHERPROTONAME, "mwin", 0)) addWindow(hContact); } - hContact = db_find_next(hContact); } hFontHook = HookEvent(ME_FONT_RELOAD, RedrawFrame); } void DestroyMwin(void) { - HANDLE hContact = db_find_first(); - while(hContact) - { + for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { // see if the contact is a weather contact - if (IsMyContact(hContact)) - { + if (IsMyContact(hContact)) { DWORD frameId = db_get_dw(hContact, WEATHERPROTONAME, "mwin", 0); if (frameId) CallService(MS_CLIST_FRAMES_REMOVEFRAME, frameId, 0); } - hContact = db_find_next(hContact); } UnregisterClass( _T("WeatherFrame"), hInst); UnhookEvent(hFontHook); diff --git a/plugins/Weather/src/weather_update.cpp b/plugins/Weather/src/weather_update.cpp index da46dc8709..4c7f819b1f 100644 --- a/plugins/Weather/src/weather_update.cpp +++ b/plugins/Weather/src/weather_update.cpp @@ -282,18 +282,13 @@ void DestroyUpdateList(void) void UpdateAll(BOOL AutoUpdate, BOOL RemoveData) { // add all weather contact to the update queue list - HANDLE hContact = db_find_first(); - while (hContact != NULL) - { - if (IsMyContact(hContact)) - { - if ( !db_get_b(hContact,WEATHERPROTONAME, "AutoUpdate",FALSE) || !AutoUpdate) - { + for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { + if (IsMyContact(hContact)) { + if ( !db_get_b(hContact,WEATHERPROTONAME, "AutoUpdate",FALSE) || !AutoUpdate) { if (RemoveData) DBDataManage((HANDLE)hContact, WDBM_REMOVE, 0, 0); UpdateListAdd(hContact); } } - hContact = db_find_next(hContact); } // if it is not updating, then start the update thread process -- cgit v1.2.3