summaryrefslogtreecommitdiff
path: root/plugins/Variables/src/contact.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2013-04-09 20:03:46 +0000
committerGeorge Hazan <george.hazan@gmail.com>2013-04-09 20:03:46 +0000
commitbcb27264ba737778e5d3edad36088bacf74f0236 (patch)
treefd1f57744dd380b7babe312a0ab5dc60b48854f2 /plugins/Variables/src/contact.cpp
parent940231dc5a484b03a278900e1880aa083472b601 (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/src/contact.cpp')
-rw-r--r--plugins/Variables/src/contact.cpp28
1 files changed, 9 insertions, 19 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 */