diff options
Diffstat (limited to 'plugins/CmdLine/src')
| -rw-r--r-- | plugins/CmdLine/src/CmdLine.cpp | 16 | ||||
| -rw-r--r-- | plugins/CmdLine/src/hooked_events.cpp | 45 | ||||
| -rw-r--r-- | plugins/CmdLine/src/mimcmd_data.cpp | 45 | ||||
| -rw-r--r-- | plugins/CmdLine/src/mimcmd_handlers.cpp | 566 | ||||
| -rw-r--r-- | plugins/CmdLine/src/mimcmd_ipc.cpp | 34 | ||||
| -rw-r--r-- | plugins/CmdLine/src/services.cpp | 28 | ||||
| -rw-r--r-- | plugins/CmdLine/src/stdafx.cxx (renamed from plugins/CmdLine/src/stdafx.cpp) | 2 | ||||
| -rw-r--r-- | plugins/CmdLine/src/stdafx.h (renamed from plugins/CmdLine/src/commonheaders.h) | 2 | ||||
| -rw-r--r-- | plugins/CmdLine/src/utils.cpp | 256 | ||||
| -rw-r--r-- | plugins/CmdLine/src/utils.h | 17 | 
10 files changed, 422 insertions, 589 deletions
diff --git a/plugins/CmdLine/src/CmdLine.cpp b/plugins/CmdLine/src/CmdLine.cpp index 933b8f7b3d..a8224f5b49 100644 --- a/plugins/CmdLine/src/CmdLine.cpp +++ b/plugins/CmdLine/src/CmdLine.cpp @@ -18,7 +18,7 @@ along with this program; if not, write to the Free Software  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 -#include "commonheaders.h"
 +#include "stdafx.h"
  char ModuleName[] = "CmdLine";
  HINSTANCE hInstance;
 @@ -38,7 +38,7 @@ PLUGININFOEX pluginInfo = {  	{0x2f1a117c, 0x3c1b, 0x4c01, {0x89, 0xea, 0x6d, 0x8f, 0xd8, 0x5a, 0x9b, 0x4c}}
  };
 -extern "C" __declspec(dllexport) PLUGININFOEX *MirandaPluginInfoEx(DWORD mirandaVersion) 
 +extern "C" __declspec(dllexport) PLUGININFOEX *MirandaPluginInfoEx(DWORD)
  {
  	return &pluginInfo;
  }
 @@ -46,14 +46,14 @@ extern "C" __declspec(dllexport) PLUGININFOEX *MirandaPluginInfoEx(DWORD miranda  extern "C" int __declspec(dllexport) Load(void)
  {
  	mir_getLP(&pluginInfo);
 -	
 +
  	if (InitServer())
  	{
  		MessageBox(0, TranslateT("Could not initialize CmdLine plugin property"), TranslateT("Error"), MB_ICONEXCLAMATION | MB_OK);
  	}
 -	
 +
  	HookEvents();
 -	
 +
  	return 0;
  }
 @@ -62,13 +62,13 @@ extern "C" int __declspec(dllexport) Unload()  	bWaitForUnload = 0;
  	UnhookEvents();
 -	
 +
  	DestroyServer();
 -	
 +
  	return 0;
  }
 -bool WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
 +bool WINAPI DllMain(HINSTANCE hinstDLL, DWORD, LPVOID)
  {
  	hInstance = hinstDLL;
  	return TRUE;
 diff --git a/plugins/CmdLine/src/hooked_events.cpp b/plugins/CmdLine/src/hooked_events.cpp index 3226b659b4..1d7c336e03 100644 --- a/plugins/CmdLine/src/hooked_events.cpp +++ b/plugins/CmdLine/src/hooked_events.cpp @@ -18,12 +18,7 @@ along with this program; if not, write to the Free Software  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 -#include "commonheaders.h"
 -
 -HANDLE hModulesLoaded;
 -HANDLE hOptionsInitialize;
 -HANDLE hShutdown;
 -HANDLE hProtoAck;
 +#include "stdafx.h"
  int bShouldProcessAcks = FALSE;
 @@ -32,58 +27,46 @@ int cAcks = sizeof(acks) / sizeof(acks[0]);  int HookEvents()
  {
 -	hModulesLoaded = HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded);
 -	hShutdown = HookEvent(ME_SYSTEM_PRESHUTDOWN, OnShutdown);
 -	hProtoAck = HookEvent(ME_PROTO_ACK, OnProtoAck);
 -//	hOptionsInitialize = HookEvent(ME_OPT_INITIALISE, OnOptionsInitialise);
 -	
 +	HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded);
 +	HookEvent(ME_SYSTEM_PRESHUTDOWN, OnShutdown);
 +	HookEvent(ME_PROTO_ACK, OnProtoAck);
  	return 0;
  }
  int UnhookEvents()
  {
 -	UnhookEvent(hModulesLoaded);
 -	UnhookEvent(hShutdown);
 -	UnhookEvent(OnProtoAck);
 -//	UnhookEvent(hOptionsInitialize);
 -	
  	return 0;
  }
 -int OnModulesLoaded(WPARAM wParam, LPARAM lParam)
 +int OnModulesLoaded(WPARAM, LPARAM)
  {
  	StartServer();
 -	
  	return 0;
  }
 -int OnShutdown(WPARAM wParam, LPARAM lParam)
 +int OnShutdown(WPARAM, LPARAM)
  {
  	SetEvent(heServerClose); //tell the listening server to stop
 -	
  	return 0;
  }
  int QueueAck(ACKDATA *ack)
  {
  	for (int i = cAcks - 1; i > 0; i--)
 -	{
  		acks[i] = acks[i - 1];
 -	}
 -	
 +
  	acks[0] = *ack;
 -	
  	return 0;
  }
  int ClearAckQueue()
  {
  	memset(acks, 0, cAcks * sizeof(ACKDATA));
 -	
 +
  	return 0;
  }
 -ACKDATA *GetAck(HANDLE hProcess)
 +ACKDATA* GetAck(HANDLE hProcess)
  {
  	for (int i = 0; i < cAcks; i++)
  	{
 @@ -92,20 +75,18 @@ ACKDATA *GetAck(HANDLE hProcess)  			return &acks[i];
  		}
  	}
 -	
 +
  	return NULL;
  }
 -int OnProtoAck(WPARAM wParam, LPARAM lParam)
 +int OnProtoAck(WPARAM, LPARAM lParam)
  {
  	if (bShouldProcessAcks)
  	{
 -		ACKDATA *ack = (ACKDATA *) lParam;
 +		ACKDATA *ack = (ACKDATA*)lParam;
  		if ((ack) && (ack->type == ACKTYPE_MESSAGE)) //if it's a message ack
 -		{
  			QueueAck(ack);
 -		}
  	}
 -	
 +
  	return 0;
  }
\ No newline at end of file diff --git a/plugins/CmdLine/src/mimcmd_data.cpp b/plugins/CmdLine/src/mimcmd_data.cpp index 95550ed778..61c6af89d7 100644 --- a/plugins/CmdLine/src/mimcmd_data.cpp +++ b/plugins/CmdLine/src/mimcmd_data.cpp @@ -18,26 +18,29 @@ along with this program; if not, write to the Free Software  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 -#include "commonheaders.h"
 +#include "stdafx.h"
 +
 +TCommand mimCommands[] =
 +{
 +	{ MIMCMD_STATUS,      "status",      MIMCMD_HELP_STATUS      },
 +	{ MIMCMD_AWAYMSG,     "awaymsg",     MIMCMD_HELP_AWAYMSG     },
 +   { MIMCMD_XSTATUS,     "xstatus",     MIMCMD_HELP_XSTATUS     },
 +   { MIMCMD_POPUPS,      "popups",      MIMCMD_HELP_POPUPS      },
 +   { MIMCMD_SOUNDS,      "sounds",      MIMCMD_HELP_SOUNDS      },
 +   { MIMCMD_CLIST,       "clist",       MIMCMD_HELP_CLIST       },
 +   { MIMCMD_QUIT,        "quit",        MIMCMD_HELP_QUIT        },
 +   { MIMCMD_HELP,        "help",        MIMCMD_HELP_HELP        },
 +   { MIMCMD_EXCHANGE,    "exchange",    MIMCMD_HELP_EXCHANGE    },
 +   { MIMCMD_YAMN,        "yamn",        MIMCMD_HELP_YAMN        },
 +   { MIMCMD_CALLSERVICE, "callservice", MIMCMD_HELP_CALLSERVICE },
 +   { MIMCMD_MESSAGE,     "message",     MIMCMD_HELP_MESSAGE     },
 +   { MIMCMD_DATABASE,    "db",          MIMCMD_HELP_DATABASE    },
 +   { MIMCMD_PROXY,       "proxy",       MIMCMD_HELP_PROXY       },
 +   { MIMCMD_CONTACTS,    "contacts",    MIMCMD_HELP_CONTACTS    },
 +   { MIMCMD_HISTORY,     "history",     MIMCMD_HELP_HISTORY     },
 +   { MIMCMD_VERSION,     "version",     MIMCMD_HELP_VERSION     },
 +	{ MIMCMD_SETNICKNAME, "setnickname", MIMCMD_HELP_SETNICKNAME },
 +	{ MIMCMD_IGNORE,      "ignore",      MIMCMD_HELP_IGNORE      },
 +};
 -TCommand mimCommands[] = {{MIMCMD_STATUS, "status", MIMCMD_HELP_STATUS},
 -                       {MIMCMD_AWAYMSG, "awaymsg", MIMCMD_HELP_AWAYMSG},
 -                       {MIMCMD_XSTATUS, "xstatus", MIMCMD_HELP_XSTATUS},
 -                       {MIMCMD_POPUPS, "popups", MIMCMD_HELP_POPUPS},
 -                       {MIMCMD_SOUNDS, "sounds", MIMCMD_HELP_SOUNDS},
 -                       {MIMCMD_CLIST, "clist", MIMCMD_HELP_CLIST},
 -                       {MIMCMD_QUIT, "quit", MIMCMD_HELP_QUIT},
 -                       {MIMCMD_HELP, "help", MIMCMD_HELP_HELP},
 -                       {MIMCMD_EXCHANGE, "exchange", MIMCMD_HELP_EXCHANGE},
 -                       {MIMCMD_YAMN, "yamn", MIMCMD_HELP_YAMN},
 -                       {MIMCMD_CALLSERVICE, "callservice", MIMCMD_HELP_CALLSERVICE},
 -                       {MIMCMD_MESSAGE, "message", MIMCMD_HELP_MESSAGE},
 -                       {MIMCMD_DATABASE, "db", MIMCMD_HELP_DATABASE},
 -                       {MIMCMD_PROXY, "proxy", MIMCMD_HELP_PROXY},
 -                       {MIMCMD_CONTACTS, "contacts", MIMCMD_HELP_CONTACTS},
 -                       {MIMCMD_HISTORY, "history", MIMCMD_HELP_HISTORY},
 -                       {MIMCMD_VERSION, "version", MIMCMD_HELP_VERSION},
 -					   {MIMCMD_SETNICKNAME, "setnickname", MIMCMD_HELP_SETNICKNAME},
 -					   {MIMCMD_IGNORE, "ignore", MIMCMD_HELP_IGNORE},
 -                      };
  int cMimCommands = sizeof(mimCommands) / sizeof(mimCommands[0]);
\ No newline at end of file diff --git a/plugins/CmdLine/src/mimcmd_handlers.cpp b/plugins/CmdLine/src/mimcmd_handlers.cpp index 3b450485a1..64ab262bf7 100644 --- a/plugins/CmdLine/src/mimcmd_handlers.cpp +++ b/plugins/CmdLine/src/mimcmd_handlers.cpp @@ -18,7 +18,7 @@ along with this program; if not, write to the Free Software  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 -#include "commonheaders.h"
 +#include "stdafx.h"
  #define STATE_UNKNOWN -1
  #define STATE_OFF      0
 @@ -46,27 +46,27 @@ __inline static int matches(char *command, char *lower)  int Get2StateValue(char *state)
  {
  	char lower[512];
 -	STRNCPY(lower, state, sizeof(lower));
 +	strncpy_s(lower, state, sizeof(lower));
  	_strlwr(lower);
 -	
 +
  	//if ((mir_strcmp(lower, "enable") == 0) || (mir_strcmp(lower, "show") == 0) || (mir_strcmp(lower, "on") == 0))
  	if ((matches("enable", lower)) || (matches("show", lower)) || (matches("on", lower)))
  	{
  		return STATE_ON;
  	}
 -	
 +
  	//if ((mir_strcmp(lower, "disable") == 0) || (mir_strcmp(lower, "hide") == 0) || (mir_strcmp(lower, "off") == 0))
  	if ((matches("disable", lower)) || (matches("hide", lower)) || (matches("off", lower)))
  	{
  		return STATE_OFF;
  	}
 -	
 +
  	//if (mir_strcmp(lower, "toggle") == 0)
  	if (matches("toggle", lower))
  	{
  		return STATE_TOGGLE;
  	}
 -	
 +
  	return STATE_UNKNOWN;
  }
 @@ -74,33 +74,16 @@ int AccountName2Protocol(const char *accountName, OUT char *uniqueProtocolName,  {
  	int count;
  	PROTOACCOUNT **accounts = NULL;
 -
  	ProtoEnumAccounts(&count, &accounts);
 -	STRNCPY(uniqueProtocolName, accountName, length);
 -
 -	for (int i = 0; i < count; i++)
 -	{
 -		if (accounts[i]->bIsEnabled)
 -		{
 -			if (_stricmp(accountName, accounts[i]->tszAccountName) == 0)
 -			{
 -				STRNCPY(uniqueProtocolName, accounts[i]->szModuleName, length);
 +	strncpy_s(uniqueProtocolName, length, accountName, _TRUNCATE);
 +	for (int i = 0; i < count; i++) {
 +		if (accounts[i]->bIsEnabled) {
 +			if (_stricmp(accountName, _T2A(accounts[i]->tszAccountName)) == 0) {
 +				strncpy_s(uniqueProtocolName, length, accounts[i]->szModuleName, _TRUNCATE);
  				return 0;
  			}
 -
 -			//the account name may be unicode, try comparing with an unicode string too
 -			char *account = mir_u2a((wchar_t *) accounts[i]->tszAccountName);
 -			if (_stricmp(accountName, account) == 0)
 -			{
 -				STRNCPY(uniqueProtocolName, accounts[i]->szModuleName, length);
 -
 -				mir_free(account);
 -				return 0;
 -			}
 -
 -			mir_free(account);
  		}
  	}
 @@ -121,68 +104,64 @@ void HandleUnknownParameter(PCommand command, char *param, PReply reply)  int ParseValueParam(char *param, void *&result)
  {
 -	if (mir_strlen(param) > 0)
 -	{
 -		switch (*param)
 +	if (mir_strlen(param) > 0) {
 +		switch (*param) {
 +		case 's':
  		{
 -			case 's':
 -			{
 -				size_t len = mir_strlen(param); //- 1 + 1
 -				result = (char *) malloc(len * sizeof(char));
 -				STRNCPY((char *) result, param + 1, len);
 -				((char *) result)[len - 1] = 0;
 -				return VALUE_STRING;
 -			}
 -			
 -			case 'w':
 -			{
 -				size_t len = mir_strlen(param);
 -				result = (WCHAR *) malloc(len * sizeof(WCHAR));
 -				char *buffer = (char *) malloc(len * sizeof(WCHAR));
 -				STRNCPY(buffer, param + 1, len);
 -				
 -				MultiByteToWideChar(CP_ACP, 0, buffer, -1, (WCHAR *) result, (int) len);
 -				
 -				free(buffer);
 -				return VALUE_WIDE;
 -			}
 +			size_t len = mir_strlen(param); //- 1 + 1
 +			result = (char*)malloc(len * sizeof(char));
 +			strcpy((char*) result, param + 1);
 +			return VALUE_STRING;
 +		}
 -			case 'b':
 -			{
 -				result = (char *) malloc(sizeof(char));
 -				char *stop;
 -				
 -				long tmp = strtol(param + 1, &stop, 10);
 -				* ((char *) result) = tmp;
 -				
 -				return (*stop == 0) ? VALUE_BYTE : VALUE_ERROR;
 -			}
 +		case 'w':
 +		{
 +			size_t len = mir_strlen(param);
 +			result = (WCHAR *)malloc(len * sizeof(WCHAR));
 +			char *buffer = (char*)malloc(len * sizeof(WCHAR));
 +			strncpy_s(buffer, len, param + 1, _TRUNCATE);
 -			case 'i':
 -			{
 -				result = (int *) malloc(sizeof(int));
 -				char *stop;
 -				
 -				long tmp = strtol(param + 1, &stop, 10);
 -				* ((int *) result) = tmp;
 -				
 -				return (*stop == 0) ? VALUE_WORD : VALUE_ERROR;
 -			}
 +			MultiByteToWideChar(CP_ACP, 0, buffer, -1, (WCHAR *) result, (int) len);
 -			case 'd':
 -			{
 -				result = (long *) malloc(sizeof(long));
 -				char *stop;
 -				* ((long *) result) = strtol(param + 1, &stop, 10);
 -				
 -				return (*stop == 0) ? VALUE_DWORD : VALUE_ERROR;
 -			}
 -			default:
 -				return VALUE_UNKNOWN;
 +			free(buffer);
 +			return VALUE_WIDE;
 +		}
 +
 +		case 'b':
 +		{
 +			result = (char *)malloc(sizeof(char));
 +
 +			char *stop;
 +			long tmp = strtol(param + 1, &stop, 10);
 +			* ((char *) result) = tmp;
 +
 +			return (*stop == 0) ? VALUE_BYTE : VALUE_ERROR;
 +		}
 +
 +		case 'i':
 +		{
 +			result = (int *)malloc(sizeof(int));
 +			char *stop;
 +
 +			long tmp = strtol(param + 1, &stop, 10);
 +			* ((int *) result) = tmp;
 +
 +			return (*stop == 0) ? VALUE_WORD : VALUE_ERROR;
 +		}
 +
 +		case 'd':
 +		{
 +			result = (long *)malloc(sizeof(long));
 +			char *stop;
 +			* ((long *) result) = strtol(param + 1, &stop, 10);
 +
 +			return (*stop == 0) ? VALUE_DWORD : VALUE_ERROR;
 +		}
 +		default:
 +			return VALUE_UNKNOWN;
  		}
  	}
 -	else
 -		return VALUE_ERROR;
 +	else return VALUE_ERROR;
  }
  int ParseStatusParam(char *status)
 @@ -211,7 +190,7 @@ int ParseStatusParam(char *status)  	else if ( !mir_strcmp(lower, "outtolunch"))
  		return ID_STATUS_OUTTOLUNCH;
  	else
 -		return 0;	
 +		return 0;
  }
  char *PrettyStatusMode(int status, char *buffer, int size)
 @@ -219,7 +198,7 @@ char *PrettyStatusMode(int status, char *buffer, int size)  	*buffer = 0;
  	char *data = (char *) CallService(MS_CLIST_GETSTATUSMODEDESCRIPTION, status, 0);
  	if (data)
 -		STRNCPY(buffer, data, size);
 +		strncpy_s(buffer, size, data, _TRUNCATE);
  	return buffer;
  }
 @@ -233,7 +212,7 @@ void HandleStatusCommand(PCommand command, TArgument *argv, int argc, PReply rep  			INT_PTR status = CallService(MS_CLIST_GETSTATUSMODE, 0, 0);
  			char pretty[128];
  			PrettyStatusMode(status, pretty, sizeof(pretty));
 -			
 +
  			CMStringA perAccountStatus;
  			int count;
 @@ -261,7 +240,7 @@ void HandleStatusCommand(PCommand command, TArgument *argv, int argc, PReply rep  			return;
  		}
 -	
 +
  		case 3:
  		{
  			int status = ParseStatusParam(argv[2]);
 @@ -273,22 +252,22 @@ void HandleStatusCommand(PCommand command, TArgument *argv, int argc, PReply rep  				{
  					announce_status_change(NULL, status, NULL);
  				}
 -				
 +
  				PrettyStatusMode(old, po, sizeof(po));
  				CallService(MS_CLIST_SETSTATUSMODE, status, 0);
  				char pn[128];
  				PrettyStatusMode(status, pn, sizeof(pn));
 -				
 +
  				reply->code = MIMRES_SUCCESS;
  				mir_snprintf(reply->message, _countof(reply->message), Translate("Changed global status to '%s' (previous status was '%s')."), pn, po);
  			}
  			else{
  				HandleUnknownParameter(command, argv[2], reply);
  			}
 -			
 +
  			return;
  		}
 -		
 +
  		case 4:
  		{
  			int status = ParseStatusParam(argv[2]);
 @@ -304,24 +283,24 @@ void HandleStatusCommand(PCommand command, TArgument *argv, int argc, PReply rep  				{
  					announce_status_change(protocol, status, NULL);
  				}
 -				
 +
  				PrettyStatusMode(old, po, sizeof(po));
  				INT_PTR res = CallProtoService(protocol, PS_SETSTATUS, status, 0);
  				char pn[128];
  				PrettyStatusMode(status, pn, sizeof(pn));
 -				
 +
  				switch (res)
  				{
  					case 0:
  						reply->code = MIMRES_SUCCESS;
  						mir_snprintf(reply->message, _countof(reply->message), Translate("Changed '%s' status to '%s' (previous status was '%s')."), account, pn, po);
  						return;
 -					
 +
  					case CALLSERVICE_NOTFOUND:
  						reply->code = MIMRES_FAILURE;
  						mir_snprintf(reply->message, _countof(reply->message), Translate("'%s' doesn't seem to be a valid account."), account);
  						return;
 -					
 +
  					default:
  						reply->code = MIMRES_FAILURE;
  						mir_snprintf(reply->message, _countof(reply->message), Translate("Failed to change status for account '%s' to '%s'."), account, pn);
 @@ -331,10 +310,10 @@ void HandleStatusCommand(PCommand command, TArgument *argv, int argc, PReply rep  			else{
  				HandleUnknownParameter(command, argv[2], reply);
  			}
 -		
 +
  			return;
  		}
 -		
 +
  		default:
  			HandleWrongParametersCount(command, reply);
  	}
 @@ -383,14 +362,14 @@ void HandleAwayMsgCommand(PCommand command, TArgument *argv, int argc, PReply re  			reply->code = MIMRES_SUCCESS;
  			return;
  		}
 -		
 +
  		case 4:
  		{
  			char *awayMsg = argv[2];
  			char protocol[128];
  			char *account = argv[3];
  			AccountName2Protocol(account, protocol, sizeof(protocol));
 -			
 +
  			char pn[128];
  			INT_PTR res = CallProtoService(protocol, PS_GETCAPS, PFLAGNUM_1, 0);
  			if ((res & PF1_MODEMSGSEND) != 0) //if the protocol supports away messages
 @@ -407,31 +386,31 @@ void HandleAwayMsgCommand(PCommand command, TArgument *argv, int argc, PReply re  			else {
  				res = -2;
  			}
 -			
 +
  			switch (res)
  			{
  				case 0:
  					reply->code = MIMRES_SUCCESS;
  					mir_snprintf(reply->message, _countof(reply->message), Translate("Changed '%s' status message to '%s' (status is '%s')."), account, awayMsg, pn);
  					return;
 -				
 +
  				case CALLSERVICE_NOTFOUND:
  					reply->code = MIMRES_FAILURE;
  					mir_snprintf(reply->message, _countof(reply->message), Translate("'%s' doesn't seem to be a valid account."), account);
  					return;
 -				
 +
  				case -2:
  					reply->code = MIMRES_FAILURE;
  					mir_snprintf(reply->message, _countof(reply->message), Translate("Account '%s' does not support away messages, skipping."), account);
  					return;
 -				
 +
  				default:
  					reply->code = MIMRES_FAILURE;
  					mir_snprintf(reply->message, _countof(reply->message), Translate("Failed to change status message for account '%s' to '%s' (status is '%s')."), account, awayMsg, pn);
  					return;
  			}
  		}
 -		
 +
  		default:
  			HandleWrongParametersCount(command, reply);
  	}
 @@ -472,27 +451,27 @@ void HandlePopupsCommand(PCommand command, TArgument *argv, int argc, PReply rep  		{
  			int state = CallService(MS_POPUP_QUERY, PUQS_GETSTATUS, 0);
  			Set2StateReply(reply,  state, 0, LPGEN("Popups are currently enabled."), "", LPGEN("Popups are currently disabled."), "");
 -			
 +
  			return;
  		}
 -			
 +
  		case 3:
  		{
  			int failure;
  			int state = 0;
 -			
 +
  			switch (Get2StateValue(argv[2]))
  			{
  				case STATE_ON:
  					failure = CallService(MS_POPUP_QUERY, PUQS_ENABLEPOPUPS, 0);
  					state = TRUE;
  					break;
 -				
 +
  				case STATE_OFF:
  					failure = CallService(MS_POPUP_QUERY, PUQS_DISABLEPOPUPS, 0);
  					state = FALSE;
  					break;
 -				
 +
  				case STATE_TOGGLE:
  				{
  					int state = CallService(MS_POPUP_QUERY, PUQS_GETSTATUS, 0);
 @@ -500,18 +479,18 @@ void HandlePopupsCommand(PCommand command, TArgument *argv, int argc, PReply rep  					state = 1 - state;
  					break;
  				}
 -				
 +
  				default:
  					HandleUnknownParameter(command, argv[2], reply);
  					return;
  			}
 -			
 +
  			Set2StateReply(reply, state, failure, LPGEN("Popups were enabled successfully."), LPGEN("Popups could not be enabled."),
  				LPGEN("Popups were disabled successfully."), LPGEN("Popups could not be disabled."));
 -			
 +
  			return;
  		}
 -		
 +
  		default:
  			HandleWrongParametersCount(command, reply);
  	}
 @@ -527,39 +506,39 @@ void HandleSoundsCommand(PCommand command, TArgument *argv, int argc, PReply rep  			Set2StateReply(reply,  state, 0, LPGEN("Sounds are currently enabled."), "", LPGEN("Sounds are currently disabled."), "");
  			return;
  		}
 -			
 +
  		case 3:
  		{
  			int state = 0;
 -			
 +
  			switch (Get2StateValue(argv[2]))
  			{
  				case STATE_ON:
  					db_set_b(NULL, "Skin", "UseSound", 1);
  					state = TRUE;
  					break;
 -				
 +
  				case STATE_OFF:
  					db_set_b(NULL, "Skin", "UseSound", 0);
  					state = FALSE;
  					break;
 -				
 +
  				case STATE_TOGGLE:
  					state = db_get_b(NULL, "Skin", "UseSound", 1);
  					state = 1 - state;
  					db_set_b(NULL, "Skin", "UseSound", state);
  					break;
 -				
 +
  				default:
  					HandleUnknownParameter(command, argv[2], reply);
  					return;
  			}
  			Set2StateReply(reply, state, 0, LPGEN("Sounds were enabled successfully."), "", LPGEN("Sounds were disabled successfully."), "");
 -			
 +
  			return;
  		}
 -		
 +
  		default:
  			HandleWrongParametersCount(command, reply);
  	}
 @@ -574,56 +553,56 @@ void HandleClistCommand(PCommand command, TArgument *argv, int argc, PReply repl  			HWND hClist = (HWND) CallService(MS_CLUI_GETHWND, 0, 0);
  			int state = IsWindowVisible(hClist);
  			Set2StateReply(reply,  state, 0, LPGEN("Contact list is currently shown."), "", LPGEN("Contact list is currently hidden."), "");
 -			
 +
  			return;
  		}
 -	
 +
  		case 3:
  		{
  			int state = 0;
  			HWND hClist = (HWND) CallService(MS_CLUI_GETHWND, 0, 0);
 -			
 +
  			switch (Get2StateValue(argv[2]))
  			{
  				case STATE_ON:
  				{
  					ShowWindow(hClist, SW_SHOW);
 -					
 +
  					state = TRUE;
 -				
 +
  					break;
  				}
 -				
 +
  				case STATE_OFF:
  				{
  					ShowWindow(hClist, SW_HIDE);
  					state = FALSE;
 -				
 +
  					break;
  				}
 -				
 +
  				case STATE_TOGGLE:
  				{
  					state = IsWindowVisible(hClist);
 -					
 +
  					state = 1 - state;
  					ShowWindow(hClist, (state) ? SW_SHOW : SW_HIDE);
 -				
 +
  					break;
  				}
 -				
 +
  				default:
  					HandleUnknownParameter(command, argv[2], reply);
  					return;
  			}
 -			
 +
  			Set2StateReply(reply, state, 0, LPGEN("Contact list was shown successfully."), "",
  				LPGEN("Contact list was hidden successfully."), "");
 -			
 +
  			return;
  		}
 -		
 +
  		default:
  			HandleWrongParametersCount(command, reply);
  	}
 @@ -636,38 +615,37 @@ void HandleQuitCommand(PCommand command, TArgument *argv, int argc, PReply reply  		case 2:
  		{
  			CallService("CloseAction", 0, 0);
 -			
 +
  			//try another quit method
  			HWND hWndMiranda = (HWND)CallService(MS_CLUI_GETHWND, 0, 0);
  			PostMessage(hWndMiranda, WM_COMMAND, ID_ICQ_EXIT, 0);
 -			
 +
  			reply->code = MIMRES_SUCCESS;
 -			mir_snprintf(reply->message, _countof(reply->message), TranslateT("Issued a quit command."));
 -		
 +			mir_snprintf(reply->message, _countof(reply->message), Translate("Issued a quit command."));
  			break;
  		}
 -		
 +
  		case 3:
  		{
  			char lower[128];
 -			STRNCPY(lower, argv[2], sizeof(lower));
 +			strncpy_s(lower, argv[2], sizeof(lower));
  			_strlwr(lower);
 -			
 +
  			if (mir_strcmp(lower, "wait") == 0)
  			{
  				CallService("CloseAction", 0, 0);
 -				
 +
  				//try another quit method
  				HWND hWndMiranda = (HWND)CallService(MS_CLUI_GETHWND, 0, 0);
  				PostMessage(hWndMiranda, WM_COMMAND, ID_ICQ_EXIT, 0);
 -				
 +
  				reply->code = MIMRES_SUCCESS;
 -				mir_snprintf(reply->message, _countof(reply->message), TranslateT("Issued a quit and wait command."));
 -				
 +				mir_snprintf(reply->message, _countof(reply->message), Translate("Issued a quit and wait command."));
 +
  				SetEvent(heServerBufferFull);
 -				
 +
  				bWaitForUnload = 1;
 -				
 +
  				while (bWaitForUnload)
  				{
  					Sleep(250); //wait for Miranda to quit.
 @@ -676,10 +654,10 @@ void HandleQuitCommand(PCommand command, TArgument *argv, int argc, PReply reply  			else{
  				HandleUnknownParameter(command, argv[2], reply);
  			}
 -			
 +
  			break;
  		}
 -		
 +
  		default:
  			HandleWrongParametersCount(command, reply);
  	}
 @@ -692,7 +670,7 @@ void HandleExchangeCommand(PCommand command, TArgument *argv, int argc, PReply r  		case 3:
  		{
  			char lower[128];
 -			STRNCPY(lower, argv[2], sizeof(lower));
 +			strncpy_s(lower, argv[2], sizeof(lower));
  			_strlwr(lower);
  			if (mir_strcmp(lower, "check") == 0)
  			{
 @@ -710,10 +688,10 @@ void HandleExchangeCommand(PCommand command, TArgument *argv, int argc, PReply r  			else{
  				HandleUnknownParameter(command, argv[2], reply);
  			}
 -		
 +
  			return;
  		}
 -		
 +
  		default:
  			HandleWrongParametersCount(command, reply);
  	}
 @@ -726,14 +704,14 @@ void HandleYAMNCommand(PCommand command, TArgument *argv, int argc, PReply reply  		case 3:
  		{
  			char lower[128];
 -			STRNCPY(lower, argv[2], sizeof(lower));
 +			strncpy_s(lower, argv[2], sizeof(lower));
  			_strlwr(lower);
  			if (mir_strcmp(lower, "check") == 0)
  			{
  				if (ServiceExists(MS_YAMN_FORCECHECK))
  				{
  					CallService(MS_YAMN_FORCECHECK, 0, 0);
 -					
 +
  					reply->code = MIMRES_SUCCESS;
  					mir_snprintf(reply->message, _countof(reply->message), Translate("Issued check email command to YAMN plugin."));
  				}
 @@ -745,10 +723,10 @@ void HandleYAMNCommand(PCommand command, TArgument *argv, int argc, PReply reply  			else{
  				HandleUnknownParameter(command, argv[2], reply);
  			}
 -		
 +
  			return;
  		}
 -		
 +
  		default:
  			HandleWrongParametersCount(command, reply);
  	}
 @@ -771,7 +749,7 @@ void HandleCallServiceCommand(PCommand command, TArgument *argv, int argc, PRepl  				{
  					//very dangerous but the user asked
  					INT_PTR res = CallService(service, ((res1 == 1) ? *((long *) wParam) : (WPARAM) wParam), (LPARAM) ((res2 == 1) ? *((long *) lParam) : (LPARAM) lParam));
 -					
 +
  					reply->code = MIMRES_SUCCESS;
  					mir_snprintf(reply->message, _countof(reply->message), Translate("CallService call successful: service '%s' returned %p."), service, res);
  				}
 @@ -788,10 +766,10 @@ void HandleCallServiceCommand(PCommand command, TArgument *argv, int argc, PRepl  				reply->code = MIMRES_FAILURE;
  				mir_snprintf(reply->message, _countof(reply->message), Translate("Service '%s' does not exist."), service);
  			}
 -			
 +
  			break;
  		}
 -		
 +
  		default:
  			HandleWrongParametersCount(command, reply);
  	}
 @@ -816,23 +794,15 @@ MCONTACT ParseContactParam(char *contact)  	char account[128];
  	char protocol[128];
  	char *p = strrchr(contact, ':');
 -	MCONTACT hContact = NULL;
 -	if (p)
 -	{
 -		*p = 0;
 -		STRNCPY(name, contact, p - contact + 1);
 -		STRNCPY(account, p + 1, sizeof(account));
 -		*p = ':';
 -		AccountName2Protocol(account, protocol, sizeof(protocol));
 -		
 -		hContact = GetContactFromID(name, protocol);
 +	if (p == 0)
 +		return GetContactFromID(contact, (char*)NULL);
 -	}
 -	else{
 -		hContact = GetContactFromID(contact, (char *) NULL);
 -	}
 -	
 -	return hContact;
 +	*p = 0;
 +	strncpy_s(name, contact, _TRUNCATE);
 +	strncpy_s(account, p+1, _TRUNCATE);
 +	*p = ':';
 +	AccountName2Protocol(account, protocol, sizeof(protocol));
 +	return GetContactFromID(name, protocol);
  }
  void HandleMessageCommand(PCommand command, TArgument *argv, int argc, PReply reply)
 @@ -842,13 +812,13 @@ void HandleMessageCommand(PCommand command, TArgument *argv, int argc, PReply re  		char message[512];
  		ParseMessage(message, argv[argc - 1]); //get the message
 -		CMString szReply;
 +		CMStringA szReply;
  		ACKDATA *ack = NULL;
  		for (int i = 2; i < argc - 1; i++)
  		{
  			char *contact = argv[i];
  			MCONTACT hContact = ParseContactParam(contact);
 -			
 +
  			if (i != 3)
  				szReply.AppendChar('\n');
 @@ -864,13 +834,13 @@ void HandleMessageCommand(PCommand command, TArgument *argv, int argc, PReply re  					counter++;
  				}
  				bShouldProcessAcks = FALSE;
 -				
 +
  				if (counter < MAX_COUNT)
  				{
  					if (ack->result == ACKRESULT_SUCCESS)
  					{
  						if (ack->szModule)
 -						{						
 +						{
  							szReply.AppendFormat(Translate("Message sent to '%s'."), contact);
  							DBEVENTINFO e = {0};
 @@ -878,14 +848,14 @@ void HandleMessageCommand(PCommand command, TArgument *argv, int argc, PReply re  							e.cbSize = sizeof(DBEVENTINFO);
  							e.eventType = EVENTTYPE_MESSAGE;
  							e.flags = DBEF_SENT;
 -							
 +
  							e.pBlob = (PBYTE) message;
  							e.cbBlob = (DWORD) mir_strlen((char *) message) + 1;
 -						
 -							STRNCPY(module, ack->szModule, sizeof(module));
 +
 +							strncpy_s(module, ack->szModule, sizeof(module));
  							e.szModule = module;
  							e.timestamp = (DWORD) time(NULL);
 -							
 +
  							db_event_add(ack->hContact, &e);
  						}
  						else szReply.AppendFormat(Translate("Message to '%s' was marked as sent but the account seems to be offline"), contact);
 @@ -908,44 +878,44 @@ bool ParseDatabaseData(DBVARIANT *var, char *buffer, int size, int free)  		case DBVT_BYTE:
  			mir_snprintf(buffer, size, Translate("byte:%d"), var->bVal);
  			return true;
 -		
 +
  		case DBVT_WORD:
  			mir_snprintf(buffer, size, Translate("word:%d"), var->wVal);
  			return true;
 -		
 +
  		case DBVT_DWORD:
  			mir_snprintf(buffer, size, Translate("dword:%ld"), var->dVal);
  			return true;
 -		
 +
  		case DBVT_ASCIIZ:
  			mir_snprintf(buffer, size, Translate("string:'%s'"), var->pszVal);
  			if (free) {
  				mir_free(var->pszVal);
  			}
 -			
 +
  			return true;
 -		
 +
  		case DBVT_WCHAR:
  			mir_snprintf(buffer, size, Translate("wide string:'%S'"), var->pwszVal);
  			if (free) {
  				mir_free(var->pwszVal);
  			}
  			return true;
 -		
 +
  		case DBVT_UTF8:
  			mir_snprintf(buffer, size, Translate("utf8:'%s'"), var->pszVal);
  			if (free) {
  				mir_free(var->pszVal);
  			}
  			return true;
 -		
 +
  		case DBVT_BLOB:
  			mir_snprintf(buffer, size, Translate("blob:N/A"));
  			if (free) {
  				mir_free(var->pbVal);
  			}
  			return true;
 -		
 +
  		default:
  			mir_snprintf(buffer, size, Translate("unknown value"));
  			return false;
 @@ -957,7 +927,7 @@ void HandleDatabaseCommand(PCommand command, TArgument *argv, int argc, PReply r  	if (argc >= 3) //we have something to parse
  	{
  		char dbcmd[128];
 -		STRNCPY(dbcmd, argv[2], sizeof(dbcmd));
 +		strncpy_s(dbcmd, argv[2], sizeof(dbcmd));
  		dbcmd[sizeof(dbcmd) - 1] = 0;
  		_strlwr(dbcmd);
  		if (mir_strcmp(dbcmd, "delete") == 0)
 @@ -966,9 +936,9 @@ void HandleDatabaseCommand(PCommand command, TArgument *argv, int argc, PReply r  			{
  				char *module = argv[3];
  				char *key = argv[4];
 -				
 +
  				db_unset(NULL, module, key);
 -				
 +
  				reply->code = MIMRES_SUCCESS;
  				mir_snprintf(reply->message, _countof(reply->message), Translate("Setting '%s/%s' deleted."), module, key);
  			}
 @@ -982,46 +952,44 @@ void HandleDatabaseCommand(PCommand command, TArgument *argv, int argc, PReply r  			{
  				char *module = argv[3];
  				char *key = argv[4];
 -					
 -				int ok = 1;
 -					
 +
  				void *value = NULL;
  				char *wrote = NULL;
  				int type = ParseValueParam(argv[5], value);
 -					
 +
  				switch (type)
  				{
  					case VALUE_STRING:
  						db_set_s(NULL, module, key, (char *) value);
  						wrote = Translate("string");
 -							
 +
  						break;
 -						
 +
  					case VALUE_BYTE:
  						db_set_b(NULL, module, key, (* (char *) value));
  						wrote = Translate("byte");
  						break;
 -						
 +
  					case VALUE_WORD:
  						db_set_w(NULL, module, key, (* (WORD *) value));
  						wrote = Translate("word");
  						break;
 -						
 +
  					case VALUE_DWORD:
  						db_set_dw(NULL, module, key, (* (DWORD *) value));
  						wrote = Translate("dword");
  						break;
 -						
 +
  					case VALUE_WIDE:
  						db_set_ws(NULL, module, key, (WCHAR *) value);
  						wrote = Translate("wide string");
  						break;
 -						
 +
  					default:
  						HandleUnknownParameter(command, argv[5], reply);
  						return;
  				}
 -				
 +
  				reply->code = MIMRES_SUCCESS;
  				mir_snprintf(reply->message, _countof(reply->message), Translate("Wrote '%s:%s' to database entry '%s/%s'."), wrote, argv[5] + 1, module, key);
 @@ -1037,18 +1005,18 @@ void HandleDatabaseCommand(PCommand command, TArgument *argv, int argc, PReply r  			{
  				char *module = argv[3];
  				char *key = argv[4];
 -						
 +
  				DBVARIANT var = {0};
 -						
 +
  				int res = db_get(NULL, module, key, &var);
  				if (!res)
  				{
  					char buffer[1024];
 -							
 +
  					if (ParseDatabaseData(&var, buffer, sizeof(buffer), TRUE))
  					{
  						reply->code = MIMRES_SUCCESS;
 -						mir_snprintf(reply->message, _countof(reply->message), "'%s/%s' - %s.", module, key, buffer); 
 +						mir_snprintf(reply->message, _countof(reply->message), "'%s/%s' - %s.", module, key, buffer);
  					}
  					else{
  						reply->code = MIMRES_FAILURE;
 @@ -1059,7 +1027,7 @@ void HandleDatabaseCommand(PCommand command, TArgument *argv, int argc, PReply r  					reply->code = MIMRES_FAILURE;
  					mir_snprintf(reply->message, _countof(reply->message), Translate("Setting '%s/%s' was not found."), module, key);
  				}
 -						
 +
  			}
  			else{
  				HandleWrongParametersCount(command, reply);
 @@ -1077,10 +1045,10 @@ void HandleDatabaseCommand(PCommand command, TArgument *argv, int argc, PReply r  int ParseProxyType(char *type)
  {
  	char lower[128];
 -	STRNCPY(lower, type, sizeof(lower));
 +	strncpy_s(lower, type, sizeof(lower));
  	lower[sizeof(lower) - 1] = 0;
  	_strlwr(lower);
 -	
 +
  	if (mir_strcmp(lower, "socks4") == 0)
  	{
  		return PROXY_SOCKS4;
 @@ -1109,32 +1077,32 @@ char *PrettyProxyType(int type, char *buffer, int size)  		case PROXY_SOCKS4:
  			pretty = "SOCKS4";
  			break;
 -		
 +
  		case PROXY_SOCKS5:
  			pretty = "SOCKS5";
  			break;
 -		
 +
  		case PROXY_HTTP:
  			pretty = "HTTP";
  			break;
 -		
 +
  		case PROXY_HTTPS:
  			pretty = "HTTPS";
  			break;
 -		
 +
  		default:
  			pretty = "Unknown";
  	}
 -	
 -	STRNCPY(buffer, pretty, size);
 -	
 +
 +	strncpy_s(buffer, size, pretty, _TRUNCATE);
 +
  	return buffer;
  }
  void HandleProtocolProxyCommand(PCommand command, TArgument *argv, int argc, PReply reply, char *module, char *protocol)
  {
  	char proxycmd[128];
 -	STRNCPY(proxycmd, argv[3], sizeof(proxycmd));
 +	strncpy_s(proxycmd, argv[3], sizeof(proxycmd));
  	proxycmd[sizeof(proxycmd) - 1] = 0;
  	_strlwr(proxycmd);
 @@ -1148,13 +1116,13 @@ void HandleProtocolProxyCommand(PCommand command, TArgument *argv, int argc, PRe  			case 4:
  			{
  				int value = db_get_b(NULL, module, "NLUseProxy", 0);
 -				
 +
  				reply->code = MIMRES_SUCCESS;
  				mir_snprintf(buffer, _countof(buffer), "%s proxy status is %s", protocol, (value) ? "enabled" : "disabled");
 -		
 +
  				break;
  			}
 -			
 +
  			case 5:
  			{
  				int state = Get2StateValue(argv[4]);
 @@ -1163,43 +1131,43 @@ void HandleProtocolProxyCommand(PCommand command, TArgument *argv, int argc, PRe  					case STATE_OFF:
  					{
  						db_set_b(NULL, module, "NLUseProxy", 0);
 -						
 +
  						reply->code = MIMRES_SUCCESS;
  						mir_snprintf(buffer, _countof(buffer), Translate("'%s' proxy was disabled."), protocol);
 -					
 +
  						break;
  					}
 -					
 +
  					case STATE_ON:
  					{
  						db_set_b(NULL, module, "NLUseProxy", 1);
 -						
 +
  						reply->code = MIMRES_SUCCESS;
  						mir_snprintf(buffer, _countof(buffer), Translate("'%s' proxy was enabled."), protocol);
 -						
 +
  						break;
  					}
 -					
 +
  					case STATE_TOGGLE:
  					{
  						int value = db_get_b(NULL, module, "NLUseProxy", 0);
  						value = 1 - value;
  						db_set_b(NULL, module, "NLUseProxy", value);
 -						
 +
  						reply->code = MIMRES_SUCCESS;
  						mir_snprintf(buffer, _countof(buffer), (value) ? Translate("'%s' proxy was enabled.") : Translate("'%s' proxy was disabled."));
 -						
 +
  						break;
  					}
 -					
 +
  					default:
  						HandleUnknownParameter(command, argv[4], reply);
  						return;
  				}
 -			
 +
  				break;
  			}
 -			
 +
  			default:
  				HandleWrongParametersCount(command, reply);
  				return;
 @@ -1215,13 +1183,13 @@ void HandleProtocolProxyCommand(PCommand command, TArgument *argv, int argc, PRe  				GetStringFromDatabase(NULL, module, "NLProxyServer", "<unknown>", host, sizeof(host));
  				int port = db_get_w(NULL, module, "NLProxyPort", 0);
  				PrettyProxyType(db_get_b(NULL, module, "NLProxyType", 0), type, sizeof(type));
 -					
 +
  				reply->code = MIMRES_SUCCESS;
  				mir_snprintf(buffer, _countof(buffer), Translate("%s proxy server: %s %s:%d."), protocol, type, host, port);
 -				
 +
  				break;
  			}
 -				
 +
  			case 7:
  			{
  				int type = ParseProxyType(argv[4]);
 @@ -1229,13 +1197,13 @@ void HandleProtocolProxyCommand(PCommand command, TArgument *argv, int argc, PRe  				long port;
  				char *stop = NULL;
  				port = strtol(argv[6], &stop, 10);
 -					
 +
  				if ((*stop == 0) && (type > 0))
  				{
  					db_set_s(NULL, module, "NLProxyServer", host);
  					db_set_w(NULL, module, "NLProxyPort", port);
  					db_set_b(NULL, module, "NLProxyType", type);
 -						
 +
  					reply->code = MIMRES_SUCCESS;
  					mir_snprintf(buffer, _countof(buffer), Translate("%s proxy set to %s %s:%d."), protocol, argv[4], host, port);
  				}
 @@ -1243,10 +1211,10 @@ void HandleProtocolProxyCommand(PCommand command, TArgument *argv, int argc, PRe  					reply->code = MIMRES_FAILURE;
  					mir_snprintf(buffer, _countof(buffer), Translate("%s The port or the proxy type parameter is invalid."), protocol);
  				}
 -				
 +
  				break;
  			}
 -				
 +
  			default:
  				HandleWrongParametersCount(command, reply);
  				return;
 @@ -1257,7 +1225,7 @@ void HandleProtocolProxyCommand(PCommand command, TArgument *argv, int argc, PRe  		return;
  	}
 -	
 +
  	if (reply->message[0] != 0)
  	{
  		mir_strncat(reply->message, "\n", _countof(reply->message) - mir_strlen(reply->message));
 @@ -1275,15 +1243,15 @@ void HandleProxyCommand(PCommand command, TArgument *argv, int argc, PReply repl  	{
  		char account[128];
  		char protocol[128];
 -		STRNCPY(account, argv[2], sizeof(account));
 +		strncpy_s(account, argv[2], sizeof(account));
  		account[sizeof(account) - 1] = 0;
  		AccountName2Protocol(account, protocol, sizeof(protocol));
 -		
 +
  		int count = 0;
  		PROTOACCOUNT **accounts = NULL;
  		ProtoEnumAccounts(&count, &accounts);
 -		
 +
  		int i;
  		int global = (mir_strcmp(protocol, "GLOBAL") == 0);
 @@ -1295,9 +1263,9 @@ void HandleProxyCommand(PCommand command, TArgument *argv, int argc, PReply repl  			HandleProtocolProxyCommand(command, argv, argc, reply, "Netlib", protocol);
  			found = 1;
  		}
 -		
 +
  		char *match;
 -	
 +
  		for (i = 0; i < count; i++)
  		{
  			if (accounts[i]->bIsEnabled)
 @@ -1310,7 +1278,7 @@ void HandleProxyCommand(PCommand command, TArgument *argv, int argc, PReply repl  				}
  			}
  		}
 -		
 +
  		if (!found)
  		{
  			reply->code = MIMRES_FAILURE;
 @@ -1325,27 +1293,27 @@ void HandleProxyCommand(PCommand command, TArgument *argv, int argc, PReply repl  int ContactMatchSearch(MCONTACT hContact, char *contact, char *id, char *account, TArgument *argv, int argc)
  {
  	int matches = 1;
 -	
 +
  	char lwrName[2048] = "\0";
  	char lwrAccount[128] = "\0";
  	char lwrKeyword[512] = "\0";
  	char lwrID[512] = "\0";
  	char *pos;
 -	
 -	STRNCPY(lwrName, contact, sizeof(lwrName));
 -	STRNCPY(lwrAccount, account, sizeof(lwrAccount));
 -	
 -	if (id) { STRNCPY(lwrID, id, sizeof(lwrID)); }
 -	
 +
 +	strncpy_s(lwrName, contact, sizeof(lwrName));
 +	strncpy_s(lwrAccount, account, sizeof(lwrAccount));
 +
 +	if (id) { strncpy_s(lwrID, id, sizeof(lwrID)); }
 +
  	_strlwr(lwrName);
  	_strlwr(lwrAccount);
  	_strlwr(lwrID);
 -	
 +
  	for (int i = 0; i < argc; i++)
  	{
 -		STRNCPY(lwrKeyword, argv[i], sizeof(lwrKeyword));
 +		strncpy_s(lwrKeyword, argv[i], sizeof(lwrKeyword));
  		_strlwr(lwrKeyword);
 -		
 +
  		pos = strstr(lwrKeyword, "account:");
  		if (pos)
  		{
 @@ -1353,7 +1321,7 @@ int ContactMatchSearch(MCONTACT hContact, char *contact, char *id, char *account  			if (strstr(lwrAccount, pos) == NULL)
  			{
  				matches = 0;
 -				
 +
  				break;
  			}
  		}
 @@ -1366,7 +1334,7 @@ int ContactMatchSearch(MCONTACT hContact, char *contact, char *id, char *account  				AccountName2Protocol(account, protocol, sizeof(protocol));
  				WORD contactStatus = db_get_w(hContact, protocol, "Status", ID_STATUS_ONLINE);
 -				
 +
  				if (searchStatus != contactStatus)
  				{
  					matches = 0;
 @@ -1392,7 +1360,7 @@ int ContactMatchSearch(MCONTACT hContact, char *contact, char *id, char *account  			}
  		}
  	}
 -	
 +
  	return matches;
  }
 @@ -1414,13 +1382,13 @@ void HandleContactsCommand(PCommand command, TArgument *argv, int argc, PReply r  		{
  			char buffer[1024];
  			char protocol[128];
 -		
 +
  			int count = 0;
 -			
 +
  			reply->code = MIMRES_SUCCESS;
  			for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) {
  				GetContactProto(hContact, protocol, sizeof(protocol));
 -				
 +
  				char *contact = GetContactName(hContact, protocol);
  				char *id = GetContactID(hContact, protocol);
  				if (ContactMatchSearch(hContact, contact, id, protocol, &argv[3], argc - 3))
 @@ -1432,9 +1400,9 @@ void HandleContactsCommand(PCommand command, TArgument *argv, int argc, PReply r  						mir_strncat(reply->message, buffer, _countof(reply->message) - mir_strlen(reply->message));
  					}
  					else{
 -						STRNCPY(reply->message, buffer, _countof(reply->message));
 +						strncpy_s(reply->message, buffer, _countof(reply->message));
  					}
 -					
 +
  					if (mir_strlen(reply->message) > 4096)
  					{
  						SetEvent(heServerBufferFull);
 @@ -1442,10 +1410,10 @@ void HandleContactsCommand(PCommand command, TArgument *argv, int argc, PReply r  						count = 0;
  						*reply->message = 0;
  					}
 -					
 +
  					count++;
  				}
 -				
 +
  				free(contact);
  				free(id);
  			}
 @@ -1455,17 +1423,17 @@ void HandleContactsCommand(PCommand command, TArgument *argv, int argc, PReply r  			if (argc > 3)
  			{
  				char protocol[128];
 -					
 +
  				reply->code = MIMRES_SUCCESS;
  				*reply->message = 0;
  				for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) {
  					GetContactProto(hContact, protocol, sizeof(protocol));
 -						
 +
  					char *contact = GetContactName(hContact, protocol);
  					char *id = GetContactID(hContact, protocol);
  					if (ContactMatchSearch(hContact, contact, id, protocol, &argv[3], argc - 3))
 -						HANDLE thread = mir_forkthread(OpenMessageWindowThread, (void*)hContact);
 -						
 +						mir_forkthread(OpenMessageWindowThread, (void*)hContact);
 +
  					free(contact);
  					free(id);
  				}
 @@ -1477,14 +1445,14 @@ void HandleContactsCommand(PCommand command, TArgument *argv, int argc, PReply r  				for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) {
  					MEVENT hUnreadEvent = db_event_firstUnread(hContact);
  					if (hUnreadEvent != NULL)
 -						HANDLE thread = mir_forkthread(OpenMessageWindowThread, (void*)hContact);
 +						mir_forkthread(OpenMessageWindowThread, (void*)hContact);
  				}
  			}
  			else HandleWrongParametersCount(command, reply);
  		}
  		else HandleUnknownParameter(command, argv[2], reply);
  	}
 -	else HandleWrongParametersCount(command, reply);	
 +	else HandleWrongParametersCount(command, reply);
  }
  void AddHistoryEvent(DBEVENTINFO *dbEvent, char *contact, PReply reply)
 @@ -1495,23 +1463,23 @@ void AddHistoryEvent(DBEVENTINFO *dbEvent, char *contact, PReply reply)  	tts.cbDest = sizeof(timestamp);
  	tts.szFormat = "D, s";
  	CallService(MS_DB_TIME_TIMESTAMPTOSTRING, dbEvent->timestamp,(LPARAM) &tts);
 -	
 +
  	char *sender = (dbEvent->flags & DBEF_SENT) ? Translate("[me]") : contact;
  	char *message = DbGetEventTextA(dbEvent,CP_ACP);
 -	
 +
  	static char buffer[8192];
  	mir_snprintf(buffer, _countof(buffer), "[%s] %15s: %s", timestamp, sender, message);
 -	
 -	
 +
 +
  	if (reply->message[0] != 0)
  	{
  		mir_strncat(reply->message, "\n", _countof(reply->message) - mir_strlen(reply->message));
  		mir_strncat(reply->message, buffer, _countof(reply->message) - mir_strlen(reply->message));
  	}
  	else{
 -		STRNCPY(reply->message, buffer, _countof(reply->message));
 +		strncpy_s(reply->message, buffer, _countof(reply->message));
  	}
 -	
 +
  	if (mir_strlen(reply->message) > (_countof(reply->message) / 2))
  	{
  		SetEvent(heServerBufferFull);
 @@ -1562,7 +1530,7 @@ void HandleHistoryCommand(PCommand command, TArgument *argv, int argc, PReply re  								mir_strncat(reply->message, "\n", _countof(reply->message) - mir_strlen(reply->message));
  								mir_strncat(reply->message, buffer, _countof(reply->message) - mir_strlen(reply->message));
  							}
 -							else STRNCPY(reply->message, buffer, _countof(reply->message));
 +							else strncpy_s(reply->message, buffer, _countof(reply->message));
  							contacts++;
 @@ -1599,7 +1567,7 @@ void HandleHistoryCommand(PCommand command, TArgument *argv, int argc, PReply re  							hEvent = db_event_next(hContact, hEvent);
  						}
  					}
 -					else if (_stricmp(cmd, "show") == 0) {						
 +					else if (_stricmp(cmd, "show") == 0) {
  						reply->code = MIMRES_SUCCESS;
  						mir_snprintf(reply->message, _countof(reply->message), Translate("Contact '%s' has %d events in history."), contact, db_event_count(hContact));
  					}
 @@ -1684,7 +1652,7 @@ void HandleHistoryCommand(PCommand command, TArgument *argv, int argc, PReply re  	else HandleWrongParametersCount(command, reply);
  }
 -void HandleVersionCommand(PCommand command, TArgument *argv, int argc, PReply reply)
 +void HandleVersionCommand(PCommand command, TArgument*, int argc, PReply reply)
  {
  	if (argc == 2)
  	{
 @@ -1776,59 +1744,59 @@ void HandleCommand(PCommand command, TArgument *argv, int argc, PReply reply)  		case MIMCMD_STATUS:
  			HandleStatusCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		case MIMCMD_AWAYMSG:
  			HandleAwayMsgCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		case MIMCMD_POPUPS:
  			HandlePopupsCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		case MIMCMD_SOUNDS:
  			HandleSoundsCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		case MIMCMD_CLIST:
  			HandleClistCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		case MIMCMD_QUIT:
  			HandleQuitCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		case MIMCMD_EXCHANGE:
  			HandleExchangeCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		case MIMCMD_YAMN:
  			HandleYAMNCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		case MIMCMD_CALLSERVICE:
  			HandleCallServiceCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		case MIMCMD_MESSAGE:
  			HandleMessageCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		case MIMCMD_DATABASE:
  			HandleDatabaseCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		case MIMCMD_PROXY:
  			HandleProxyCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		case MIMCMD_CONTACTS:
  			HandleContactsCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		case MIMCMD_HISTORY:
  			HandleHistoryCommand(command, argv, argc, reply);
  			break;
 -		
 +
  		case MIMCMD_VERSION:
  			HandleVersionCommand(command, argv, argc, reply);
  			return;
 @@ -1840,7 +1808,7 @@ void HandleCommand(PCommand command, TArgument *argv, int argc, PReply reply)  		case MIMCMD_IGNORE:
  			HandleIgnoreCommand(command, argv, argc, reply);
  			return;
 -		
 +
  		default:
  			reply->code = MIMRES_NOTFOUND;
  			mir_snprintf(reply->message, _countof(reply->message), Translate("Command '%s' is not currently supported."), command->command);
 diff --git a/plugins/CmdLine/src/mimcmd_ipc.cpp b/plugins/CmdLine/src/mimcmd_ipc.cpp index d16de2e7a8..6cee3de54f 100644 --- a/plugins/CmdLine/src/mimcmd_ipc.cpp +++ b/plugins/CmdLine/src/mimcmd_ipc.cpp @@ -18,7 +18,7 @@ along with this program; if not, write to the Free Software  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 -#include "commonheaders.h"
 +#include "stdafx.h"
  HANDLE hsmCmdLine = NULL;
  HANDLE hmClient = NULL;
 @@ -33,73 +33,73 @@ PSharedData sdCmdLine = NULL;  int InitClient()
  {
  	int res = (CreateSystemEvents() || CreateMutexes() || CreateSharedMem());
 -	
 +
  	return res;
  }
  int InitServer()
  {
  	int res = (CreateSystemEvents() || CreateSharedMem());
 -	
 +
  	return res;
  }
  int DestroyClient()
  {
  	int res = (DestroySystemEvents() || DestroyMutexes() || DestroySharedMem());
 -	
 +
  	return res;
  }
  int DestroyServer()
  {
  	int res = (DestroySystemEvents() || DestroySharedMem());
 -	
 +
  	return res;
  }
  int CreateSystemEvents()
  {
 -	heServerExec = CreateEvent(NULL, FALSE, FALSE, EVENT_SERVER_EXEC);
 -	heServerDone = CreateEvent(NULL, FALSE, FALSE, EVENT_SERVER_DONE);
 -	heServerClose = CreateEvent(NULL, FALSE, FALSE, EVENT_SERVER_CLOSE);
 -	heServerBufferFull = CreateEvent(NULL, FALSE, FALSE, EVENT_SERVER_BUFFERFULL);
 -	
 +	heServerExec = CreateEventA(NULL, FALSE, FALSE, EVENT_SERVER_EXEC);
 +	heServerDone = CreateEventA(NULL, FALSE, FALSE, EVENT_SERVER_DONE);
 +	heServerClose = CreateEventA(NULL, FALSE, FALSE, EVENT_SERVER_CLOSE);
 +	heServerBufferFull = CreateEventA(NULL, FALSE, FALSE, EVENT_SERVER_BUFFERFULL);
 +
  	return ((heServerExec == NULL) || (heServerDone == NULL) || (heServerClose == NULL) || (heServerBufferFull == NULL));
  }
  int CreateMutexes()
  {
 -	hmClient = CreateMutex(NULL, FALSE, MUTEX_CLIENT_NAME);
 -	
 +	hmClient = CreateMutexA(NULL, FALSE, MUTEX_CLIENT_NAME);
 +
  	return (hmClient == NULL);
  }
  int CreateSharedMem()
  {
 -	hsmCmdLine = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(TSharedData), SHAREDMEM_NAME);
 +	hsmCmdLine = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(TSharedData), SHAREDMEM_NAME);
  	sdCmdLine = (PSharedData) MapViewOfFile(hsmCmdLine, FILE_MAP_WRITE, 0, 0, sizeof(TSharedData));
 -	
 +
  	return ((hsmCmdLine == NULL) || (sdCmdLine == NULL));
  }
  int DestroySystemEvents()
  {
  	int res = (!CloseHandle(heServerExec)) || (!CloseHandle(heServerDone)) || (!CloseHandle(heServerClose) || (!CloseHandle(heServerBufferFull)));
 -	
 +
  	return res;
  }
  int DestroyMutexes()
  {
  	int res = !CloseHandle(hmClient);
 -	
 +
  	return res;
  }
  int DestroySharedMem()
  {
  	int res = (!UnmapViewOfFile(sdCmdLine)) || (!CloseHandle(hsmCmdLine));
 -	
 +
  	return res;
  }
\ No newline at end of file diff --git a/plugins/CmdLine/src/services.cpp b/plugins/CmdLine/src/services.cpp index 6a82974be5..ae146cd8ef 100644 --- a/plugins/CmdLine/src/services.cpp +++ b/plugins/CmdLine/src/services.cpp @@ -18,7 +18,7 @@ along with this program; if not, write to the Free Software  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 -#include "commonheaders.h"
 +#include "stdafx.h"
  int bWaitForUnload = 0;
 @@ -37,12 +37,12 @@ extern "C" __declspec(dllexport) void ProcessConsoleCommand(PCommand command, TA  	HandleCommand(command, arguments, count, reply);
  }
 -void __cdecl ServerWorkerThread(void *data)
 +void __cdecl ServerWorkerThread(void*)
  {
  	int done = FALSE;
  	const HANDLE events[] = {heServerExec, heServerClose};
  	const int cEvents = sizeof(events) / sizeof(events[0]);
 -	
 +
  	while (!done)
  	{
  		switch (WaitForMultipleObjects(cEvents, events, FALSE, INFINITE))
 @@ -51,14 +51,14 @@ void __cdecl ServerWorkerThread(void *data)  			{
  				ProcessConsoleCommand(&sdCmdLine->command, sdCmdLine->arguments, sdCmdLine->cArguments, &sdCmdLine->reply);
  				SetEvent(heServerDone); //notify the client we've finished
 -			
 +
  				break;
  			}
 -			
 +
  			case WAIT_OBJECT_0 + 1: //server is closing
  			{
  				done = TRUE; //stop the thread
 -				
 +
  				break;
  			}
  		}
 @@ -76,23 +76,19 @@ int StartServer()  			if (server)
  			{
  				char path[MIMFOLDER_SIZE];
 -				GetModuleFileName(GetModuleHandle(NULL), path, sizeof(path));
 +				GetModuleFileNameA(GetModuleHandle(NULL), path, sizeof(path));
  				char *p = strrchr(path, '\\');
  				if (p) { *p = 0; }
 -				STRNCPY(sdCmdLine->mimFolder, path, MIMFOLDER_SIZE);
 +				strncpy_s(sdCmdLine->mimFolder, path, _TRUNCATE);
  				sdCmdLine->instances++;
 -			
 +
  				failure = 0;
  			}
 -			else{
 -				PUShowMessage(Translate("Could not create CommandLine listening server!"), SM_WARNING);
 -			}
 -		}
 -		else{
 -			MessageBox(NULL, Translate("You can only run one instance of CmdLine plugin."), Translate("Error"), MB_ICONERROR | MB_OK);
 +			else PUShowMessageT(TranslateT("Could not create CommandLine listening server!"), SM_WARNING);
  		}
 +		else MessageBox(NULL, TranslateT("You can only run one instance of CmdLine plugin."), TranslateT("Error"), MB_ICONERROR | MB_OK);
  	}
 -	
 +
  	return failure;
  }
 diff --git a/plugins/CmdLine/src/stdafx.cpp b/plugins/CmdLine/src/stdafx.cxx index 048b14e9d2..0c766ea07f 100644 --- a/plugins/CmdLine/src/stdafx.cpp +++ b/plugins/CmdLine/src/stdafx.cxx @@ -15,4 +15,4 @@ You should have received a copy of the GNU General Public License  along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 -#include "commonheaders.h"
\ No newline at end of file +#include "stdafx.h"
 diff --git a/plugins/CmdLine/src/commonheaders.h b/plugins/CmdLine/src/stdafx.h index bd6e81d259..bc9af0e5ea 100644 --- a/plugins/CmdLine/src/commonheaders.h +++ b/plugins/CmdLine/src/stdafx.h @@ -21,8 +21,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.  #ifndef M_CMDLINE_COMMONHEADERS_H
  #define M_CMDLINE_COMMONHEADERS_H
 -#define _CRT_SECURE_NO_WARNINGS
 -
  #include <windows.h>
  #include <malloc.h>
  #include <time.h>
 diff --git a/plugins/CmdLine/src/utils.cpp b/plugins/CmdLine/src/utils.cpp index 7a6aad0e3e..59b0ce634c 100644 --- a/plugins/CmdLine/src/utils.cpp +++ b/plugins/CmdLine/src/utils.cpp @@ -18,52 +18,7 @@ along with this program; if not, write to the Free Software  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 -#include "commonheaders.h"
 -
 -int LogInit()
 -{
 -#ifdef USE_LOG
 -	//FILE *fout = fopen(LOG_FILE, "wt");
 -	//fclose(fout);
 -	Log("********************** Miranda started **********************");
 -#endif
 -	return 0;
 -}
 -
 -int Log(char *format, ...)
 -{
 -#ifdef USE_LOG
 -	char		str[4096];
 -	va_list	vararg;
 -	int tBytes;
 -	FILE *fout = fopen(LOG_FILE, "at");
 -	if (!fout)
 -		{
 -//			MessageBox(0, "can't open file", NULL, MB_OK);
 -			return -1;
 -		}
 -	time_t tNow = time(NULL);
 -	struct tm *now = localtime(&tNow);
 -	strftime(str, sizeof(str), "%d %b %Y @ %H:%M:%S: ", now);
 -	fputs(str, fout);
 -	va_start(vararg, format);
 -
 -	tBytes = mir_vsnprintf(str, sizeof(str), format, vararg);
 -	if (tBytes > 0)
 -		{
 -			str[tBytes] = 0;
 -		}
 -
 -	va_end(vararg);
 -	if (str[mir_strlen(str) - 1] != '\n')
 -		{
 -			mir_strcat(str, "\n");
 -		}
 -	fputs(str, fout);
 -	fclose(fout);
 -#endif
 -	return 0;
 -}
 +#include "stdafx.h"
  int Info(char *title, char *format, ...)
  {
 @@ -83,14 +38,10 @@ int Info(char *title, char *format, ...)  int MyPUShowMessage(char *lpzText, BYTE kind)
  {
  	if (ServiceExists(MS_POPUP_SHOWMESSAGE))
 -	{
  		return PUShowMessage(lpzText, kind);
 -	}
 -	else{
 -		char *title = (kind == SM_NOTIFY) ? Translate("Notify") : Translate("Warning");
 -		return MessageBox(NULL, lpzText, title, MB_OK | (kind == SM_NOTIFY) ? MB_ICONINFORMATION : MB_ICONEXCLAMATION);
 -	}
 +	char *title = (kind == SM_NOTIFY) ? Translate("Notify") : Translate("Warning");
 +	return MessageBoxA(NULL, lpzText, title, MB_OK | (kind == SM_NOTIFY) ? MB_ICONINFORMATION : MB_ICONEXCLAMATION);
  }
  #define HEX_SIZE 8
 @@ -107,20 +58,17 @@ char *BinToHex(int size, PBYTE data)  void HexToBin(char *inData, ULONG &size, LPBYTE &outData)
  {
  	char buffer[32] = {0};
 -	mir_strcpy(buffer, "0x");
 -	STRNCPY(buffer + 2, inData, HEX_SIZE);
 +	strcpy(buffer, "0x");
 +	strncpy_s(buffer + 2, HEX_SIZE, inData, _TRUNCATE);
  	sscanf(buffer, "%x", &size);
  	outData = (unsigned char*)new char[size*2];
 -	UINT i;
 -	//size = i;
 +
  	char *tmp = inData + HEX_SIZE;
  	buffer[4] = '\0'; //mark the end of the string
 -	for (i = 0; i < size; i++)
 -		{
 -			STRNCPY(buffer + 2, &tmp[i * 2], 2);
 -			sscanf(buffer, "%x", &outData[i]);
 -		}
 -	i = size;
 +	for (UINT i = 0; i < size; i++) {
 +		strncpy_s(buffer + 2, 3, &tmp[i*2], _TRUNCATE);
 +		sscanf(buffer, "%x", &outData[i]);
 +	}
  }
  int GetStringFromDatabase(MCONTACT hContact, char *szModule, char *szSettingName, char *szError, char *szResult, size_t size)
 @@ -202,43 +150,30 @@ int GetStringFromDatabase(char *szSettingName, WCHAR *szError, WCHAR *szResult,  }
  #pragma warning (disable: 4312)
 -TCHAR *GetContactName(MCONTACT hContact, char *szProto)
 +char* GetContactName(MCONTACT hContact, char *szProto)
  {
 -	CONTACTINFO ctInfo;
 -	INT_PTR ret;
  	char proto[200];
 +	CONTACTINFO ctInfo;
  	memset(&ctInfo, 0, sizeof(ctInfo));
  	ctInfo.cbSize = sizeof(ctInfo);
  	if (szProto)
 -		{
 -			ctInfo.szProto = szProto;
 -		}
 -		else{
 -			GetContactProto(hContact, proto, sizeof(proto));
 -			ctInfo.szProto = proto;
 -		}
 +		ctInfo.szProto = szProto;
 +	else {
 +		GetContactProto(hContact, proto, sizeof(proto));
 +		ctInfo.szProto = proto;
 +	}
  	ctInfo.dwFlag = CNF_DISPLAY;
 -#ifdef _UNICODE
 -	ctInfo.dwFlag += CNF_UNICODE;
 -#endif
  	ctInfo.hContact = hContact;
 +
  	//_debug_message("retrieving contact name for %d", hContact);
 -	ret = CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM) &ctInfo);
 +	INT_PTR ret = CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM) &ctInfo);
 +	if (ret)
 +		return NULL;
 +
  	//_debug_message("	contact name %s", ctInfo.pszVal);
 -	TCHAR *buffer;
 -	if (!ret)
 -		{
 -			buffer = _tcsdup(ctInfo.pszVal);
 -		}
 +	char *buffer = strdup((char*)ctInfo.pszVal);
  	mir_free(ctInfo.pszVal);
 -	if (!ret)
 -		{
 -			return buffer;
 -		}
 -		else{
 -			return NULL;
 -		}
  	return buffer;
  }
  #pragma warning (default: 4312)
 @@ -251,7 +186,7 @@ void GetContactProto(MCONTACT hContact, char *szProto, size_t size)  #pragma warning (default: 4312)
  #pragma warning (disable: 4312)
 -TCHAR *GetContactID(MCONTACT hContact)
 +char* GetContactID(MCONTACT hContact)
  {
  	char protocol[256];
  	GetContactProto(hContact, protocol, sizeof(protocol));
 @@ -259,93 +194,68 @@ TCHAR *GetContactID(MCONTACT hContact)  	return GetContactID(hContact, protocol);
  }
 -TCHAR *GetContactID(MCONTACT hContact, char *szProto)
 +char* GetContactID(MCONTACT hContact, char *szProto)
  {
  	CONTACTINFO ctInfo;
 -	INT_PTR ret;
 -
  	memset(&ctInfo, 0, sizeof(ctInfo));
  	ctInfo.cbSize = sizeof(ctInfo);
  	ctInfo.szProto = szProto;
  	ctInfo.dwFlag = CNF_UNIQUEID;
 -#ifdef _UNICODE
 -	ctInfo.dwFlag |= CNF_UNICODE;
 -#endif
  	ctInfo.hContact = hContact;
 -	ret = CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM) &ctInfo);
 -	TCHAR *buffer;
 -	if (!ret)
 -		{
 -			TCHAR tmp[16];
 -			switch (ctInfo.type)
 -				{
 -					case CNFT_BYTE:
 -						{
 -							mir_sntprintf(tmp, SIZEOF(tmp), _T("%d"), ctInfo.bVal);
 -							buffer = _tcsdup(tmp);
 -
 -							break;
 -						}
 -
 -					case CNFT_WORD:
 -						{
 -							mir_sntprintf(tmp, SIZEOF(tmp), _T("%d"), ctInfo.wVal);
 -							buffer = _tcsdup(tmp);
 -
 -							break;
 -						}
 -
 -					case CNFT_DWORD:
 -						{
 -							mir_sntprintf(tmp, SIZEOF(tmp), _T("%ld"), ctInfo.dVal);
 -							buffer = _tcsdup(tmp);
 -
 -							break;
 -						}
 -
 -					case CNFT_ASCIIZ:
 -					default:
 -						{
 -							buffer = _tcsdup(ctInfo.pszVal);
 -
 -							break;
 -						}
 -				}
 -
 +	INT_PTR ret = CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM) &ctInfo);
 +	if (ret)
 +		return NULL;
 +
 +	char *buffer;
 +	char tmp[16];
 +	switch (ctInfo.type) {
 +	case CNFT_BYTE:
 +		mir_snprintf(tmp, SIZEOF(tmp), "%d", ctInfo.bVal);
 +		buffer = strdup(tmp);
 +		break;
 +
 +	case CNFT_WORD:
 +		mir_snprintf(tmp, SIZEOF(tmp), "%d", ctInfo.wVal);
 +		buffer = strdup(tmp);
 +		break;
 +
 +	case CNFT_DWORD:
 +		mir_snprintf(tmp, SIZEOF(tmp), "%ld", ctInfo.dVal);
 +		buffer = strdup(tmp);
 +		break;
 +
 +	case CNFT_ASCIIZ:
 +	default:
 +		buffer = _strdup((char*)ctInfo.pszVal);
 +		break;
 +	}
 -		}
  	mir_free(ctInfo.pszVal);
 -	if (!ret)
 -		{
 -			return buffer;
 -		}
 -		else{
 -			return NULL;
 -		}
 +	return buffer;
  }
  #pragma warning (default: 4312)
  #pragma warning (disable: 4312)
 -MCONTACT GetContactFromID(TCHAR *szID, char *szProto)
 +MCONTACT GetContactFromID(char *szID, char *szProto)
  {
 -	TCHAR dispName[1024];
 +	char dispName[1024];
  	char cProtocol[256];
 -	char *tmp;
  	int found = 0;
  	for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) {
  		GetContactProto(hContact, cProtocol, sizeof(cProtocol));
 -		TCHAR *szHandle = GetContactID(hContact, cProtocol);
 +		char *szHandle = GetContactID(hContact, cProtocol);
 -		tmp = (char *) CallService(MS_CLIST_GETCONTACTDISPLAYNAME, hContact, 0);
 -		STRNCPY(dispName, tmp, sizeof(dispName));
 +		char *tmp = (char*) CallService(MS_CLIST_GETCONTACTDISPLAYNAME, hContact, 0);
 +		strncpy_s(dispName, tmp, _TRUNCATE);
 -		if ((szHandle) && ((mir_tstrcmpi(szHandle, szID) == 0) || (mir_tstrcmpi(dispName, szID) == 0)) && ((szProto == NULL) || (_stricmp(szProto, cProtocol) == 0)))
 +		if ((szHandle) && ((mir_strcmpi(szHandle, szID) == 0) || (mir_strcmpi(dispName, szID) == 0)) && ((szProto == NULL) || (_stricmp(szProto, cProtocol) == 0)))
  			found = 1;
  		free(szHandle);
 -		if (found) return hContact;
 +		if (found)
 +			return hContact;
  	}
  	return NULL;
 @@ -353,7 +263,7 @@ MCONTACT GetContactFromID(TCHAR *szID, char *szProto)  #pragma warning (default: 4312)
  #pragma warning (disable: 4312)
 -MCONTACT GetContactFromID(TCHAR *szID, wchar_t *szProto)
 +MCONTACT GetContactFromID(char *szID, wchar_t *szProto)
  {
  	char protocol[1024];
  	WideCharToMultiByte(CP_ACP, 0, szProto, -1, protocol, sizeof(protocol), NULL, NULL);
 @@ -381,9 +291,8 @@ void AnchorMoveWindow(HWND window, const WINDOWPOS *parentPos, int anchors)  	RECT rChild;
  	if (parentPos->flags & SWP_NOSIZE)
 -		{
 -			return;
 -		}
 +		return;
 +
  	GetWindowRect(parentPos->hwnd, &rParent);
  	rChild = AnchorCalcPos(window, &rParent, parentPos, anchors);
  	MoveWindow(window, rChild.left, rChild.top, rChild.right - rChild.left, rChild.bottom - rChild.top, FALSE);
 @@ -400,13 +309,10 @@ RECT AnchorCalcPos(HWND window, const RECT *rParent, const WINDOWPOS *parentPos,  	int cx = rParent->right - rParent->left;
  	int cy = rParent->bottom - rParent->top;
  	if ((cx == parentPos->cx) && (cy == parentPos->cy))
 -		{
 -			return rChild;
 -		}
 +		return rChild;
 +
  	if (parentPos->flags & SWP_NOSIZE)
 -		{
 -			return rChild;
 -		}
 +		return rChild;
  	rTmp.left = parentPos->x - rParent->left;
  	rTmp.right = (parentPos->x + parentPos->cx) - rParent->right;
 @@ -420,28 +326,16 @@ RECT AnchorCalcPos(HWND window, const RECT *rParent, const WINDOWPOS *parentPos,  	rChild.bottom += cy;
  	//expanded the window accordingly, now we need to enforce the anchors
  	if ((anchors & ANCHOR_LEFT) && (!(anchors & ANCHOR_RIGHT)))
 -		{
 -			rChild.right -= cx;
 -		}
 +		rChild.right -= cx;
 +
  	if ((anchors & ANCHOR_TOP) && (!(anchors & ANCHOR_BOTTOM)))
 -		{
 -			rChild.bottom -= cy;
 -		}
 +		rChild.bottom -= cy;
 +
  	if ((anchors & ANCHOR_RIGHT) && (!(anchors & ANCHOR_LEFT)))
 -		{
 -			rChild.left += cx;
 -		}
 +		rChild.left += cx;
 +
  	if ((anchors & ANCHOR_BOTTOM) && (!(anchors & ANCHOR_TOP)))
 -		{
 -			rChild.top += cy;
 -		}
 +		rChild.top += cy;
 +
  	return rChild;
  }
 -
 -inline char *STRNCPY(char *output, const char *input, size_t size)
 -{
 -	char *res = strncpy(output, input, size);
 -	output[size - 1] = 0;
 -
 -	return res;
 -}
\ No newline at end of file diff --git a/plugins/CmdLine/src/utils.h b/plugins/CmdLine/src/utils.h index a3fb389d33..01c58c4c78 100644 --- a/plugins/CmdLine/src/utils.h +++ b/plugins/CmdLine/src/utils.h @@ -23,17 +23,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.  #include <stdarg.h>
 -//#define USE_LOG
 -#define LOG_FILE "cmdline.log"
 -
  #define ANCHOR_LEFT     0x000001
  #define ANCHOR_RIGHT		0x000002
  #define ANCHOR_TOP      0x000004
  #define ANCHOR_BOTTOM   0x000008
  #define ANCHOR_ALL      ANCHOR_LEFT | ANCHOR_RIGHT | ANCHOR_TOP | ANCHOR_BOTTOM
 -int LogInit();
 -int Log(char *format, ...);
  int Info(char *title, char *format, ...);
  char *BinToHex(int size, PBYTE data);
 @@ -48,15 +43,13 @@ int GetStringFromDatabase(MCONTACT hContact, char *szModule, char *szSettingName  int GetStringFromDatabase(char *szSettingName, char *szError, char *szResult, size_t size);
  int GetStringFromDatabase(char *szSettingName, WCHAR *szError, WCHAR *szResult, size_t count);
 -TCHAR *GetContactName(MCONTACT hContact, char *szProto);
 -TCHAR *GetContactID(MCONTACT hContact);
 -TCHAR *GetContactID(MCONTACT hContact, char *szProto);
 -MCONTACT GetContactFromID(TCHAR *szID, char *szProto);
 -MCONTACT GetContactFromID(TCHAR *szID, wchar_t *szProto);
 +char* GetContactName(MCONTACT hContact, char *szProto);
 +char* GetContactID(MCONTACT hContact);
 +char* GetContactID(MCONTACT hContact, char *szProto);
 +MCONTACT GetContactFromID(char *szID, char *szProto);
 +MCONTACT GetContactFromID(char *szID, wchar_t *szProto);
  void GetContactProto(MCONTACT hContact, char *szProto, size_t size);
  int MyPUShowMessage(char *lpzText, BYTE kind);
 -inline char *STRNCPY(char *output, const char *input, size_t size);
 -
  #endif
\ No newline at end of file  | 
