diff options
Diffstat (limited to 'tipper/subst.cpp')
-rw-r--r-- | tipper/subst.cpp | 58 |
1 files changed, 16 insertions, 42 deletions
diff --git a/tipper/subst.cpp b/tipper/subst.cpp index cd10998..2e8a6aa 100644 --- a/tipper/subst.cpp +++ b/tipper/subst.cpp @@ -12,7 +12,7 @@ void StripBBCodesInPlace(TCHAR *text) { int len = (int)_tcslen(text);
while(read <= len) { // copy terminating null too
- while(read <= len && text[read] != _T('[')) {
+ while(read <= len && text[read] != '[') {
if(text[read] != text[write]) text[write] = text[read];
read++; write++;
}
@@ -23,12 +23,12 @@ void StripBBCodesInPlace(TCHAR *text) { else if(len - read >= 4 && (_tcsnicmp(text + read, _T("[/b]"), 4) == 0 || _tcsnicmp(text + read, _T("[/i]"), 4) == 0))
read += 4;
else if(len - read >= 6 && (_tcsnicmp(text + read, _T("[color"), 6) == 0)) {
- while(read < len && text[read] != L']') read++;
+ while(read < len && text[read] != ']') read++;
read++;// skip the ']'
} else if(len - read >= 8 && (_tcsnicmp(text + read, _T("[/color]"), 8) == 0))
read += 8;
else if(len - read >= 5 && (_tcsnicmp(text + read, _T("[size"), 5) == 0)) {
- while(read < len && text[read] != L']') read++;
+ while(read < len && text[read] != ']') read++;
read++;// skip the ']'
} else if(len - read >= 7 && (_tcsnicmp(text + read, _T("[/size]"), 7) == 0))
read += 7;
@@ -58,23 +58,13 @@ DWORD last_message_timestamp(HANDLE hContact) { }
void format_timestamp(DWORD ts, char *format, TCHAR *buff, int bufflen) {
- if(unicode_system) {
- TCHAR form[16];
- DBTIMETOSTRINGT dbt = {0};
- dbt.cbDest = bufflen;
- dbt.szDest = buff;
- a2t(format, form, 16);
- dbt.szFormat = form;
- CallService(MS_DB_TIME_TIMESTAMPTOSTRINGT, (WPARAM)ts, (LPARAM)&dbt);
- } else {
- char buffA[512];
- DBTIMETOSTRING dbt = {0};
- dbt.cbDest = sizeof(buffA);
- dbt.szDest = buffA;
- dbt.szFormat = format;
- CallService(MS_DB_TIME_TIMESTAMPTOSTRING, (WPARAM)ts, (LPARAM)&dbt);
- a2t(buffA, buff, bufflen);
- }
+ TCHAR form[16];
+ DBTIMETOSTRINGT dbt = {0};
+ dbt.cbDest = bufflen;
+ dbt.szDest = buff;
+ a2t(format, form, 16);
+ dbt.szFormat = form;
+ CallService(MS_DB_TIME_TIMESTAMPTOSTRINGT, (WPARAM)ts, (LPARAM)&dbt);
}
bool uid(HANDLE hContact, char *proto, TCHAR *buff, int bufflen) {
@@ -83,7 +73,7 @@ bool uid(HANDLE hContact, char *proto, TCHAR *buff, int bufflen) { ci.hContact = hContact;
// pass in proto so we can get uid when hContact == 0 (i.e. our own uid for a given proto)
ci.szProto = proto;//(char *)CallService(MS_PROTO_GETCONTACTBASEPROTO,(WPARAM)hcontact,0);
- ci.dwFlag = CNF_UNIQUEID | (unicode_system ? CNF_UNICODE : 0);
+ ci.dwFlag = CNF_UNIQUEID | CNF_TCHAR;
if(!CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM)&ci)) {
switch(ci.type) {
case CNFT_BYTE:
@@ -96,12 +86,8 @@ bool uid(HANDLE hContact, char *proto, TCHAR *buff, int bufflen) { _ltot(ci.dVal, buff, 10);
break;
case CNFT_ASCIIZ:
- if(unicode_system) {
- //w2t((char *)ci.pszVal, buff, bufflen); // what's up with TCHAR in CONTACTINFO?!?!?
- w2t((wchar_t *)ci.pszVal, buff, bufflen);
- } else {
- a2t((char *)ci.pszVal, buff, bufflen);
- }
+ _tcsncpy(buff, ci.pszVal, bufflen);
+ buff[bufflen-1] = 0;
break;
default:
return false;
@@ -142,21 +128,9 @@ TCHAR *GetLastMessageText(HANDLE hContact) { if(dbei.cbBlob == 0 || dbei.pBlob == 0) return 0;
- TCHAR *msg = 0;
- if ( ServiceExists( MS_DB_EVENT_GETTEXT )) {
- TCHAR *buf = DbGetEventTextT( &dbei, CP_ACP );
- msg = _tcsdup( buf );
- mir_free( buf );
- }
- else {
- unsigned int msglen = (unsigned)strlen((char *)dbei.pBlob) + 1;
-
- // does blob contain unicode message?
- if(msglen < dbei.cbBlob)
- msg = w2t((wchar_t *)(&dbei.pBlob[msglen]));
- else
- msg = a2t((char *)dbei.pBlob);
- }
+ TCHAR *buf = DbGetEventTextT( &dbei, CP_ACP );
+ TCHAR *msg = _tcsdup( buf );
+ mir_free( buf );
StripBBCodesInPlace(msg);
return msg;
|