diff options
author | George Hazan <george.hazan@gmail.com> | 2013-04-09 20:03:46 +0000 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2013-04-09 20:03:46 +0000 |
commit | bcb27264ba737778e5d3edad36088bacf74f0236 (patch) | |
tree | fd1f57744dd380b7babe312a0ab5dc60b48854f2 /plugins/Variables | |
parent | 940231dc5a484b03a278900e1880aa083472b601 (diff) |
- 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
Diffstat (limited to 'plugins/Variables')
-rw-r--r-- | plugins/Variables/src/contact.cpp | 28 | ||||
-rw-r--r-- | plugins/Variables/src/parse_miranda.cpp | 34 |
2 files changed, 22 insertions, 40 deletions
diff --git a/plugins/Variables/src/contact.cpp b/plugins/Variables/src/contact.cpp index c281d02ed3..faec6a8f42 100644 --- a/plugins/Variables/src/contact.cpp +++ b/plugins/Variables/src/contact.cpp @@ -271,22 +271,18 @@ int getContactFromString( CONTACTSINFO* ci ) LeaveCriticalSection(&csContactCache);
/* contact was not in cache, do a search */
- hContact = db_find_first();
- while (hContact != NULL) {
+ for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) {
szFind = NULL;
bMatch = FALSE;
ZeroMemory(&dbv, sizeof(DBVARIANT));
szProto = GetContactProto(hContact);
- if (szProto == NULL) {
- hContact = db_find_next(hContact);
+ if (szProto == NULL)
continue;
- }
+
// <proto:id> (exact)
- if (ci->flags&CI_PROTOID)
- {
+ if (ci->flags & CI_PROTOID) {
cInfo = getContactInfoT(CNF_UNIQUEID, hContact);
- if (cInfo == NULL)
- {
+ if (cInfo == NULL) {
// <HANDLE:hContact>
cInfo = (TCHAR*)mir_alloc(32);
_stprintf(cInfo, _T("%p"), hContact);
@@ -295,22 +291,17 @@ int getContactFromString( CONTACTSINFO* ci ) {
wsprintf(szFind, _T("<%s:%s>"), _T(PROTOID_HANDLE), cInfo);
if (!_tcsncmp(tszContact, szFind, _tcslen(tszContact)))
- {
bMatch = TRUE;
- }
+
mir_free(cInfo);
mir_free(szFind);
}
}
- else
- {
+ else {
szFind = (TCHAR*)mir_alloc((_tcslen(cInfo) + strlen(szProto) + 4)*sizeof(TCHAR));
- if (szFind != NULL)
- {
+ if (szFind != NULL) {
tszProto = mir_a2t(szProto);
-
- if ((tszProto != NULL) && (szFind != NULL))
- {
+ if ((tszProto != NULL) && (szFind != NULL)) {
wsprintf(szFind, _T("<%s:%s>"), tszProto, cInfo);
mir_free(cInfo);
mir_free(tszProto);
@@ -401,7 +392,6 @@ int getContactFromString( CONTACTSINFO* ci ) ci->hContacts[count] = hContact;
count += 1;
}
- hContact=db_find_next(hContact);
}
if (count == 1) { /* cache the found result */
diff --git a/plugins/Variables/src/parse_miranda.cpp b/plugins/Variables/src/parse_miranda.cpp index 6d14bf7cb3..c686037325 100644 --- a/plugins/Variables/src/parse_miranda.cpp +++ b/plugins/Variables/src/parse_miranda.cpp @@ -546,14 +546,13 @@ static HANDLE findDbEvent(HANDLE hContact, HANDLE hDbEvent, int flags) hDbEvent = db_event_prev(hDbEvent);
}
else {
- HANDLE hMatchEvent, hSearchEvent, hSearchContact;
+ HANDLE hMatchEvent, hSearchEvent;
DWORD matchTimestamp, priorTimestamp;
- hMatchEvent = hSearchEvent = hSearchContact = NULL;
+ hMatchEvent = hSearchEvent = NULL;
matchTimestamp = priorTimestamp = 0;
if (flags & DBE_FIRST) {
- hSearchContact = db_find_first();
- do {
+ for (HANDLE hSearchContact = db_find_first(); hSearchContact; hSearchContact = db_find_next(hSearchContact)) {
hSearchEvent = findDbEvent(hSearchContact, NULL, flags);
dbe.cbBlob = 0;
if (!db_event_get(hSearchEvent, &dbe)) {
@@ -562,13 +561,11 @@ static HANDLE findDbEvent(HANDLE hContact, HANDLE hDbEvent, int flags) matchTimestamp = dbe.timestamp;
}
}
- hSearchContact = db_find_next(hSearchContact);
- } while (hSearchContact);
+ }
hDbEvent = hMatchEvent;
}
- else if (flags&DBE_LAST) {
- hSearchContact = db_find_first();
- do {
+ else if (flags & DBE_LAST) {
+ for (HANDLE hSearchContact = db_find_first(); hSearchContact; hSearchContact = db_find_next(hSearchContact)) {
hSearchEvent = findDbEvent(hSearchContact, NULL, flags);
dbe.cbBlob = 0;
if (!db_event_get(hSearchEvent, &dbe)) {
@@ -577,16 +574,14 @@ static HANDLE findDbEvent(HANDLE hContact, HANDLE hDbEvent, int flags) matchTimestamp = dbe.timestamp;
}
}
- hSearchContact = db_find_next(hSearchContact);
- } while (hSearchContact);
+ }
hDbEvent = hMatchEvent;
}
- else if (flags&DBE_NEXT) {
+ else if (flags & DBE_NEXT) {
dbe.cbBlob = 0;
if (!db_event_get(hDbEvent, &dbe)) {
priorTimestamp = dbe.timestamp;
- hSearchContact = db_find_first();
- do {
+ for (HANDLE hSearchContact = db_find_first(); hSearchContact; hSearchContact = db_find_next(hSearchContact)) {
hSearchEvent = findDbEvent(hSearchContact, hDbEvent, flags);
dbe.cbBlob = 0;
if (!db_event_get(hSearchEvent, &dbe)) {
@@ -595,16 +590,14 @@ static HANDLE findDbEvent(HANDLE hContact, HANDLE hDbEvent, int flags) matchTimestamp = dbe.timestamp;
}
}
- hSearchContact = db_find_next(hSearchContact);
- } while (hSearchContact);
+ }
hDbEvent = hMatchEvent;
}
}
- else if (flags&DBE_PREV) {
+ else if (flags & DBE_PREV) {
if (!db_event_get(hDbEvent, &dbe)) {
priorTimestamp = dbe.timestamp;
- hSearchContact = db_find_first();
- do {
+ for (HANDLE hSearchContact = db_find_first(); hSearchContact; hSearchContact = db_find_next(hSearchContact)) {
hSearchEvent = findDbEvent(hSearchContact, hDbEvent, flags);
dbe.cbBlob = 0;
if (!db_event_get(hSearchEvent, &dbe)) {
@@ -613,8 +606,7 @@ static HANDLE findDbEvent(HANDLE hContact, HANDLE hDbEvent, int flags) matchTimestamp = dbe.timestamp;
}
}
- hSearchContact = db_find_next(hSearchContact);
- } while (hSearchContact);
+ }
hDbEvent = hMatchEvent;
}
}
|