diff options
Diffstat (limited to 'plugins/IEView/src/ChatHTMLBuilder.cpp')
| -rw-r--r-- | plugins/IEView/src/ChatHTMLBuilder.cpp | 29 | 
1 files changed, 14 insertions, 15 deletions
diff --git a/plugins/IEView/src/ChatHTMLBuilder.cpp b/plugins/IEView/src/ChatHTMLBuilder.cpp index ff441a8642..774f766a0a 100644 --- a/plugins/IEView/src/ChatHTMLBuilder.cpp +++ b/plugins/IEView/src/ChatHTMLBuilder.cpp @@ -87,13 +87,12 @@ char *ChatHTMLBuilder::timestampToString(time_t time)  	char *pszStamp = "[%H:%M]";
  	//InitSetting( &g_Settings.pszTimeStamp, "HeaderTime", _T("[%H:%M]"));
  	strftime(str, 79, pszStamp, localtime(&time));
 -	char *tmp = mir_utf8encode(str);
 -	lstrcpynA(szResult, tmp, 500);
 -	mir_free(tmp);
 +	lstrcpynA(szResult, mir_ptr<char>(mir_utf8encode(str)), 500);
  	return szResult;
  }
 -void ChatHTMLBuilder::buildHead(IEView *view, IEVIEWEVENT *event) {
 +void ChatHTMLBuilder::buildHead(IEView *view, IEVIEWEVENT *event)
 +{
  	LOGFONTA lf;
  	COLORREF color;
  	char *output = NULL;
 @@ -158,7 +157,8 @@ void ChatHTMLBuilder::buildHead(IEView *view, IEVIEWEVENT *event) {   * The following method is going to be completely rewritten soon. Do not modify or complain for the time being...
   */
 -void ChatHTMLBuilder::appendEventNonTemplate(IEView *view, IEVIEWEVENT *event) {
 +void ChatHTMLBuilder::appendEventNonTemplate(IEView *view, IEVIEWEVENT *event)
 +{
  	DWORD iconFlags = db_get_dw(NULL, CHATMOD, CHAT_ICON_FLAGS, 0);
  	IEVIEWEVENTDATA* eventData = event->eventData;
  	for (int eventIdx = 0; eventData!=NULL && (eventIdx < event->count || event->count==-1); eventData = eventData->next, eventIdx++) {
 @@ -168,25 +168,26 @@ void ChatHTMLBuilder::appendEventNonTemplate(IEView *view, IEVIEWEVENT *event) {  		int isSent = eventData->bIsMe;
  		int outputSize = 0;
  		char *output = NULL;
 -		char *szName = NULL, *szText = NULL;
  		const char *className = "";
  		bool showIcon = false;
 -		if (eventData->dwFlags & IEEDF_UNICODE_TEXT) {
 +		mir_ptr<char> szName, szText;
 +		if (eventData->dwFlags & IEEDF_UNICODE_TEXT)
  			szText = encodeUTF8(NULL, event->pszProto, eventData->pszTextW, ENF_ALL | ENF_CHAT_FORMATTING, isSent);
 -		} else {
 +		else
  			szText = encodeUTF8(NULL, event->pszProto, (char *)eventData->pszText, ENF_ALL | ENF_CHAT_FORMATTING, isSent);
 -		}
 -		if (eventData->dwFlags & IEEDF_UNICODE_NICK) {
 +
 +		if (eventData->dwFlags & IEEDF_UNICODE_NICK)
  			szName = encodeUTF8(NULL, event->pszProto, eventData->pszNickW, ENF_NAMESMILEYS, true);
 -		} else {
 +		else
  			szName = encodeUTF8(NULL, event->pszProto, (char *) eventData->pszNick, ENF_NAMESMILEYS, true);
 -		}
 +
  		if (eventData->iType == IEED_GC_EVENT_MESSAGE) {
  			iconFile = isSent ? "message_out_chat.gif" : "message_in_chat.gif";
  			showIcon = iconFlags & (isSent ? GC_EVENT_MESSAGE : GC_EVENT_MESSAGE);
  			className = isSent ? "messageOut" : "messageIn";
 -		} else {
 +		}
 +		else {
  			if (eventData->iType == IEED_GC_EVENT_ACTION) {
  				iconFile = "action.gif";
  				className = "action";
 @@ -244,8 +245,6 @@ void ChatHTMLBuilder::appendEventNonTemplate(IEView *view, IEVIEWEVENT *event) {  			view->write(output);
  			free(output);
  		}
 -		if (szName!=NULL) delete szName;
 -		if (szText!=NULL) delete szText;
  	}
  }
  | 
