diff options
Diffstat (limited to 'plugins/Variables/parse_metacontacts.cpp')
-rw-r--r-- | plugins/Variables/parse_metacontacts.cpp | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/plugins/Variables/parse_metacontacts.cpp b/plugins/Variables/parse_metacontacts.cpp index 71a9da283b..c639668e05 100644 --- a/plugins/Variables/parse_metacontacts.cpp +++ b/plugins/Variables/parse_metacontacts.cpp @@ -55,16 +55,19 @@ static TCHAR *parseGetParent(ARGUMENTSINFO *ai) if ( szProto != NULL )
szUniqueID = getContactInfoT(CNF_UNIQUEID, hContact, 1);
- if ( szUniqueID == NULL ) {
+ if ( szUniqueID == NULL )
+ {
szProto = PROTOID_HANDLE;
- szUniqueID = itot((int)hContact);
+ //szUniqueID = itot((INT_PTR)hContact);
+ szUniqueID = (TCHAR*)mir_alloc(32);
+ _stprintf(szUniqueID, _T("%p"), hContact);
if ( szProto == NULL || szUniqueID == NULL )
return NULL;
}
res = ( TCHAR* )malloc((strlen(szProto) + _tcslen(szUniqueID) + 4)*sizeof(TCHAR));
if (res == NULL) {
- free(szUniqueID);
+ mir_free(szUniqueID);
return NULL;
}
@@ -75,7 +78,7 @@ static TCHAR *parseGetParent(ARGUMENTSINFO *ai) if ( tszProto != NULL && szUniqueID != NULL ) {
wsprintf(res, _T("<%s:%s>"), tszProto, szUniqueID);
- free(szUniqueID);
+ mir_free(szUniqueID);
free(tszProto);
}
@@ -116,14 +119,16 @@ static TCHAR *parseGetDefault(ARGUMENTSINFO *ai) if (szUniqueID == NULL) {
szProto = PROTOID_HANDLE;
- szUniqueID = itot((int)hContact);
+ //szUniqueID = itot((INT_PTR)hContact);
+ szUniqueID = (TCHAR*)mir_alloc(32);
+ _stprintf(szUniqueID, _T("%p"), hContact);
if ( szProto == NULL || szUniqueID == NULL )
return NULL;
}
res = ( TCHAR* )malloc((strlen(szProto) + _tcslen(szUniqueID) + 4)*sizeof(TCHAR));
if (res == NULL) {
- free(szUniqueID);
+ mir_free(szUniqueID);
return NULL;
}
@@ -134,7 +139,7 @@ static TCHAR *parseGetDefault(ARGUMENTSINFO *ai) if ( tszProto != NULL && szUniqueID != NULL ) {
wsprintf(res, _T("<%s:%s>"), tszProto, szUniqueID);
- free(szUniqueID);
+ mir_free(szUniqueID);
free(tszProto);
}
@@ -175,14 +180,16 @@ static TCHAR *parseGetMostOnline(ARGUMENTSINFO *ai) if (szUniqueID == NULL) {
szProto = PROTOID_HANDLE;
- szUniqueID = itot((int)hContact);
+ //szUniqueID = itot((INT_PTR)hContact);
+ szUniqueID = (TCHAR*)mir_alloc(32);
+ _stprintf(szUniqueID, _T("%p"), hContact);
if ( szProto == NULL || szUniqueID == NULL )
return NULL;
}
res = ( TCHAR* )malloc((strlen(szProto) + _tcslen(szUniqueID) + 4)*sizeof(TCHAR));
if (res == NULL) {
- free(szUniqueID);
+ mir_free(szUniqueID);
return NULL;
}
@@ -193,7 +200,7 @@ static TCHAR *parseGetMostOnline(ARGUMENTSINFO *ai) if ( tszProto != NULL && szUniqueID != NULL ) {
wsprintf(res, _T("<%s:%s>"), tszProto, szUniqueID);
- free(szUniqueID);
+ mir_free(szUniqueID);
free(tszProto);
}
|