diff options
| -rw-r--r-- | plugins/Variables/src/help.cpp | 20 | ||||
| -rw-r--r-- | plugins/Variables/src/parse_alias.cpp | 175 | ||||
| -rw-r--r-- | plugins/Variables/src/parse_alias.h | 7 | ||||
| -rw-r--r-- | plugins/Variables/src/parse_external.cpp | 116 | ||||
| -rw-r--r-- | plugins/Variables/src/parse_inet.cpp | 77 | ||||
| -rw-r--r-- | plugins/Variables/src/parse_logic.cpp | 253 | ||||
| -rw-r--r-- | plugins/Variables/src/parse_math.cpp | 118 | ||||
| -rw-r--r-- | plugins/Variables/src/parse_miranda.cpp | 17 | ||||
| -rw-r--r-- | plugins/Variables/src/parse_regexp.cpp | 83 | ||||
| -rw-r--r-- | plugins/Variables/src/parse_str.cpp | 418 | ||||
| -rw-r--r-- | plugins/Variables/src/parse_system.cpp | 401 | ||||
| -rw-r--r-- | plugins/Variables/src/variables.cpp | 137 | ||||
| -rw-r--r-- | plugins/Variables/src/variables.h | 59 | 
13 files changed, 797 insertions, 1084 deletions
| diff --git a/plugins/Variables/src/help.cpp b/plugins/Variables/src/help.cpp index 2d787e5c09..9e3ca13989 100644 --- a/plugins/Variables/src/help.cpp +++ b/plugins/Variables/src/help.cpp @@ -257,9 +257,9 @@ static TCHAR *getTokenCategory(TOKENREGISTEREX *tr) {  		return NULL;
  	}
  	cur = helpText;
 -	while (*cur != _T('\0')) {
 -		if (*cur == _T('\t')) {
 -			*cur = _T('\0');
 +	while (*cur != 0) {
 +		if (*cur == '\t') {
 +			*cur = 0;
  			helpText = ( char* )mir_realloc(helpText, strlen(helpText)+1);
  			res = mir_a2t(helpText);
 @@ -283,7 +283,7 @@ static TCHAR *getHelpDescription(TOKENREGISTEREX *tr)  	char *cur = tr->szHelpText + strlen(tr->szHelpText);
  	while (cur > tr->szHelpText) {
 -		if (*cur == _T('\t')) {
 +		if (*cur == '\t') {
  			cur = mir_strdup(cur+1);
  			TCHAR *res = mir_a2t(cur);
 @@ -316,8 +316,8 @@ static TCHAR *getTokenDescription(TOKENREGISTEREX *tr)  	char *cur = helpText;
  	first = second = NULL;
 -	while (*cur != _T('\0')) {
 -		if (*cur == _T('\t')) {
 +	while (*cur != 0) {
 +		if (*cur == '\t') {
  			if (first == NULL)
  				first = cur;
  			else if (second == NULL)
 @@ -327,7 +327,7 @@ static TCHAR *getTokenDescription(TOKENREGISTEREX *tr)  	}
  	if ((first != NULL) && (second != NULL)) {
 -		*second = _T('\0');
 +		*second = 0;
  		args = first+1;
  	}
  	else args = NULL;
 @@ -338,12 +338,12 @@ static TCHAR *getTokenDescription(TOKENREGISTEREX *tr)  		return NULL;
  	if (tr->flags&TRF_FIELD)
 -		mir_sntprintf(desc, len, _T("%c%s%c"), _T(FIELD_CHAR), tr->szTokenString, _T(FIELD_CHAR));
 +		mir_sntprintf(desc, len, _T("%c%s%c"), FIELD_CHAR, tr->szTokenString, FIELD_CHAR);
  	else {
  		if (args != NULL)
  			tArgs = mir_a2t(args);
 -		mir_sntprintf(desc, len, _T("%c%s%s"), _T(FUNC_CHAR), tr->tszTokenString, (tArgs!=NULL?tArgs:_T("")));
 +		mir_sntprintf(desc, len, _T("%c%s%s"), FUNC_CHAR, tr->tszTokenString, (tArgs!=NULL?tArgs:_T("")));
  	}
  	if (tArgs != NULL)
  		mir_free(tArgs);
 @@ -540,7 +540,7 @@ static BOOL CALLBACK processTokenListMessage(HWND hwndDlg,UINT msg,WPARAM wParam  				break;
  			}
  			ZeroMemory(tokenString, (len+1)*sizeof(TCHAR));
 -			mir_sntprintf(tokenString, len + 1, _T("%c%s%c"), (tr->flags & TRF_FIELD ? _T(FIELD_CHAR) : _T(FUNC_CHAR)), tr->tszTokenString, (tr->flags & TRF_FIELD ? _T(FIELD_CHAR) : _T('(')));
 +			mir_sntprintf(tokenString, len + 1, _T("%c%s%c"), (tr->flags & TRF_FIELD) ? FIELD_CHAR : FUNC_CHAR, tr->tszTokenString, (tr->flags & TRF_FIELD) ? FIELD_CHAR : '(');
  			SendDlgItemMessage(hwndInputDlg, IDC_TESTSTRING, EM_REPLACESEL, (WPARAM)TRUE, (LPARAM)tokenString);
  			mir_free(tokenString);
  			SetFocus(GetDlgItem(hwndInputDlg, IDC_TESTSTRING));
 diff --git a/plugins/Variables/src/parse_alias.cpp b/plugins/Variables/src/parse_alias.cpp index 87a95567ff..485b028634 100644 --- a/plugins/Variables/src/parse_alias.cpp +++ b/plugins/Variables/src/parse_alias.cpp @@ -19,47 +19,42 @@  #include "variables.h"
 +struct ALIASREGISTER
 +{
 +	TCHAR *szAlias;
 +	unsigned int argc;
 +	TCHAR **argv;
 +	TCHAR *szTranslation;
 +};
 +
 +static LIST<ALIASREGISTER> arAliases(5);
  static CRITICAL_SECTION csAliasRegister;
 -static ALIASREGISTER *ar = NULL;
 -static unsigned int arCount = 0;
 -static ALIASREGISTER *searchAliasRegister(TCHAR *szAlias) {
 +static ALIASREGISTER *searchAliasRegister(TCHAR *szAlias)
 +{
 +	if (szAlias == NULL || *szAlias == 0)
 +		return NULL;
 -	ALIASREGISTER *res;
 -	unsigned int i;
 +	mir_cslock lck(csAliasRegister);
 +	for (int i=0; i < arAliases.getCount(); i++)
 +		if (!_tcscmp(arAliases[i]->szAlias, szAlias))
 +			return arAliases[i];
 -	res = NULL;
 -	if ((szAlias == NULL) || (_tcslen(szAlias) == 0)) {
 -		return NULL;
 -	}
 -	EnterCriticalSection(&csAliasRegister);
 -	for (i=0;i<arCount;i++) {
 -		if (!_tcscmp(ar[i].szAlias, szAlias)) {
 -			/* TODO: make a copy here? */
 -			res = &ar[i];
 -			LeaveCriticalSection(&csAliasRegister);
 -			return res;
 -		}
 -	}
 -	LeaveCriticalSection(&csAliasRegister);
 -	
  	return NULL;
  }
 -static TCHAR *replaceArguments(TCHAR *res, TCHAR *tArg, TCHAR *rArg) {
 -
 -	unsigned int cur, ecur;
 -
 +static TCHAR *replaceArguments(TCHAR *res, TCHAR *tArg, TCHAR *rArg)
 +{
  	if ( _tcslen(tArg) == 0)
  		return res;
 -	cur = ecur = 0;
 -	while (*(res+cur) != _T('\0')) {
 -		if ((*(res+cur) == _T('(')) || (*(res+cur) == _T(','))) {
 +	unsigned int cur = 0, ecur = 0;
 +	while (*(res+cur) != 0) {
 +		if ((*(res+cur) == '(') || (*(res+cur) == ',')) {
  			ecur = ++cur;
 -			while ( (*(res+ecur) != _T(')')) && (*(res+ecur) != _T(','))) {
 +			while ( (*(res+ecur) != ')') && (*(res+ecur) != ','))
  				ecur++;
 -			}
 +
  			if (((signed int)_tcslen(tArg) == (ecur-cur)) && (!_tcsncmp(tArg, res+cur, _tcslen(tArg)))) {
  				if ( _tcslen(rArg) > _tcslen(tArg)) {
  					res = (TCHAR*)mir_realloc(res, (_tcslen(res) + (_tcslen(rArg)-_tcslen(tArg)) + 1)*sizeof(TCHAR));
 @@ -76,87 +71,73 @@ static TCHAR *replaceArguments(TCHAR *res, TCHAR *tArg, TCHAR *rArg) {  	return res;
  }
 -static TCHAR *parseTranslateAlias(ARGUMENTSINFO *ai) {
 -
 -	unsigned int i;
 -	TCHAR *res;
 -	ALIASREGISTER *areg;
 -	
 -	areg = searchAliasRegister(ai->targv[0]);
 -	if ((areg == NULL) || (areg->argc != ai->argc-1)) {
 +static TCHAR *parseTranslateAlias(ARGUMENTSINFO *ai)
 +{
 +	ALIASREGISTER *areg = searchAliasRegister(ai->targv[0]);
 +	if (areg == NULL || areg->argc != ai->argc-1)
  		return NULL;
 -	}
 -	res = mir_tstrdup(areg->szTranslation);
 -	for (i=0;i<areg->argc;i++) {
 +
 +	TCHAR *res = mir_tstrdup(areg->szTranslation);
 +	for (unsigned i=0; i < areg->argc; i++) {
  		res = replaceArguments(res, areg->argv[i], ai->targv[i+1]);
 -		if (res == NULL) {
 +		if (res == NULL)
  			return NULL;
 -		}
  	}
  	return res;
  }
 -static int addToAliasRegister(TCHAR *szAlias, unsigned int argc, TCHAR** argv, TCHAR *szTranslation) {
 -
 -	unsigned int i, j;
 -
 +static int addToAliasRegister(TCHAR *szAlias, unsigned int argc, TCHAR** argv, TCHAR *szTranslation)
 +{
  	if (szAlias == NULL || szTranslation == NULL || _tcslen(szAlias) == 0 )
  		return -1;
 -	EnterCriticalSection(&csAliasRegister);
 -	for (i=0;i<arCount;i++) {
 -		if (!_tcscmp(ar[i].szAlias, szAlias)) {
 -			mir_free(ar[i].szTranslation);
 -			ar[i].szTranslation = mir_tstrdup(szTranslation);
 -			for (j=0;j<ar[i].argc;j++) {
 -				if (ar[i].argv[j] != NULL) {
 -					mir_free(ar[i].argv[j]);
 -				}
 -			}
 -			ar[i].argc = argc;
 -			ar[i].argv = ( TCHAR** )mir_realloc(ar[i].argv, argc * sizeof(TCHAR*));
 -			if (ar[i].argv == NULL) {
 -				LeaveCriticalSection(&csAliasRegister);
 -				return -1;
 -			}
 -			for (j=0;j<argc;j++) {
 -				if (argv[j] != NULL)
 -					ar[i].argv[j] = mir_tstrdup(argv[j]);
 -				else
 -					ar[i].argv[j] = NULL;
 -			}
 -			LeaveCriticalSection(&csAliasRegister);
 -			return 0;
 +	mir_cslock lck(csAliasRegister);
 +	for (int i=0; i < arAliases.getCount(); i++) {
 +		ALIASREGISTER *p = arAliases[i];
 +		if ( _tcscmp(p->szAlias, szAlias))
 +			continue;
 +
 +		mir_free(p->szTranslation);
 +		p->szTranslation = mir_tstrdup(szTranslation);
 +		for (unsigned j=0; j < p->argc; j++)
 +			if (p->argv[j] != NULL)
 +				mir_free(p->argv[j]);
 +
 +		p->argc = argc;
 +		p->argv = (TCHAR**)mir_realloc(p->argv, argc * sizeof(TCHAR*));
 +		if (p->argv == NULL)
 +			return -1;
 +
 +		for (unsigned j=0; j < argc; j++) {
 +			if (argv[j] != NULL)
 +				p->argv[j] = mir_tstrdup(argv[j]);
 +			else
 +				p->argv[j] = NULL;
  		}
 +		return 0;
  	}
 -	ar = ( ALIASREGISTER* )mir_realloc(ar, (arCount+1)*sizeof(ALIASREGISTER));
 -	if (ar == NULL) {
 -		LeaveCriticalSection(&csAliasRegister);
 -		return -1;
 -	}
 -	ar[arCount].szAlias = mir_tstrdup(szAlias);
 -	ar[arCount].szTranslation = mir_tstrdup(szTranslation);
 -	ar[arCount].argc = argc;
 -	ar[arCount].argv = ( TCHAR** )mir_alloc(argc * sizeof(TCHAR*));
 -	if (ar[arCount].argv == NULL) {
 -		LeaveCriticalSection(&csAliasRegister);
 +
 +	ALIASREGISTER *p = new ALIASREGISTER;
 +	p->szAlias = mir_tstrdup(szAlias);
 +	p->szTranslation = mir_tstrdup(szTranslation);
 +	p->argc = argc;
 +	p->argv = (TCHAR**)mir_alloc(argc * sizeof(TCHAR*));
 +	if (p->argv == NULL)
  		return -1;
 -	}
 -	for (j=0;j<ar[arCount].argc;j++) {
 +
 +	for (unsigned j=0; j < p->argc; j++) {
  		if (argv[j] != NULL)
 -			ar[arCount].argv[j] = mir_tstrdup(argv[j]);
 +			p->argv[j] = mir_tstrdup(argv[j]);
  		else
 -			ar[arCount].argv[j] = NULL;
 +			p->argv[j] = NULL;
  	}
 -	arCount += 1;
 -	LeaveCriticalSection(&csAliasRegister);
 -
 +	arAliases.insert(p);
  	return 0;
  }
 -static TCHAR *parseAddAlias(ARGUMENTSINFO *ai) {
 -
 +static TCHAR *parseAddAlias(ARGUMENTSINFO *ai)
 +{
  	int res;
  	int argc, i;
  	TCHAR **argv;
 @@ -189,8 +170,7 @@ static TCHAR *parseAddAlias(ARGUMENTSINFO *ai) {  			_tcscat(szArgs, _T(","));
  	}
  	if ((szArgs != NULL) && (argc > 0)) {
 -
 -		szArgsA = mir_t2a(szArgs);
 + 		szArgsA = mir_t2a(szArgs);
  		size_t size = 32 + strlen(szArgsA);
  		szHelp = (char *)mir_alloc(size);
 @@ -220,5 +200,14 @@ int registerAliasTokens()  void unregisterAliasTokens()
  {
  	DeleteCriticalSection(&csAliasRegister);
 -}
 +	for (int i=0; i < arAliases.getCount(); i++) {
 +		ALIASREGISTER *p = arAliases[i];
 +		mir_free(p->argv);
 +		mir_free(p->szAlias);
 +		mir_free(p->szTranslation);
 +		delete p;
 +	}
 +
 +	arAliases.destroy();
 +}
 diff --git a/plugins/Variables/src/parse_alias.h b/plugins/Variables/src/parse_alias.h index 0d867f9e54..7297fec1d0 100644 --- a/plugins/Variables/src/parse_alias.h +++ b/plugins/Variables/src/parse_alias.h @@ -17,13 +17,6 @@      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 -typedef struct {
 -	TCHAR *szAlias;
 -	unsigned int argc;
 -	TCHAR **argv;
 -	TCHAR *szTranslation;
 -} ALIASREGISTER;
 -
  #define ADDALIAS		"alias"
  int isValidTokenChar(TCHAR tc);
 diff --git a/plugins/Variables/src/parse_external.cpp b/plugins/Variables/src/parse_external.cpp index 2a0ade2768..2cb408c777 100644 --- a/plugins/Variables/src/parse_external.cpp +++ b/plugins/Variables/src/parse_external.cpp @@ -26,7 +26,8 @@ static void (WINAPI *acUninit)() = NULL;  static unsigned int lastAMIPFailure = -1;
 -static TCHAR *getFullWinampTitleText() {
 +static TCHAR *getFullWinampTitleText()
 +{
  	HWND hwndWinamp = FindWindow(_T("STUDIO"), NULL);
  	if (hwndWinamp == NULL)
  		hwndWinamp = FindWindow(_T("Winamp v1.x"),NULL);
 @@ -54,16 +55,17 @@ static TCHAR *getFullWinampTitleText() {  	return szTitle;
  }
 -static TCHAR *parseWinampSong(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 1) {
 +static TCHAR *parseWinampSong(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 1)
  		return NULL;
 -	}
 +
  	TCHAR *res = NULL;
  	TCHAR *szTitle = getFullWinampTitleText();
 -	if (szTitle == NULL) {
 +	if (szTitle == NULL)
  		return NULL;
 -	}
 -	TCHAR *scur = _tcschr(szTitle, _T('.'));
 +
 +	TCHAR *scur = _tcschr(szTitle, '.');
  	TCHAR *cur = _tcsstr(scur, _T(" - Winamp"));
  	if ((scur == NULL) || (cur == NULL) || (scur >= cur) || (scur > (szTitle + _tcslen(szTitle) - 2)) || (cur > (szTitle + _tcslen(szTitle)))) {
  		mir_free(szTitle);
 @@ -79,16 +81,17 @@ static TCHAR *parseWinampSong(ARGUMENTSINFO *ai) {  	return res;
  }
 -static TCHAR *parseWinampState(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 1) {
 +static TCHAR *parseWinampState(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 1)
  		return NULL;
 -	}
 +
  	TCHAR *res = NULL;
  	TCHAR *szTitle = getFullWinampTitleText();
 -	if (szTitle == NULL) {
 +	if (szTitle == NULL)
  		return NULL;
 -	}
 -	TCHAR *scur = _tcschr(szTitle, _T('.'));
 +
 +	TCHAR *scur = _tcschr(szTitle, '.');
  	TCHAR *cur = _tcsstr(scur, _T(" - Winamp"));
  	if ((scur == NULL) || (cur == NULL)) {
  		mir_free(szTitle);
 @@ -106,8 +109,8 @@ static TCHAR *parseWinampState(ARGUMENTSINFO *ai) {  	return mir_tstrdup(_T("Playing"));
  }
 -static unsigned int checkAMIP() {
 -
 +static unsigned int checkAMIP()
 +{
  	if (lastAMIPFailure == 0) {
  		log_debugA("AMIP initialized");
  		return 0;
 @@ -119,76 +122,63 @@ static unsigned int checkAMIP() {  	if (acInitClient("127.0.0.1", 60333, 1000, 5, 1)) {
  		lastAMIPFailure = 0;
  		log_debugA("AMIP now initialized");
 -		
  		return 0; // success
  	}
  	log_debugA("AMIP failed to initialized");
 -	if (lastAMIPFailure == 0) {
 -		/* if this is the first failure after a succesful init, call uninit for a cleanup (maybe it'll help for the next try ;)) */
 +
 +	/* if this is the first failure after a succesful init, call uninit for a cleanup (maybe it'll help for the next try ;)) */
 +	if (lastAMIPFailure == 0)
  		acUninit();
 -	}
 +
  	lastAMIPFailure = GetTickCount();
 -	
  	return -1;
  }
 -static TCHAR *parseAMIPEval(ARGUMENTSINFO *ai) {
 -	char szRes[AC_BUFFER_SIZE];
 -
 -	TCHAR *tszRes = NULL;
 -	if (ai->argc != 2) {
 +static TCHAR *parseAMIPEval(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 2)
  		return NULL;
 -	}
  	char *cmd = mir_t2a(ai->targv[1]);
 -
  	if (checkAMIP() != 0) {
  		log_debugA("checkAMIP failed");
 -	
  		return NULL;
  	}
 -	ZeroMemory(&szRes, sizeof(szRes));
 -	if (AC_ERR_NOERROR == acEval(cmd, szRes)) {
 +	TCHAR *tszRes = NULL;
 +	char szRes[AC_BUFFER_SIZE];
 +	ZeroMemory(&szRes, sizeof(szRes));
 +	if (AC_ERR_NOERROR == acEval(cmd, szRes))
  		tszRes = mir_a2t(szRes);
 -
 -	}
 -	else {
 +	else
  		lastAMIPFailure = GetTickCount();
 -	}
 -	mir_free(cmd);
 +	mir_free(cmd);
  	return tszRes;
  }
 -static TCHAR *parseAMIPFormat(ARGUMENTSINFO *ai) {
 -	char szRes[AC_BUFFER_SIZE];
 -
 -	TCHAR *tszRes = NULL;
 -	if (ai->argc != 2) {
 +static TCHAR *parseAMIPFormat(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 2)
  		return NULL;
 -	}
 -	char  *cmd = mir_t2a(ai->targv[1]);
 -
 -	if (checkAMIP() != 0) {
 -	
 +	char *cmd = mir_t2a(ai->targv[1]);
 +	if (checkAMIP() != 0)	
  		return NULL;
 -	}
 -	if (AC_ERR_NOERROR == acFormat(cmd, szRes)) {
 +	TCHAR *tszRes = NULL;
 +	char szRes[AC_BUFFER_SIZE];
 +	if (AC_ERR_NOERROR == acFormat(cmd, szRes))
  		tszRes = mir_a2t(szRes);
 -
 -	}
 -	else {
 +	else
  		lastAMIPFailure = GetTickCount();
 -	}
 -	mir_free(cmd);
 +	mir_free(cmd);
  	return tszRes;
  }
 -static int initAMIP() {
 +static int initAMIP()
 +{
  	HMODULE hModule = LoadLibrary(_T("ac.dll"));
  	if (hModule == NULL) {
  		TCHAR path[MAX_PATH];
 @@ -200,37 +190,33 @@ static int initAMIP() {  			_tcscpy(cur, _T("ac.dll"));
  		hModule = LoadLibrary(path);
  	}
 -	if (hModule == NULL) {
 +	if (hModule == NULL)
  		return -1;
 -	}
 +
  	acInitClient = (int (__stdcall *)(const char *,int ,int ,int ,int ))GetProcAddress(hModule, "ac_init_client");
  	acEval = (int (__stdcall *)(const char *,char *))GetProcAddress(hModule, "ac_eval");
  	acFormat = (int (__stdcall *)(const char *,char *))GetProcAddress(hModule, "ac_format");
  	acUninit = (void (__stdcall *)())GetProcAddress(hModule, "ac_uninit");
 -	
  	return 0;
  }
 -int registerExternalTokens() {
 -
 +int registerExternalTokens()
 +{
  	registerIntToken(_T(WINAMPSONG), parseWinampSong, TRF_FIELD, LPGEN("External Applications")"\t"LPGEN("retrieves song name of the song currently playing in Winamp"));
  	registerIntToken(_T(WINAMPSTATE), parseWinampState, TRF_FIELD, LPGEN("External Applications")"\t"LPGEN("retrieves current Winamp state (Playing/Paused/Stopped)"));
  	if (!initAMIP()) {
  		registerIntToken(_T(AMIPEVAL), parseAMIPEval, TRF_FUNCTION, LPGEN("External Applications")"\t(x)\t"LPGEN("retrieves info from AMIP (x is var_<variable> with any AMIP variable)"));
  		registerIntToken(_T(AMIPFORMAT), parseAMIPFormat, TRF_FUNCTION|TRF_UNPARSEDARGS, LPGEN("External Applications")"\t(x)\t"LPGEN("retrieves info from AMIP (x is AMIP format string)"));
  	}
 -	else {
 -		log_infoA("Variables: ac.dll for AMIP not found");
 -	}
 +	else log_infoA("Variables: ac.dll for AMIP not found");
  	return 0;
  }
 -int deInitExternal() {
 -
 -	if (acUninit != NULL) {
 +int deInitExternal()
 +{
 +	if (acUninit != NULL)
  		acUninit();
 -	}
  	return 0;
  }
\ No newline at end of file diff --git a/plugins/Variables/src/parse_inet.cpp b/plugins/Variables/src/parse_inet.cpp index 856af28d14..dfa92ba7f1 100644 --- a/plugins/Variables/src/parse_inet.cpp +++ b/plugins/Variables/src/parse_inet.cpp @@ -19,18 +19,15 @@  #include "variables.h"
 -static TCHAR *parseUrlEnc(ARGUMENTSINFO *ai) {
 -	char hex[8];
 -
 -	if (ai->argc != 2) {
 +static TCHAR *parseUrlEnc(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 2)
  		return NULL;
 -	}
  	char *res = mir_t2a(ai->targv[1]);
 -
 -	if (res == NULL) {
 +	if (res == NULL)
  		return NULL;
 -	}
 +
  	size_t cur = 0;
  	while (cur < strlen(res)) {
  		if (( (*(res+cur) >= '0') && (*(res+cur) <= '9')) || ( (*(res+cur) >= 'a') && (*(res+cur) <= 'z')) || ( (*(res+cur) >= 'A') && (*(res+cur) <= 'Z')) ) {
 @@ -41,6 +38,7 @@ static TCHAR *parseUrlEnc(ARGUMENTSINFO *ai) {  		if (res == NULL)
  			return NULL;
 +		char hex[8];
  		MoveMemory(res+cur+3, res+cur+1, strlen(res+cur+1)+1);
  		mir_snprintf(hex, sizeof(hex), "%%%x", *(res+cur));
  		strncpy(res+cur, hex, strlen(hex));
 @@ -48,27 +46,23 @@ static TCHAR *parseUrlEnc(ARGUMENTSINFO *ai) {  	}
  	TCHAR *tres = mir_a2t(res);
 -
  	mir_free(res);
 -
  	return tres;
  }
 -static TCHAR *parseUrlDec(ARGUMENTSINFO *ai) {
 -	char hex[8];
 -
 -	if (ai->argc != 2) {
 +static TCHAR *parseUrlDec(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 2)
  		return NULL;
 -	}
  	char *res = mir_t2a(ai->targv[1]);
 -
 -	if (res == NULL) {
 +	if (res == NULL)
  		return NULL;
 -	}
 +
  	unsigned int cur = 0;
  	while (cur < strlen(res)) {
  		if ((*(res+cur) == '%') && (strlen(res+cur) >= 3)) {
 +			char hex[8];
  			memset(hex, '\0', sizeof(hex));
  			strncpy(hex, res+cur+1, 2);
  			*(res+cur) = (char)strtol(hex, NULL, 16);
 @@ -76,57 +70,38 @@ static TCHAR *parseUrlDec(ARGUMENTSINFO *ai) {  		}
  		cur++;
  	}
 -	res = ( char* )mir_realloc(res, strlen(res)+1);
 +	res = ( char* )mir_realloc(res, strlen(res)+1);
  	TCHAR *tres = mir_a2t(res);
 -
  	mir_free(res);
 -	
  	return tres;
  }
 -static TCHAR *parseNToA(ARGUMENTSINFO *ai) {
 -	struct in_addr in;
 -
 -	if (ai->argc != 2) {
 +static TCHAR *parseNToA(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 2)
  		return NULL;
 -	}
 +	struct in_addr in;
  	in.s_addr = ttoi(ai->targv[1]);
 -	char *res = inet_ntoa(in);
 -	if (res != NULL) {
 -
 -		return mir_a2t(res);
 -
 -	}
 -
 -	return NULL;
 +	return mir_a2t( inet_ntoa(in));
  }
 -static TCHAR *parseHToA(ARGUMENTSINFO *ai) {
 -	struct in_addr in;
 -
 -	if (ai->argc != 2) {
 +static TCHAR *parseHToA(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 2)
  		return NULL;
 -	}
 +	struct in_addr in;
  	in.s_addr = htonl(ttoi(ai->targv[1]));
 -	char *res = inet_ntoa(in);
 -	if (res != NULL) {
 -
 -		return mir_a2t(res);
 -
 -	}
 -
 -	return NULL;
 +	return mir_a2t( inet_ntoa(in));
  }
 -int registerInetTokens() {
 -
 +int registerInetTokens()
 +{
  	registerIntToken(_T(URLENC), parseUrlEnc, TRF_FUNCTION, LPGEN("Internet Related")"\t(x)\t"LPGEN("converts each non-html character into hex format"));
  	registerIntToken(_T(URLDEC), parseUrlDec, TRF_FUNCTION, LPGEN("Internet Related")"\t(x)\t"LPGEN("converts each hex value into non-html character"));
  	registerIntToken(_T(NTOA), parseNToA, TRF_FUNCTION, LPGEN("Internet Related")"\t(x)\t"LPGEN("converts a 32-bit number to IPv4 dotted notation"));
  	registerIntToken(_T(HTOA), parseHToA, TRF_FUNCTION, LPGEN("Internet Related")"\t(x)\t"LPGEN("converts a 32-bit number (in host byte order) to IPv4 dotted notation"));
 -
 -	return 0;
 + 	return 0;
  }
 diff --git a/plugins/Variables/src/parse_logic.cpp b/plugins/Variables/src/parse_logic.cpp index f0d33e7c79..bc0264caea 100644 --- a/plugins/Variables/src/parse_logic.cpp +++ b/plugins/Variables/src/parse_logic.cpp @@ -19,22 +19,17 @@  #include "variables.h"
 -static TCHAR *parseAnd(ARGUMENTSINFO *ai) {
 +static TCHAR *parseAnd(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc < 3)
 +		return NULL;
  	FORMATINFO fi;
 -	TCHAR *szCondition;
 -	unsigned int i;
 -
 -	if (ai->argc < 3) {
 -		return NULL;
 -	}
 -	ZeroMemory(&fi, sizeof(fi));
  	memcpy(&fi, ai->fi, sizeof(fi));
 -	for (i=1;i<ai->argc;i++) {
 +	for (unsigned i=1; i < ai->argc; i++) {
  		fi.tszFormat = ai->targv[i];
 -		szCondition = formatString(&fi);
 -		mir_free(szCondition);
 -		//if (fi.pCount <= 0) {
 +		mir_free( formatString(&fi));
 +
  		if (fi.eCount > 0) {
  			ai->flags |= AIF_FALSE;
  			return mir_tstrdup(_T(""));
 @@ -44,80 +39,58 @@ static TCHAR *parseAnd(ARGUMENTSINFO *ai) {  	return mir_tstrdup(_T(""));
  }
 -static TCHAR *parseFalse(ARGUMENTSINFO *ai) {
 -
 -	if (ai->argc != 1) {
 +static TCHAR *parseFalse(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 1)
  		return NULL;
 -	}
 -	ai->flags |= AIF_FALSE;
 +	ai->flags |= AIF_FALSE;
  	return mir_tstrdup(_T(""));
  }
 -static TCHAR *parseIf(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 4) {
 +static TCHAR *parseIf(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 4)
  		return NULL;
 -	}
 +
  	FORMATINFO fi;
 -	ZeroMemory(&fi, sizeof(fi));
  	memcpy(&fi, ai->fi, sizeof(fi));
  	fi.eCount = fi.pCount = 0;
  	fi.tszFormat = ai->targv[1];
 -	TCHAR *szCondition = formatString(&fi);
 -	mir_free(szCondition);
 -	//if (fi.pCount > 0) {
 -	if (fi.eCount == 0) {
 -		return mir_tstrdup(ai->targv[2]);
 -	}
 -	else {
 -		return mir_tstrdup(ai->targv[3]);
 -	}
 +	mir_free( formatString(&fi));
 +
 +	return mir_tstrdup((fi.eCount == 0) ? ai->targv[2] : ai->targv[3]);
  }
 -static TCHAR *parseIf2(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 3) {
 +static TCHAR *parseIf2(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 3)
  		return NULL;
 -	}
  	FORMATINFO fi;
 -	ZeroMemory(&fi, sizeof(fi));
  	memcpy(&fi, ai->fi, sizeof(fi));
  	fi.eCount = fi.pCount = 0;
  	fi.tszFormat = ai->targv[1];
  	TCHAR *szCondition = formatString(&fi);
 -	//if (fi.pCount > 0) {
 -	if (fi.eCount == 0) {
 +	if (fi.eCount == 0)
  		return szCondition;
 -	}
 -	else {
 -		if (szCondition != NULL) {
 -//			ai->flags |= AIF_DONTPARSE;
 -			mir_free(szCondition);
 -		}
 -		return mir_tstrdup(ai->targv[2]);
 -	}
 -}
 -static TCHAR *parseIf3(ARGUMENTSINFO *ai) {
 +	mir_free(szCondition);
 +	return mir_tstrdup(ai->targv[2]);
 +}
 +static TCHAR *parseIf3(ARGUMENTSINFO *ai)
 +{
  	FORMATINFO fi;
 -	TCHAR *szCondition;
 -	unsigned int i;
 -
 -	ZeroMemory(&fi, sizeof(fi));
  	memcpy(&fi, ai->fi, sizeof(fi));
 -	for (i=1;i<ai->argc;i++) {
 +	for (unsigned i=1; i < ai->argc; i++) {
  		fi.eCount = fi.pCount = 0;
  		fi.tszFormat = ai->targv[i];
 -		szCondition = formatString(&fi);
 -		//if (fi.pCount > 0) {
 -		if (fi.eCount == 0) {
 -//			ai->flags |= AIF_DONTPARSE;
 +		TCHAR *szCondition = formatString(&fi);
 +		if (fi.eCount == 0)
  			return szCondition;
 -		}
 -		if (szCondition != NULL) {
 -			mir_free(szCondition);
 -		}
 +
 +		mir_free(szCondition);
  	}
  	return NULL;
 @@ -128,93 +101,57 @@ static TCHAR *parseIfequal(ARGUMENTSINFO *ai)  	if (ai->argc != 5)
  		return NULL;
 -	FORMATINFO fi = { 0 };
 +	FORMATINFO fi;
  	memcpy(&fi, ai->fi, sizeof(fi));
  	fi.szFormat = ai->argv[1];
 -	TCHAR *tszFirst = formatString(&fi);
 +	ptrT tszFirst( formatString(&fi));
  	fi.szFormat = ai->argv[2];
 -	TCHAR *tszSecond = formatString(&fi);
 -	if ((tszFirst == NULL) || (tszSecond == NULL)) {
 -		if (tszFirst != NULL)
 -			mir_free(tszFirst);
 -
 -		if (tszSecond != NULL)
 -			mir_free(tszSecond);
 -
 +	ptrT tszSecond( formatString(&fi));
 +	if (tszFirst == NULL || tszSecond == NULL)
  		return NULL;
 -	}
 -	if ((ttoi(tszFirst)) == (ttoi(tszSecond))) {
 -		mir_free(tszFirst);
 -		mir_free(tszSecond);
 +
 +	if ( ttoi(tszFirst) == ttoi(tszSecond))
  		return mir_tstrdup(ai->targv[3]);
 -	}
 -	mir_free(tszFirst);
 -	mir_free(tszSecond);
  	return mir_tstrdup(ai->targv[4]);
  }
 -static TCHAR *parseIfgreater(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 5) {
 +static TCHAR *parseIfgreater(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 5)
  		return NULL;
 -	}
  	FORMATINFO fi;
 -	//ai->flags |= AIF_DONTPARSE;
 -	ZeroMemory(&fi, sizeof(fi));
  	memcpy(&fi, ai->fi, sizeof(fi));
  	fi.szFormat = ai->argv[1];
 -	TCHAR *tszFirst = formatString(&fi);
 +	ptrT tszFirst( formatString(&fi));
  	fi.szFormat = ai->argv[2];
 -	TCHAR *tszSecond = formatString(&fi);
 -	if ((tszFirst == NULL) || (tszSecond == NULL)) {
 -		if (tszFirst != NULL) {
 -			mir_free(tszFirst);
 -		}
 -		if (tszSecond != NULL) {
 -			mir_free(tszSecond);
 -		}
 +	ptrT tszSecond( formatString(&fi));
 +	if (tszFirst == NULL || tszSecond == NULL)
  		return NULL;
 -	}
 -	if ((ttoi(tszFirst)) > (ttoi(tszSecond))) {
 -		mir_free(tszFirst);
 -		mir_free(tszSecond);
 +
 +	if ( ttoi(tszFirst) > ttoi(tszSecond))
  		return mir_tstrdup(ai->targv[3]);
 -	}
 -	mir_free(tszFirst);
 -	mir_free(tszSecond);
  	return mir_tstrdup(ai->targv[4]);
  }
 -static TCHAR *parseIflonger(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 5) {
 +static TCHAR *parseIflonger(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 5)
  		return NULL;
 -	}
  	FORMATINFO fi;
 -	ZeroMemory(&fi, sizeof(fi));
  	memcpy(&fi, ai->fi, sizeof(fi));
  	fi.szFormat = ai->argv[1];
 -	TCHAR *tszFirst = formatString(&fi);
 +	ptrT tszFirst( formatString(&fi));
  	fi.szFormat = ai->argv[2];
 -	TCHAR *tszSecond = formatString(&fi);
 -	if ((tszFirst == NULL) || (tszSecond == NULL)) {
 -		if (tszFirst != NULL) {
 -			mir_free(tszFirst);
 -		}
 -		if (tszSecond != NULL) {
 -			mir_free(tszSecond);
 -		}
 +	ptrT tszSecond( formatString(&fi));
 +	if (tszFirst == NULL || tszSecond == NULL)
  		return NULL;
 -	}
 -	if ( _tcslen(tszFirst) > _tcslen(tszSecond)) {
 -		mir_free(tszFirst);
 -		mir_free(tszSecond);
 +
 +	if ( _tcslen(tszFirst) > _tcslen(tszSecond))
  		return mir_tstrdup(ai->targv[3]);
 -	}
 -	mir_free(tszFirst);
 -	mir_free(tszSecond);
  	return mir_tstrdup(ai->targv[4]);
  }
 @@ -224,17 +161,15 @@ static TCHAR *parseIflonger(ARGUMENTSINFO *ai) {    ?for(init, cond, incr, show)
    */
 -static TCHAR *parseFor(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 5) {
 +static TCHAR *parseFor(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 5)
  		return NULL;
 -	}
  	TCHAR *parsed;
 -	FORMATINFO fi;
 -
  	TCHAR *res = mir_tstrdup(_T(""));
 -//	ai->flags |= AIF_DONTPARSE;
 -	ZeroMemory(&fi, sizeof(fi));
 +
 +	FORMATINFO fi;
  	CopyMemory(&fi, ai->fi, sizeof(fi));
  	fi.eCount = fi.pCount = 0;
  	fi.tszFormat = ai->targv[1];
 @@ -303,83 +238,66 @@ static TCHAR *parseNot(ARGUMENTSINFO *ai) {  	}
  	FORMATINFO fi;
 -	ZeroMemory(&fi, sizeof(fi));
  	memcpy(&fi, ai->fi, sizeof(fi));
  	fi.tszFormat = ai->targv[1];
 -	TCHAR *szCondition = formatString(&fi);
 -	mir_free(szCondition);
 -	//if (fi.pCount > 0) {
 -	if (fi.eCount == 0) {
 +	mir_free( formatString(&fi));
 +
 +	if (fi.eCount == 0)
  		ai->flags |= AIF_FALSE;
 -	}
  	return mir_tstrdup(_T(""));
  }
 -static TCHAR *parseOr(ARGUMENTSINFO *ai) {
 +static TCHAR *parseOr(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc < 2)
 +		return NULL;
 -	unsigned int i;
  	FORMATINFO fi;
 -	TCHAR *szCondition;
 -
 -	if (ai->argc < 2) {
 -		return NULL;
 -	}
 -	ZeroMemory(&fi, sizeof(fi));
  	memcpy(&fi, ai->fi, sizeof(fi));
  	ai->flags |= AIF_FALSE;
 -	for(i=1;(i<ai->argc)&&(ai->flags&AIF_FALSE);i++) {
 +	for(unsigned i=1; (i<ai->argc) && (ai->flags&AIF_FALSE); i++) {
  		fi.tszFormat = ai->targv[i];
  		fi.eCount = 0;
 -		szCondition = formatString(&fi);
 -		mir_free(szCondition);
 -		//if (fi.pCount > 0) {
 -		if (fi.eCount == 0) {
 +		mir_free( formatString(&fi));
 +
 +		if (fi.eCount == 0)
  			ai->flags &= ~AIF_FALSE;
 -		}
  	}
  	return mir_tstrdup(_T(""));
  }
 -static TCHAR *parseTrue(ARGUMENTSINFO *ai) {
 -
 -	if (ai->argc != 1) {
 +static TCHAR *parseTrue(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 1)
  		return NULL;
 -	}
  	return mir_tstrdup(_T(""));
  }
 -static TCHAR *parseXor(ARGUMENTSINFO *ai) {
 +static TCHAR *parseXor(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 3)
 +		return NULL;
 -	int val1, val2;
  	FORMATINFO fi;
 -	TCHAR *szCondition;
 -
 -	if (ai->argc != 3) {
 -		return NULL;
 -	}
 -	ZeroMemory(&fi, sizeof(fi));
  	memcpy(&fi, ai->fi, sizeof(fi));
  	ai->flags = AIF_FALSE;
  	fi.tszFormat = ai->targv[0];
 -	szCondition = formatString(&fi);
 -	mir_free(szCondition);
 -	//val1 = fi.pCount > 0;
 -	val1 = fi.eCount == 0;
 +	mir_free( formatString(&fi));
 +	int val1 = fi.eCount == 0;
 +
  	fi.tszFormat = ai->targv[1];
 -	szCondition = formatString(&fi);
 -	mir_free(szCondition);
 -	//val2 = fi.pCount > 0;
 -	val2 = fi.eCount == 0;
 -	ai->flags |= ((val1&AIF_FALSE)==!(val2&AIF_FALSE))?0:AIF_FALSE;
 +	mir_free( formatString(&fi));
 +	int val2 = fi.eCount == 0;
 +	ai->flags |= ((val1 & AIF_FALSE) == !(val2 & AIF_FALSE)) ? 0 : AIF_FALSE;
  	return mir_tstrdup(_T(""));
  }
 -int registerLogicTokens() {
 -
 +int registerLogicTokens()
 +{
  	registerIntToken(_T(AND), parseAnd, TRF_UNPARSEDARGS|TRF_FUNCTION, LPGEN("Logical Expressions")"\t(x,y, ...)\t"LPGEN("performs logical AND (x && y && ...)"));
  	registerIntToken(_T(STR_FALSE), parseFalse, TRF_FIELD, LPGEN("Logical Expressions")"\t"LPGEN("Boolean FALSE"));
  	registerIntToken(_T(FOR), parseFor, TRF_UNPARSEDARGS|TRF_FUNCTION, LPGEN("Logical Expressions")"\t(w,x,y,z)\t"LPGEN("performs w, then shows z and performs y while x is TRUE"));
 @@ -396,6 +314,5 @@ int registerLogicTokens() {  	registerIntToken(_T(OR), parseOr, TRF_UNPARSEDARGS|TRF_FUNCTION, LPGEN("Logical Expressions")"\t(x,y,...)\t"LPGEN("performs logical OR (x || y || ...)"));
  	registerIntToken(_T(STR_TRUE), parseTrue, TRF_FIELD, LPGEN("Logical Expressions")"\t"LPGEN("Boolean TRUE"));
  	registerIntToken(_T(XOR), parseXor, TRF_UNPARSEDARGS|TRF_FUNCTION, LPGEN("Logical Expressions")"\t(x,y)\t"LPGEN("performs logical XOR (x ^ y)"));
 -	
  	return 0;
  }
 diff --git a/plugins/Variables/src/parse_math.cpp b/plugins/Variables/src/parse_math.cpp index 63e11fe8f5..14e2ec6f46 100644 --- a/plugins/Variables/src/parse_math.cpp +++ b/plugins/Variables/src/parse_math.cpp @@ -19,31 +19,33 @@  #include "variables.h"
 -static TCHAR *parseAdd(ARGUMENTSINFO *ai) {
 -	if (ai->argc < 3) {
 +static TCHAR *parseAdd(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc < 3)
  		return NULL;
 -	}
 +
  	int result = 0;
 -	for (unsigned int i=1;i<ai->argc;i++) {
 +	for (unsigned int i=1;i<ai->argc;i++)
  		result += ttoi(ai->targv[i]);
 -	}
 +
  	return itot(result);
  }
 -static TCHAR *parseDiv(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 3) {
 +static TCHAR *parseDiv(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 3)
  		return NULL;
 -	}
  	int val1 = ttoi(ai->targv[1]);
  	int val2 = ttoi(ai->targv[2]);
 -	if (val2 == 0) {
 +	if (val2 == 0)
  		return NULL;
 -	}
 +
  	return itot(val1/val2);
  }
 -static TCHAR *parseHex(ARGUMENTSINFO *ai) {
 +static TCHAR *parseHex(ARGUMENTSINFO *ai)
 +{
  	unsigned int i;
  	TCHAR szVal[34];
 @@ -60,83 +62,75 @@ static TCHAR *parseHex(ARGUMENTSINFO *ai) {  	ZeroMemory(res, (zeros + _tcslen(szVal) + 3)*sizeof(TCHAR));
  	_tcscpy(res, _T("0x"));
 -	for (i=0;i<zeros;i++)
 -		*(res+2+i) = _T('0');
 +	for (i=0; i < zeros; i++)
 +		*(res+2+i) = '0';
  	_tcscat(res, szVal);
  	return res;
  }
 -static TCHAR *parseMod(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 3) {
 +static TCHAR *parseMod(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 3)
  		return NULL;
 -	}
 +
  	int val1 = ttoi(ai->targv[1]);
  	int val2 = ttoi(ai->targv[2]);
 -	if (val2 == 0) {
 +	if (val2 == 0)
  		return NULL;
 -	}
 -	return itot(val1%val2);
 +	return itot(val1 % val2);
  }
 -static TCHAR *parseMul(ARGUMENTSINFO *ai) {
 -	unsigned int i;
 -
 -	if (ai->argc < 3) {
 +static TCHAR *parseMul(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc < 3)
  		return NULL;
 -	}
 +
  	int result = ttoi(ai->targv[1]);
 -	for (i=2;i<ai->argc;i++) {
 +	for (unsigned i=2; i < ai->argc; i++)
  		result *= ttoi(ai->targv[i]);
 -	}
  	return itot(result);
  }
 -static TCHAR *parseMuldiv(ARGUMENTSINFO *ai) {
 -
 -	if (ai->argc != 4) {
 +static TCHAR *parseMuldiv(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 4)
  		return NULL;
 -	}
 -	if (ttoi(ai->targv[3]) == 0) {
 +
 +	if (ttoi(ai->targv[3]) == 0)
  		return NULL;
 -	}
  	return itot((ttoi(ai->targv[1])*ttoi(ai->targv[2]))/ttoi(ai->targv[3]));
  }
 -static TCHAR *parseMin(ARGUMENTSINFO *ai) {
 -	unsigned int i;
 -
 -	if (ai->argc < 2) {
 +static TCHAR *parseMin(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc < 2)
  		return NULL;
 -	}
 +
  	int minVal = ttoi(ai->targv[1]);
 -	for (i=2;i<ai->argc;i++) {
 +	for (unsigned i=2; i < ai->argc; i++)
  		minVal = min(ttoi(ai->targv[i]), minVal);
 -	}
  	return itot(minVal);
  }
 -static TCHAR *parseMax(ARGUMENTSINFO *ai) {
 -	unsigned int i;
 -
 -	if (ai->argc < 2) {
 +static TCHAR *parseMax(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc < 2)
  		return NULL;
 -	}
 +
  	int maxVal = ttoi(ai->targv[1]);
 -	for (i=2;i<ai->argc;i++) {
 +	for (unsigned i=2; i < ai->argc; i++)
  		maxVal = max(ttoi(ai->targv[i]), maxVal);
 -	}
  	return itot(maxVal);
  }
 -static TCHAR *parseNum(ARGUMENTSINFO *ai) {
 -	unsigned int zeros, i;
 -
 +static TCHAR *parseNum(ARGUMENTSINFO *ai)
 +{
  	if (ai->argc != 3)
  		return NULL;
 @@ -146,15 +140,15 @@ static TCHAR *parseNum(ARGUMENTSINFO *ai) {  	if (szVal == NULL)
  		return NULL;
 -	zeros = max(padding - (signed int)_tcslen(szVal), 0);
 +	unsigned zeros = max(padding - (signed int)_tcslen(szVal), 0);
  	TCHAR *res = (TCHAR*)mir_alloc((zeros + _tcslen(szVal) + 1)*sizeof(TCHAR));
  	if (res == NULL)
  		return NULL;
  	ZeroMemory(res, (zeros + _tcslen(szVal) + 1)*sizeof(TCHAR));
  	TCHAR *cur = res;
 -	for (i=0;i<zeros;i++)
 -		*cur++ = _T('0');
 +	for (unsigned i=0; i < zeros; i++)
 +		*cur++ = '0';
  	_tcscat(res, szVal);
  	mir_free(szVal);
 @@ -162,27 +156,25 @@ static TCHAR *parseNum(ARGUMENTSINFO *ai) {  	return res;
  }
 -static TCHAR *parseRand(ARGUMENTSINFO *ai) {
 -
 +static TCHAR *parseRand(ARGUMENTSINFO *ai)
 +{
  	return itot(rand());
  }
 -static TCHAR *parseSub(ARGUMENTSINFO *ai) {
 -	unsigned int i;
 -
 -	if (ai->argc < 3) {
 +static TCHAR *parseSub(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc < 3)
  		return NULL;
 -	}
 +
  	int result = ttoi(ai->targv[1]);
 -	for (i=2;i<ai->argc;i++) {
 +	for (unsigned i=2;i<ai->argc;i++)
  		result -= ttoi(ai->targv[i]);
 -	}
  	return itot(result);
  }
 -int registerMathTokens() {
 -
 +int registerMathTokens()
 +{
  	registerIntToken(_T(ADD), parseAdd, TRF_FUNCTION, LPGEN("Mathematical Functions")"\t(x,y ,...)\t"LPGEN("x + y + ..."));
  	registerIntToken(_T(DIV), parseDiv,	TRF_FUNCTION, LPGEN("Mathematical Functions")"\t(x,y)\t"LPGEN("x divided by y"));
  	registerIntToken(_T(HEX), parseHex,	TRF_FUNCTION, LPGEN("Mathematical Functions")"\t(x,y)\t"LPGEN("converts decimal value x to hex value and padds to length y"));
 diff --git a/plugins/Variables/src/parse_miranda.cpp b/plugins/Variables/src/parse_miranda.cpp index 88fc767e6c..2e687a1fbf 100644 --- a/plugins/Variables/src/parse_miranda.cpp +++ b/plugins/Variables/src/parse_miranda.cpp @@ -82,7 +82,7 @@ static TCHAR *parseContact(ARGUMENTSINFO *ai)  		return NULL;
  	int n = 0;
 -	if (ai->argc == 4 && *ai->targv[3] != _T('r'))
 +	if (ai->argc == 4 && *ai->targv[3] != 'r')
  		n = ttoi(ai->targv[3]) - 1;
  	CONTACTSINFO ci = { 0 };
 @@ -93,7 +93,7 @@ static TCHAR *parseContact(ARGUMENTSINFO *ai)  	if (count == 0 || ci.hContacts == NULL)
  		return NULL;
 -	if (ai->argc == 4 && *ai->targv[3] == _T('r'))
 +	if (ai->argc == 4 && *ai->targv[3] == 'r')
  		n = rand() % count;
  	if (count != 1 && ai->argc != 4 ) {
 @@ -641,7 +641,7 @@ static TCHAR *parseDbEvent(ARGUMENTSINFO *ai)  	int flags = DBE_MESSAGE;
  	switch (*ai->targv[2]) {
 -	case _T('f'):
 +	case 'f':
  		flags |= DBE_FIRST;
  		break;
  	default:
 @@ -649,10 +649,10 @@ static TCHAR *parseDbEvent(ARGUMENTSINFO *ai)  		break;
  	}
  	switch (*ai->targv[3]) {
 -	case _T('s'):
 +	case 's':
  		flags |= DBE_SENT;
  		break;
 -	case _T('r'):
 +	case 'r':
  		flags |= DBE_RCVD;
  		break;
  	default:
 @@ -660,10 +660,10 @@ static TCHAR *parseDbEvent(ARGUMENTSINFO *ai)  		break;
  	}
  	switch (*ai->targv[4]) {
 -	case _T('r'):
 +	case 'r':
  		flags |= DBE_READ;
  		break;
 -	case _T('u'):
 +	case 'u':
  		flags |= DBE_UNREAD;
  		break;
  	default:
 @@ -689,8 +689,7 @@ static TCHAR *parseDbEvent(ARGUMENTSINFO *ai)  	if (hDbEvent == NULL)
  		return NULL;
 -	DBEVENTINFO dbe = { 0 };
 -	dbe.cbSize = sizeof(DBEVENTINFO);
 +	DBEVENTINFO dbe = { sizeof(dbe) };
  	dbe.cbBlob = db_event_getBlobSize(hDbEvent);
  	dbe.pBlob = (PBYTE)mir_calloc(dbe.cbBlob);
  	if (db_event_get(hDbEvent, &dbe)) {
 diff --git a/plugins/Variables/src/parse_regexp.cpp b/plugins/Variables/src/parse_regexp.cpp index d8ea5c31b3..3b8679de6b 100644 --- a/plugins/Variables/src/parse_regexp.cpp +++ b/plugins/Variables/src/parse_regexp.cpp @@ -22,38 +22,31 @@  /*
  	pattern, subject
  */
 -static TCHAR *parseRegExpCheck(ARGUMENTSINFO *ai) {
 -
 +static TCHAR *parseRegExpCheck(ARGUMENTSINFO *ai)
 +{
  	const char *err;
  	int erroffset;
 -	char szVal[34], *arg1, *arg2;
 +	char szVal[34];
  	int offsets[99];
 -	if (ai->argc != 3) {
 +	if (ai->argc != 3)
  		return NULL;
 -	}
 +
  	ai->flags = AIF_FALSE;
 -	arg1 = mir_t2a(ai->targv[1]);
 -	arg2 = mir_t2a(ai->targv[2]);
 +	ptrA arg1( mir_t2a(ai->targv[1]));
 +	ptrA arg2( mir_t2a(ai->targv[2]));
  	pcre *ppat = pcre_compile(arg1, 0, &err, &erroffset, NULL);
 -	if (ppat == NULL) {
 -		mir_free(arg1);
 -		mir_free(arg2);
 +	if (ppat == NULL)
  		return NULL;
 -	}
 +
  	pcre_extra *extra = pcre_study(ppat, 0, &err);
  	int nmat = pcre_exec(ppat, extra, arg2, (int)strlen(arg2), 0, 0, offsets, 99);
 -	mir_free(arg1);
 -	mir_free(arg2);
  	if (nmat > 0) {
  		ai->flags &= ~AIF_FALSE;
  		_ltoa(nmat, szVal, 10);
 -
 -		TCHAR *res = mir_a2t(szVal);
 -
 -		return res;
 +		return mir_a2t(szVal);
  	}
  	return mir_tstrdup(_T("0"));
 @@ -62,71 +55,47 @@ static TCHAR *parseRegExpCheck(ARGUMENTSINFO *ai) {  /*
  	pattern, subject, substring no (== PCRE string no (starting at 0))
  */
 -static TCHAR *parseRegExpSubstr(ARGUMENTSINFO *ai) {
 -
 +static TCHAR *parseRegExpSubstr(ARGUMENTSINFO *ai)
 +{
  	const char *err, *substring;
 -	char *res, *arg1, *arg2, *arg3;
  	int erroffset, number;
  	int offsets[99];
 -	TCHAR *tres;
 -	if (ai->argc != 4) {
 +	if (ai->argc != 4)
  		return NULL;
 -	}
 -	arg1 = mir_t2a(ai->targv[1]);
 -	arg2 = mir_t2a(ai->targv[2]);
 -	arg3 = mir_t2a(ai->targv[3]);
 +	ptrA arg1 = mir_t2a(ai->targv[1]);
 +	ptrA arg2 = mir_t2a(ai->targv[2]);
 +	ptrA arg3 = mir_t2a(ai->targv[3]);
  	number = atoi(arg3);
 -	if (number < 0) {
 -		mir_free(arg1);
 -		mir_free(arg2);
 -		mir_free(arg3);
 +	if (number < 0)
  		return NULL;
 -	}
 +
  	ai->flags = AIF_FALSE;	
  	pcre *ppat = pcre_compile(arg1, 0, &err, &erroffset, NULL);
 -	if (ppat == NULL) {
 -		mir_free(arg1);
 -		mir_free(arg2);
 -		mir_free(arg3);
 +	if (ppat == NULL)
  		return NULL;
 -	}
 +
  	pcre_extra *extra = pcre_study(ppat, 0, &err);
  	int nmat = pcre_exec(ppat, extra, arg2, (int)strlen(arg2), 0, 0, offsets, 99);
 -	if (nmat >= 0) {
 +	if (nmat >= 0)
  		ai->flags &= ~AIF_FALSE;
 -	}
 -	if (pcre_get_substring(arg2, offsets, nmat, number, &substring) < 0) {
 +
 +	if (pcre_get_substring(arg2, offsets, nmat, number, &substring) < 0)
  		ai->flags |= AIF_FALSE;
 -	}
  	else {
 -		res = mir_strdup(substring);
 +		TCHAR *tres = mir_a2t(substring);
  		pcre_free_substring(substring);
 -
 -
 -		tres = mir_a2t(res);
 -
 -		mir_free(res);
 -		mir_free(arg1);
 -		mir_free(arg2);
 -		mir_free(arg3);
 -
  		return tres;
  	}
 -	mir_free(arg1);
 -	mir_free(arg2);
 -	mir_free(arg3);
  	return mir_tstrdup(_T(""));
  }
 -int registerRegExpTokens() {
 -
 +int registerRegExpTokens()
 +{
  	registerIntToken(_T(REGEXPCHECK), parseRegExpCheck, TRF_FUNCTION, LPGEN("Regular Expressions")"\t(x,y)\t"LPGEN("(ANSI input only) the number of substring matches found in y with pattern x"));
  	registerIntToken(_T(REGEXPSUBSTR), parseRegExpSubstr, TRF_FUNCTION, LPGEN("Regular Expressions")"\t(x,y,z)\t"LPGEN("(ANSI input only) substring match number z found in subject y with pattern x"));
 -
 -
  	return 0;
  }
\ No newline at end of file diff --git a/plugins/Variables/src/parse_str.cpp b/plugins/Variables/src/parse_str.cpp index 3061ae7bf6..5509277224 100644 --- a/plugins/Variables/src/parse_str.cpp +++ b/plugins/Variables/src/parse_str.cpp @@ -29,8 +29,8 @@ static TCHAR *parseCaps(ARGUMENTSINFO *ai)  	CharLower(res);
  	*cur = (TCHAR)CharUpper((LPTSTR)*cur);
  	cur++;
 -	while (*cur != _T('\0')) {
 -		if ((*cur == _T(' ')) && (*(cur+1) != _T('\0'))) {
 +	while (*cur != 0) {
 +		if ((*cur == ' ') && (*(cur+1) != 0)) {
  			cur++;
  			if (IsCharLower(*cur))
  				*cur = (TCHAR)CharUpper((LPTSTR)*cur);
 @@ -53,8 +53,8 @@ static TCHAR *parseCaps2(ARGUMENTSINFO *ai)  	TCHAR *cur = res;
  	*cur = (TCHAR)CharUpper((LPTSTR)*cur);
  	cur++;
 -	while (*cur != _T('\0')) {
 -		if ((*cur == _T(' ')) && (*(cur+1) != _T('\0'))) {
 +	while (*cur != 0) {
 +		if ((*cur == ' ') && (*(cur+1) != 0)) {
  			cur++;
  			if (IsCharLower(*cur))
  				*cur = (TCHAR)CharUpper((LPTSTR)*cur);
 @@ -78,7 +78,7 @@ static TCHAR *parseEolToCrlf(ARGUMENTSINFO *ai)  	TCHAR *res = mir_tstrdup(ai->targv[1]);
  	TCHAR *cur = res;
  	do {
 -		cur = _tcschr(cur, _T('\n'));
 +		cur = _tcschr(cur, '\n');
  		if ((cur == NULL) || ((cur > res) && (*(cur-1) == '\r')))
  			continue;
 @@ -106,7 +106,7 @@ static TCHAR *parseFixeol(ARGUMENTSINFO *ai)  		return NULL;
  	TCHAR *cur = ai->targv[1];
 -	while ( (_tcscmp(cur, _T("\r\n"))) && (*cur != _T('\n')) && (*cur != _T('\0')))
 +	while ( _tcscmp(cur, _T("\r\n")) && *cur != '\n' && *cur != 0)
  		cur++;
  	if (*cur == '\0')
 @@ -139,7 +139,7 @@ static TCHAR *parseFixeol2(ARGUMENTSINFO *ai)  		if (!_tcsncmp(cur, _T("\r\n"), _tcslen(_T("\r\n"))))
  			szEol = _T("\r\n");
 -		if (*cur == _T('\n'))
 +		if (*cur == '\n')
  			szEol = _T("\n");
  		if (szEol != NULL) {
 @@ -214,7 +214,7 @@ static TCHAR *parseLineCount(ARGUMENTSINFO *ai)  			count += 1;
  			cur++;
  		}
 -		else if (*cur == _T('\n'))
 +		else if (*cur == '\n')
  			count++;
  		cur++;
 @@ -260,7 +260,7 @@ static TCHAR *parsePad(ARGUMENTSINFO *ai)  {
  	TCHAR padchar;
  	switch( ai->argc ) {
 -		case 3:  padchar = _T(' ');  break;
 +		case 3:  padchar = ' ';  break;
  		case 4:  padchar = *ai->targv[3];  break;
  		default: return NULL;
  	}
 @@ -287,7 +287,7 @@ static TCHAR *parsePadright(ARGUMENTSINFO *ai)  {
  	TCHAR padchar;
  	switch (ai->argc ) {
 -		case 3: padchar = _T(' ');  break;
 +		case 3: padchar = ' ';  break;
  		case 4: padchar = *ai->targv[3]; break;
  		default: return NULL;
  	}
 @@ -314,7 +314,7 @@ static TCHAR *parsePadcut(ARGUMENTSINFO *ai)  {
  	TCHAR padchar;
  	switch( ai->argc ) {
 -		case 3: padchar = _T(' ');   break;
 +		case 3: padchar = ' ';   break;
  		case 4: padchar = *ai->targv[3]; break;
  		default: return NULL;
  	}
 @@ -343,7 +343,7 @@ static TCHAR *parsePadcutright(ARGUMENTSINFO *ai)  {
  	TCHAR padchar;
  	switch( ai->argc ) {
 -		case 3:  padchar = _T(' ');  break;
 +		case 3:  padchar = ' ';  break;
  		case 4:  padchar = *ai->targv[3]; break;
  		default: return NULL;
  	}
 @@ -370,41 +370,37 @@ static TCHAR *parsePadcutright(ARGUMENTSINFO *ai)  static TCHAR *parseRepeat(ARGUMENTSINFO *ai)
  {
 -	TCHAR *res;
 -	unsigned int i, count;
 -
 -	if (ai->argc != 3) {
 +	if (ai->argc != 3)
  		return NULL;
 -	}
 -	count = ttoi(ai->targv[2]);
 -	if (count < 0) {
 +
 +	int count = ttoi(ai->targv[2]);
 +	if (count < 0)
  		return NULL;
 -	}
 -	res = (TCHAR*)mir_alloc((count * _tcslen(ai->targv[1]) + 1)*sizeof(TCHAR));
 -	if (res == NULL) {
 +
 +	TCHAR *res = (TCHAR*)mir_alloc((count * _tcslen(ai->targv[1]) + 1)*sizeof(TCHAR));
 +	if (res == NULL)
  		return NULL;
 -	}
 +
  	ZeroMemory(res, (count * _tcslen(ai->targv[1]) + 1)*sizeof(TCHAR));
 -	for (i=0;i<count;i++) {
 +	for (int i=0; i < count; i++)
  		_tcscat(res, ai->targv[1]);
 -	}
  	return res;
  }
  static TCHAR *parseReplace(ARGUMENTSINFO *ai)
  {
 -	if ((ai->argc < 4) || (ai->argc%2 != 0)) {
 +	if ((ai->argc < 4) || (ai->argc%2 != 0))
  		return NULL;
 -	}
 +
  	TCHAR *cur;
  	size_t pos = 0;
  	TCHAR *res = mir_tstrdup(ai->targv[1]);
 -	for (size_t i=2;i<ai->argc;i+=2) {
 -		if ( _tcslen(ai->targv[i]) == 0) {
 +	for (size_t i=2; i < ai->argc; i += 2) {
 +		if ( _tcslen(ai->targv[i]) == 0)
  			continue;
 -		}
 +
  		for (pos=0;pos<_tcslen(res);pos++) {
  			cur = res+pos;
  			if (!_tcsncmp(cur, ai->targv[i], _tcslen(ai->targv[i]))) {
 @@ -425,49 +421,40 @@ static TCHAR *parseReplace(ARGUMENTSINFO *ai)  static TCHAR *parseRight(ARGUMENTSINFO *ai)
  {
 -
 -	int len;
 -	TCHAR *res;
 -
 -	if (ai->argc != 3) {
 +	if (ai->argc != 3)
  		return NULL;
 -	}
 -	len = ttoi(ai->targv[2]);
 -	if (len < 0) {
 +
 +	int len = ttoi(ai->targv[2]);
 +	if (len < 0)
  		return NULL;
 -	}
 +
  	len = min(len, (signed int)_tcslen(ai->targv[1]));
 -	res = (TCHAR*)mir_alloc((len+1)*sizeof(TCHAR));
 -	if (res == NULL) {
 +	TCHAR *res = (TCHAR*)mir_alloc((len+1)*sizeof(TCHAR));
 +	if (res == NULL)
  		return NULL;
 -	}
 +
  	ZeroMemory(res, (len+1)*sizeof(TCHAR));
  	_tcsncpy(res, ai->targv[1]+_tcslen(ai->targv[1])-len, len);
 -
  	return res;
  }
  /*
  	string, display size, scroll amount 
  */
 -static TCHAR *parseScroll(ARGUMENTSINFO *ai) {
 -
 -	unsigned int display, move;
 -	TCHAR *res;
 -
 -	if (ai->argc != 4) {
 +static TCHAR *parseScroll(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 4)
  		return NULL;
 -	}
 -	if ( _tcslen(ai->targv[1]) == 0) {
 -	
 +
 +	if ( _tcslen(ai->targv[1]) == 0)
  		return mir_tstrdup(ai->targv[1]);
 -	}
 -	move = ttoi(ai->targv[3])%_tcslen(ai->targv[1]);
 -	display = ttoi(ai->targv[2]);
 +
 +	size_t move = ttoi(ai->targv[3])%_tcslen(ai->targv[1]);
 +	size_t display = ttoi(ai->targv[2]);
  	if (display > _tcslen(ai->targv[1]))
  		display = (unsigned)_tcslen(ai->targv[1]);
 -	res = (TCHAR*)mir_alloc((2*_tcslen(ai->targv[1])+1)*sizeof(TCHAR));
 +	TCHAR *res = (TCHAR*)mir_alloc((2*_tcslen(ai->targv[1])+1)*sizeof(TCHAR));
  	if (res == NULL)
  		return NULL;
 @@ -475,67 +462,57 @@ static TCHAR *parseScroll(ARGUMENTSINFO *ai) {  	_tcscpy(res, ai->targv[1]);
  	_tcscat(res, ai->targv[1]);
  	MoveMemory(res, res+move, (_tcslen(res+move)+1)*sizeof(TCHAR));
 -	*(res + display) = _T('\0');	
 +	*(res + display) = 0;	
  	res = (TCHAR*)mir_realloc(res, (_tcslen(res)+1)*sizeof(TCHAR));
  	return res;
  }			
 -static TCHAR *parseShortest(ARGUMENTSINFO *ai) {
 -
 -	unsigned int i, iShort;
 -
 -	if (ai->argc <= 1) {
 +static TCHAR *parseShortest(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc <= 1)
  		return NULL;
 -	}
 -	iShort = 1;
 -	for (i=2;i<ai->argc;i++) {
 -		if ( _tcslen(ai->targv[i]) < _tcslen(ai->targv[iShort])) {
 +
 +	int iShort = 1;
 +	for (unsigned i=2; i < ai->argc; i++)
 +		if ( _tcslen(ai->targv[i]) < _tcslen(ai->targv[iShort]))
  			iShort = i;
 -		}
 -	}
  	return mir_tstrdup(ai->targv[iShort]);
  }
 -static TCHAR *parseStrchr(ARGUMENTSINFO *ai) {
 +static TCHAR *parseStrchr(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 3)
 +		return NULL;
 -	TCHAR *c;
  	char *szVal[34];
 -	
 -	if (ai->argc != 3) {
 -		return NULL;
 -	}
  	ZeroMemory(szVal, sizeof(szVal));
 -	c = _tcschr(ai->targv[1], *ai->targv[2]);
 -	if ((c == NULL) || (*c == _T('\0'))) {
 +	TCHAR *c = _tcschr(ai->targv[1], *ai->targv[2]);
 +	if (c == NULL || *c == 0)
  		return mir_tstrdup(_T("0"));
 -	}
  	return itot(c-ai->targv[1]+1);
  }
 -static TCHAR *parseStrcmp(ARGUMENTSINFO *ai) {
 -
 -	if (ai->argc != 3) {
 +static TCHAR *parseStrcmp(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 3)
  		return NULL;
 -	}
 -	if ( _tcscmp(ai->targv[1], ai->targv[2])) {
 +
 +	if ( _tcscmp(ai->targv[1], ai->targv[2]))
  		ai->flags |= AIF_FALSE;
 -	}
  	return mir_tstrdup(_T(""));
  }
 -static TCHAR *parseStrmcmp(ARGUMENTSINFO *ai) {
 -
 -	unsigned int i;
 -
 -	if (ai->argc < 3) {
 +static TCHAR *parseStrmcmp(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc < 3)
  		return NULL;
 -	}
 +
  	ai->flags |= AIF_FALSE;
 -	for (i=2;i<ai->argc;i++) {
 +	for (unsigned i=2; i < ai->argc; i++) {
  		if (!_tcscmp(ai->targv[1], ai->targv[i])) {
  			ai->flags &= ~AIF_FALSE;
  			break;
 @@ -545,94 +522,77 @@ static TCHAR *parseStrmcmp(ARGUMENTSINFO *ai) {  	return mir_tstrdup(_T(""));
  }
 -static TCHAR *parseStrncmp(ARGUMENTSINFO *ai) {
 -
 -	int n;
 -
 -	if (ai->argc != 4) {
 +static TCHAR *parseStrncmp(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 4)
  		return NULL;
 -	}
 -	n = ttoi(ai->targv[3]);
 -	if (n <= 0) {
 +
 +	int n = ttoi(ai->targv[3]);
 +	if (n <= 0)
  		return NULL;
 -	}
 -	if ( _tcsncmp(ai->targv[1], ai->targv[2], n)) {
 +
 +	if ( _tcsncmp(ai->targv[1], ai->targv[2], n))
  		ai->flags |= AIF_FALSE;
 -	}
  	return mir_tstrdup(_T(""));
  }
 -static TCHAR *parseStricmp(ARGUMENTSINFO *ai) {
 -
 -	if (ai->argc != 3) {
 +static TCHAR *parseStricmp(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 3)
  		return NULL;
 -	}
 -	if ( _tcsicmp(ai->targv[1], ai->targv[2])) {
 +	if ( _tcsicmp(ai->targv[1], ai->targv[2]))
  		ai->flags |= AIF_FALSE;
 -	}
  	return mir_tstrdup(_T(""));
  }
 -static TCHAR *parseStrnicmp(ARGUMENTSINFO *ai) {
 -
 -	int n;
 -
 -	if (ai->argc != 4) {
 +static TCHAR *parseStrnicmp(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 4)
  		return NULL;
 -	}
 -	n = ttoi(ai->targv[3]);
 -	if (n <= 0) {
 +
 +	int n = ttoi(ai->targv[3]);
 +	if (n <= 0)
  		return NULL;
 -	}
 -	if ( _tcsnicmp(ai->targv[1], ai->targv[2], n)) {
 +
 +	if ( _tcsnicmp(ai->targv[1], ai->targv[2], n))
  		ai->flags |= AIF_FALSE;
 -	}
  	return mir_tstrdup(_T(""));
  }
 -static TCHAR *parseStrrchr(ARGUMENTSINFO *ai) {
 -
 -	TCHAR *c;
 -	
 -	if (ai->argc != 3) {
 +static TCHAR *parseStrrchr(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 3)
  		return NULL;
 -	}
 -	c = _tcsrchr(ai->targv[1], *ai->targv[2]);
 -	if ((c == NULL) || (*c == _T('\0'))) {
 +
 +	TCHAR *c = _tcsrchr(ai->targv[1], *ai->targv[2]);
 +	if ((c == NULL) || (*c == 0))
  		return mir_tstrdup(_T("0"));
 -	}
  	return itot(c-ai->targv[1]+1);
  }
 -static TCHAR *parseStrstr(ARGUMENTSINFO *ai) {
 -
 -	TCHAR *c;
 -	
 -	if (ai->argc != 3) {
 +static TCHAR *parseStrstr(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 3)
  		return NULL;
 -	}
 -	c = _tcsstr(ai->targv[1], ai->targv[2]);
 -	if ((c == NULL) || (*c == _T('\0'))) {
 +
 +	TCHAR *c = _tcsstr(ai->targv[1], ai->targv[2]);
 +	if ((c == NULL) || (*c == 0))
  		return mir_tstrdup(_T("0"));
 -	}
  	return itot(c-ai->targv[1]+1);
  }
 -static TCHAR *parseSubstr(ARGUMENTSINFO *ai) {
 -
 -	int from, to;
 -	TCHAR *res;
 -
 -	if (ai->argc < 3) {
 +static TCHAR *parseSubstr(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc < 3)
  		return NULL;
 -	}
 -	from = max(ttoi(ai->targv[2])-1, 0);
 +
 +	int to, from = max(ttoi(ai->targv[2])-1, 0);
  	if (ai->argc > 3)
  		to = min(ttoi(ai->targv[3]), (int)_tcslen(ai->targv[1]));
  	else
 @@ -641,163 +601,139 @@ static TCHAR *parseSubstr(ARGUMENTSINFO *ai) {  	if (to < from)
  		return NULL;
 -	res = (TCHAR*)mir_alloc((to-from+1)*sizeof(TCHAR));
 +	TCHAR *res = (TCHAR*)mir_alloc((to-from+1)*sizeof(TCHAR));
  	ZeroMemory(res, (to-from+1)*sizeof(TCHAR));
  	_tcsncpy(res, ai->targv[1]+from, to-from);
 -
  	return res;
  }
 -static TCHAR *parseSelect(ARGUMENTSINFO *ai) {
 -
 -	int n;
 -
 -	if (ai->argc <= 1) {
 +static TCHAR *parseSelect(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc <= 1)
  		return NULL;
 -	}
 -	n = ttoi(ai->targv[1]);
 -	if ((n > (signed int)ai->argc-2) || (n <= 0)) {
 +
 +	int n = ttoi(ai->targv[1]);
 +	if ((n > (signed int)ai->argc-2) || n <= 0)
  		return NULL;
 -	}
  	return mir_tstrdup(ai->targv[n+1]);
  }
 -static TCHAR *parseSwitch(ARGUMENTSINFO *ai) {
 -
 -	unsigned int i;
 -
 -	if (ai->argc%2 != 0) {
 +static TCHAR *parseSwitch(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc%2 != 0)
  		return NULL;
 -	}
 -	for (i=2;i<ai->argc;i+=2) {
 -		if (!_tcscmp(ai->targv[1], ai->targv[i])) {
 +
 +	for (unsigned i=2; i < ai->argc; i += 2)
 +		if (!_tcscmp(ai->targv[1], ai->targv[i]))
  			return mir_tstrdup(ai->targv[i+1]);
 -		}
 -	}
 +
  	return NULL;
  }
 -static TCHAR *parseTrim(ARGUMENTSINFO *ai) {
 -
 -	TCHAR *scur, *ecur, *res;
 -
 -	if (ai->argc != 2) {
 +static TCHAR *parseTrim(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 2)
  		return NULL;
 -	}
 -	scur = ai->targv[1];
 -	while (*scur == _T(' ')) {
 +
 +	TCHAR *scur = ai->targv[1];
 +	while (*scur == ' ')
  		scur++;
 -	}
 -	ecur = ai->targv[1] + _tcslen(ai->targv[1])-1;
 -	while ( (*ecur == _T(' ')) && (ecur > ai->targv[1])) {
 +
 +	TCHAR *ecur = ai->targv[1] + _tcslen(ai->targv[1])-1;
 +	while ( (*ecur == ' ') && (ecur > ai->targv[1]))
  		ecur--;
 -	}
 -	if (scur >= ecur) {
 +
 +	if (scur >= ecur)
  		return mir_tstrdup(_T(""));
 -	}
 -	res = (TCHAR*)mir_alloc((ecur-scur+2)*sizeof(TCHAR));
 -	if (res == NULL) {
 +
 +	TCHAR *res = (TCHAR*)mir_alloc((ecur-scur+2)*sizeof(TCHAR));
 +	if (res == NULL)
  		return NULL;
 -	}
 +
  	ZeroMemory(res, (ecur-scur+2)*sizeof(TCHAR));
  	_tcsncpy(res, scur, ecur-scur+1);
  	return res;
  }
 -static TCHAR *parseTab(ARGUMENTSINFO *ai) {
 -
 -	int count, i;
 -	TCHAR *res, *cur;
 -
 -	count = 1;
 -	if ((ai->argc == 2) && (_tcslen(ai->targv[1]) > 0)) {
 +static TCHAR *parseTab(ARGUMENTSINFO *ai)
 +{
 +	int count = 1;
 +	if ((ai->argc == 2) && (_tcslen(ai->targv[1]) > 0))
  		count = ttoi(ai->targv[1]);
 -	}
 -	if (count < 0) {
 +
 +	if (count < 0)
  		return NULL;
 -	}
 -	res = (TCHAR*)mir_alloc((count+1)*sizeof(TCHAR));
 -	if (res == NULL) {
 +
 +	TCHAR *res = (TCHAR*)mir_alloc((count+1)*sizeof(TCHAR));
 +	if (res == NULL)
  		return NULL;
 -	}
 -	memset(res, _T('\0'), (count+1)*sizeof(TCHAR));
 -	cur = res;
 -	for (i=0;i<count;i++) {
 -		*cur++ = _T('\t');
 -	}
 +
 +	memset(res, 0, (count+1)*sizeof(TCHAR));
 +	TCHAR *cur = res;
 +	for (int i=0; i < count; i++)
 +		*cur++ = '\t';
  	return res;
  }
 -static TCHAR *parseUpper(ARGUMENTSINFO *ai) {
 -
 -	TCHAR *res;
 -
 -	if (ai->argc != 2) {
 +static TCHAR *parseUpper(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 2)
  		return NULL;
 -	}
 -	res = mir_tstrdup(ai->targv[1]);
 -	if (res == NULL) {
 +
 +	TCHAR *res = mir_tstrdup(ai->targv[1]);
 +	if (res == NULL)
  		return NULL;
 -	}
  	return CharUpper(res);
  }
 -static TCHAR *getNthWord(TCHAR *szString, int w) {
 -
 -	int count;
 -	TCHAR *res, *scur, *ecur;
 -
 -	if (szString == NULL) {
 +static TCHAR *getNthWord(TCHAR *szString, int w)
 +{
 +	if (szString == NULL)
  		return NULL;
 -	}
 -	count = 0;
 -	scur = szString;
 -	while (*scur == _T(' ')) {
 +
 +	int count = 0;
 +	TCHAR *scur = szString;
 +	while (*scur == ' ')
  		scur++;
 -	}
 -	count+=1;
 +
 +	count += 1;
  	while ( (count < w) && (scur < szString+_tcslen(szString))) {
 -		if (*scur == _T(' ')) {
 -			while (*scur == _T(' ')) {
 +		if (*scur == ' ') {
 +			while (*scur == ' ')
  				scur++;
 -			}
 -			count+=1;
 +
 +			count += 1;
  		}
 -		if (count < w) {
 +		if (count < w)
  			scur++;
 -		}
  	}
 -	if (count != w) {
 +	if (count != w)
  		return NULL;
 -	}
 -	ecur = scur;
 -	while ( (*ecur != _T(' ')) && (*ecur != _T('\0'))) {
 +
 +	TCHAR *ecur = scur;
 +	while ( (*ecur != ' ') && (*ecur != 0))
  		ecur++;
 -	}
 -	res = (TCHAR*)mir_alloc((ecur-scur+1)*sizeof(TCHAR));
 +
 +	TCHAR *res = (TCHAR*)mir_alloc((ecur-scur+1)*sizeof(TCHAR));
  	if (res == NULL)
  		return NULL;
  	ZeroMemory(res, (ecur-scur+1)*sizeof(TCHAR));
  	_tcsncpy(res, scur, ecur-scur);
 -
  	return res;
  }
  static TCHAR *parseWord(ARGUMENTSINFO *ai)
  {
 -	int i, from, to;
 -	TCHAR *res, *szWord;
 -
  	if (ai->argc < 3 || ai->argc > 4 )
  		return NULL;
 -	res = NULL;
 -	from = ttoi(ai->targv[2]);
 +	TCHAR *res = NULL;
 +	int to, from = ttoi(ai->targv[2]);
  	if (ai->argc == 4) {
  		if ( _tcslen(ai->targv[3]) > 0)
  			to = ttoi(ai->targv[3]);
 @@ -809,8 +745,8 @@ static TCHAR *parseWord(ARGUMENTSINFO *ai)  	if ((from == 0) || (to == 0) || (from > to))
  		return NULL;
 -	for (i=from;i<=to;i++) {
 -		szWord = getNthWord(ai->targv[1], i);
 +	for (int i=from; i <= to; i++) {
 +		TCHAR *szWord = getNthWord(ai->targv[1], i);
  		if (szWord == NULL)
  			return res;
 diff --git a/plugins/Variables/src/parse_system.cpp b/plugins/Variables/src/parse_system.cpp index 8cf00a28af..a5d8180e46 100644 --- a/plugins/Variables/src/parse_system.cpp +++ b/plugins/Variables/src/parse_system.cpp @@ -114,7 +114,8 @@ static TCHAR *parseCpuLoad(ARGUMENTSINFO *ai) {  }
  #endif
 -static TCHAR *parseCurrentDate(ARGUMENTSINFO *ai) {
 +static TCHAR *parseCurrentDate(ARGUMENTSINFO *ai)
 +{
  	TCHAR *szFormat;
  	if (ai->argc == 1 || (ai->argc > 1 && _tcslen(ai->targv[1]) == 0 ))
  		szFormat = NULL;
 @@ -123,9 +124,9 @@ static TCHAR *parseCurrentDate(ARGUMENTSINFO *ai) {  	int len = GetDateFormat(LOCALE_USER_DEFAULT, 0, NULL, szFormat, NULL, 0);
  	TCHAR *res = (TCHAR*)mir_alloc((len+1)*sizeof(TCHAR));
 -	if (res == NULL) {
 +	if (res == NULL)
  		return NULL;
 -	}
 +
  	if (GetDateFormat(LOCALE_USER_DEFAULT, 0, NULL, szFormat, res, len) == 0) {
  		mir_free(res);
  		return NULL;
 @@ -134,7 +135,8 @@ static TCHAR *parseCurrentDate(ARGUMENTSINFO *ai) {  	return res;
  }
 -static TCHAR *parseCurrentTime(ARGUMENTSINFO *ai) {
 +static TCHAR *parseCurrentTime(ARGUMENTSINFO *ai)
 +{
  	TCHAR *szFormat;
  	if (ai->argc == 1 || (ai->argc > 1) && (_tcslen(ai->targv[1]) == 0))
  		szFormat = NULL;
 @@ -154,38 +156,35 @@ static TCHAR *parseCurrentTime(ARGUMENTSINFO *ai) {  	return res;
  }
 -static TCHAR *parseDirectory(ARGUMENTSINFO *ai) {
 -
 -	int depth, bi, ei;
 -	TCHAR *res;
 -
 +static TCHAR *parseDirectory(ARGUMENTSINFO *ai)
 +{
  	if (ai->argc < 2 || ai->argc > 3 )
  		return NULL;
 -	depth = 0;
 +	int depth = 0;
  	if (ai->argc == 3)
  		depth = ttoi(ai->targv[2]);
  	if (depth <= 0)
  		return mir_tstrdup(ai->targv[1]);
 -	for (ei = 0; ei < _tcslen(ai->targv[1]); ei++)
 -	{
 +	size_t bi, ei;
 +	for (ei = 0; ei < _tcslen(ai->targv[1]); ei++) {
  		if (ai->targv[1][ei] == '\\')
  			depth--;
 -		if (!depth) break;
 +		if (!depth)
 +			break;
  	}
  	if (ei >= _tcslen(ai->targv[1]))
  		return ai->targv[1];
 -	for (bi = ei - 1; bi > 0; bi--)
 -	{
 -		if (ai->targv[1][bi - 1] == '\\') break;
 -	}
 -	res = (TCHAR*)mir_alloc((ei - bi + 1) * sizeof(TCHAR));
 +	for (bi = ei-1; bi > 0; bi--)
 +		if (ai->targv[1][bi - 1] == '\\')
 +			break;
 +
 +	TCHAR *res = (TCHAR*)mir_alloc((ei - bi + 1) * sizeof(TCHAR));
  	_tcsncpy(res, ai->targv[1] + bi, ei - bi);
  	res[ei - bi] = 0;
 -
  	return res;
  }
 @@ -207,10 +206,10 @@ static TCHAR *parseDirectory2(ARGUMENTSINFO *ai)  	TCHAR *ecur = ai->targv[1]+_tcslen(ai->targv[1]);
  	while (depth > 0) {
 -		while ( (*ecur != _T('\\')) && (ecur > ai->targv[1]))
 +		while ( (*ecur != '\\') && (ecur > ai->targv[1]))
  			ecur--;
 -		if (*ecur != _T('\\'))
 +		if (*ecur != '\\')
  			return NULL;
  		depth -= 1;
 @@ -224,7 +223,8 @@ static TCHAR *parseDirectory2(ARGUMENTSINFO *ai)  	return res;
  }
 -static int getTime(TCHAR *szTime, struct tm *date) {
 +static int getTime(TCHAR *szTime, struct tm *date)
 +{
  	// do some extra checks here
  	TCHAR *cur = szTime;
  	if (cur >= szTime+_tcslen(szTime))
 @@ -232,46 +232,41 @@ static int getTime(TCHAR *szTime, struct tm *date) {  	date->tm_mon = _tcstoul(cur, &cur, 10)-1;
  	cur++;
 -	if (cur >= szTime+_tcslen(szTime)) {
 +	if (cur >= szTime+_tcslen(szTime))
  		return -1;
 -	}
 +
  	date->tm_mday = _tcstoul(cur, &cur, 10);
  	cur++;
 -	if (cur >= szTime+_tcslen(szTime)) {
 +	if (cur >= szTime+_tcslen(szTime))
  		return -1;
 -	}
 +
  	date->tm_year = _tcstoul(cur, &cur, 10);
 -	if (date->tm_year > 2000) {
 +	if (date->tm_year > 2000)
  		date->tm_year -= 2000;
 -	}
 -	else if (date->tm_year > 1900) {
 +	else if (date->tm_year > 1900)
  		date->tm_year -= 1900;
 -	}
 +
  	date->tm_year = date->tm_year<38?date->tm_year+100:date->tm_year;
  	cur++;
 -	if (cur >= szTime+_tcslen(szTime)) {
 +	if (cur >= szTime+_tcslen(szTime))
  		return -1;
 -	}
 +
  	date->tm_hour = _tcstoul(cur, &cur, 10);
  	cur++;
 -	if (cur >= szTime+_tcslen(szTime)) {
 +	if (cur >= szTime+_tcslen(szTime))
  		return -1;
 -	}
 +
  	date->tm_min = _tcstoul(cur, &cur, 10);
  	cur++;
 -	if (cur >= szTime+_tcslen(szTime)) {
 +	if (cur >= szTime+_tcslen(szTime))
  		return -1;
 -	}
 -	date->tm_sec = _tcstoul(cur, &cur, 10);
 +	date->tm_sec = _tcstoul(cur, &cur, 10);
  	return 0;
  }
 -/*
 -	date,date
 -	M/d/yy H:m:s
 -*/
 -static TCHAR *parseDiffTime(ARGUMENTSINFO *ai) {
 -	
 +
 +static TCHAR *parseDiffTime(ARGUMENTSINFO *ai)
 +{	
  	struct tm t0, t1;
  	TCHAR szTime[32];
  	double diff;
 @@ -293,33 +288,33 @@ static TCHAR *parseDiffTime(ARGUMENTSINFO *ai) {  	return mir_tstrdup(szTime);
  }
 -static TCHAR *parseDirExists(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 2) {
 +static TCHAR *parseDirExists(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 2)
  		return NULL;
 -	}
 +
  	HANDLE hFile = CreateFile(ai->targv[1], GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
 -	if (hFile == INVALID_HANDLE_VALUE) {
 +	if (hFile == INVALID_HANDLE_VALUE)
  		ai->flags |= AIF_FALSE;
 -	}
 -	else {
 +	else
  		CloseHandle(hFile);
 -	}
  	return mir_tstrdup(_T(""));
  }
 -static TCHAR *parseEnvironmentVariable(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 2) {
 +static TCHAR *parseEnvironmentVariable(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 2)
  		return NULL;
 -	}
 +
  	DWORD len = ExpandEnvironmentStrings(ai->targv[1], NULL, 0);
 -	if (len <= 0) {
 +	if (len <= 0)
  		return NULL;
 -	}
 +
  	TCHAR *res = (TCHAR*)mir_alloc((len+1)*sizeof(TCHAR));
 -	if (res == NULL) {
 +	if (res == NULL)
  		return NULL;
 -	}
 +
  	ZeroMemory(res, (len+1)*sizeof(TCHAR));
  	if (ExpandEnvironmentStrings(ai->targv[1], res, len) == 0) {
  		mir_free(res);
 @@ -328,7 +323,8 @@ static TCHAR *parseEnvironmentVariable(ARGUMENTSINFO *ai) {  	return res;
  }
 -static TCHAR *parseFileExists(ARGUMENTSINFO *ai) {
 +static TCHAR *parseFileExists(ARGUMENTSINFO *ai)
 +{
  	if (ai->argc != 2)
  		return NULL;
 @@ -341,7 +337,8 @@ static TCHAR *parseFileExists(ARGUMENTSINFO *ai) {  	return mir_tstrdup(_T(""));
  }
 -static TCHAR *parseFindWindow(ARGUMENTSINFO *ai) {
 +static TCHAR *parseFindWindow(ARGUMENTSINFO *ai)
 +{
  	if (ai->argc != 2)
  		return NULL;
 @@ -350,56 +347,54 @@ static TCHAR *parseFindWindow(ARGUMENTSINFO *ai) {  		return NULL;
  	int len = SendMessage(hWin, WM_GETTEXTLENGTH, 0, 0);
 -	if (len >= 0) {
 -		TCHAR *res = (TCHAR*)mir_alloc((len+1)*sizeof(TCHAR));
 -		ZeroMemory(res, (len+1)*sizeof(TCHAR));
 -		GetWindowText(hWin, res, len+1);
 -		return res;
 -	}
 -	return NULL;
 +	if (len == 0)
 +		return NULL;
 +
 +	TCHAR *res = (TCHAR*)mir_alloc((len+1)*sizeof(TCHAR));
 +	ZeroMemory(res, (len+1)*sizeof(TCHAR));
 +	GetWindowText(hWin, res, len+1);
 +	return res;
  }
  // 1 = dir
  // 2 = filter
  // 3 = sperator
  // 4 = [f]iles, [d]irs
 -static TCHAR *parseListDir(ARGUMENTSINFO *ai) {
 -	BOOL bFiles, bDirs;
 -	WIN32_FIND_DATA ffd;
 -	TCHAR tszFirst[MAX_PATH], *tszRes, *tszSeperator, *tszFilter;
 -
 +static TCHAR *parseListDir(ARGUMENTSINFO *ai)
 +{
  	if (ai->argc < 2)
  		return NULL;
 +	TCHAR tszFirst[MAX_PATH], *tszRes, *tszSeperator, *tszFilter;
  	tszFirst[0] = 0;
  	tszSeperator = _T("\r\n");
  	tszFilter = _T("*");
  	tszRes = NULL;
 -	bFiles = bDirs = TRUE;
 -	if (ai->argc > 1) {
 +
 +	if (ai->argc > 1)
  		_tcsncpy(tszFirst, ai->targv[1], SIZEOF(tszFirst)-1);
 -	}
 -	if (ai->argc > 2) {
 +
 +	if (ai->argc > 2)
  		tszFilter = ai->targv[2];
 -	}
 -	if (ai->argc > 3) {
 +
 +	if (ai->argc > 3)
  		tszSeperator = ai->targv[3];
 -	}
 +
 +	BOOL bFiles = TRUE, bDirs = TRUE;
  	if (ai->argc > 4) {
 -		if (*ai->targv[4] == _T('f')) {
 +		if (*ai->targv[4] == 'f')
  			bDirs = FALSE;
 -		}
 -		if (*ai->targv[4] == _T('d')) {
 +		if (*ai->targv[4] == 'd')
  			bFiles = FALSE;
 -		}
  	}
 -	if (tszFirst[_tcslen(tszFirst)-1] == _T('\\')) {
 +	if (tszFirst[_tcslen(tszFirst)-1] == '\\')
  		_tcsncat(tszFirst, tszFilter, SIZEOF(tszFirst) - _tcslen(tszFirst) - 1);
 -	}
  	else {
  		_tcsncat(tszFirst, _T("\\"), SIZEOF(tszFirst) - _tcslen(tszFirst) - 1);
  		_tcsncat(tszFirst, tszFilter, SIZEOF(tszFirst) - _tcslen(tszFirst) - 1);
  	}
 +
 +	WIN32_FIND_DATA ffd;
  	HANDLE hFind = FindFirstFile(tszFirst, &ffd);
  	if (hFind == INVALID_HANDLE_VALUE) {
  		return NULL;
 @@ -427,79 +422,73 @@ static TCHAR *parseListDir(ARGUMENTSINFO *ai) {  }
  #ifndef WINE
 -static BOOL CALLBACK MyProcessEnumerator(DWORD dwPID, WORD wTask, char *szProcess, LPARAM lParam) {
 -
 +static BOOL CALLBACK MyProcessEnumerator(DWORD dwPID, WORD wTask, char *szProcess, LPARAM lParam)
 +{
  	char **szProc = (char **)lParam;
 -	if ((*szProc != NULL) && (!_stricmp(*szProc, szProcess))) {
 +	if ((*szProc != NULL) && (!_stricmp(*szProc, szProcess)))
  		*szProc = NULL;
 -	}
  	return TRUE;
  }
 -static TCHAR *parseProcessRunning(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 2) {
 +static TCHAR *parseProcessRunning(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 2)
  		return NULL;
 -	}
  	char *szProc, *ref;
  	szProc = ref = mir_u2a(ai->targv[1]);
  	EnumProcs((PROCENUMPROC) MyProcessEnumerator, (LPARAM)&szProc);
 -	if (szProc != NULL) {
 +	if (szProc != NULL)
  		ai->flags |= AIF_FALSE;
 -	}
 +
  	mir_free(ref);
  	return mir_tstrdup(_T(""));
  }
  #endif
 -static TCHAR *parseRegistryValue(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 3) {
 +static TCHAR *parseRegistryValue(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 3)
  		return NULL;
 -	}
  	HKEY hKey;
 -	TCHAR *subKey, *res;
  	DWORD len, type;
  	int err;
 -	TCHAR *key = subKey = mir_tstrdup(ai->targv[1]);
 -	if (subKey == NULL) {
 +	TCHAR *key = mir_tstrdup(ai->targv[1]);
 +	if (key == NULL)
  		return NULL;
 -	}
 -	TCHAR *cur = _tcschr(subKey, _T('\\'));
 -	if (cur == NULL) {
 +
 +	TCHAR *cur = _tcschr(key, '\\');
 +	if (cur == NULL)
  		return NULL;
 -	}
 -	*cur = _T('\0');
 -	if (!_tcscmp(subKey, _T("HKEY_CLASSES_ROOT"))) {
 +
 +	*cur = 0;
 +	if (!_tcscmp(key, _T("HKEY_CLASSES_ROOT")))
  		hKey = HKEY_CLASSES_ROOT;
 -	}
 -	else if (!_tcscmp(subKey, _T("HKEY_CURRENT_USER"))) {
 +	else if (!_tcscmp(key, _T("HKEY_CURRENT_USER")))
  		hKey = HKEY_CURRENT_USER;
 -	}
 -	else if (!_tcscmp(subKey, _T("HKEY_LOCAL_MACHINE"))) {
 +	else if (!_tcscmp(key, _T("HKEY_LOCAL_MACHINE")))
  		hKey = HKEY_LOCAL_MACHINE;
 -	}
 -	else if (!_tcscmp(subKey, _T("HKEY_USERS"))) {
 +	else if (!_tcscmp(key, _T("HKEY_USERS")))
  		hKey = HKEY_USERS;
 -	}
  	else {
  		mir_free(key);
  		return NULL;
  	}
 -	subKey = cur+1;
 +	TCHAR *subKey = cur+1;
  	if (RegOpenKeyEx(hKey, subKey, 0, KEY_READ, &hKey) != ERROR_SUCCESS) {
  		mir_free(key);
  		return NULL;
  	}
  	mir_free(key);
  	len = MAX_REGVALUE_LENGTH+1;
 -	res = (TCHAR*)mir_alloc(len*sizeof(TCHAR));
 -	if (res == NULL) {
 +	TCHAR *res = (TCHAR*)mir_alloc(len*sizeof(TCHAR));
 +	if (res == NULL)
  		return NULL;
 -	}
 +
  	ZeroMemory(res, len);
  	err = RegQueryValueEx(hKey, ai->targv[2], NULL, &type, (BYTE*)res, &len);
  	if ((err != ERROR_SUCCESS) || (type != REG_SZ)) {
 @@ -512,11 +501,12 @@ static TCHAR *parseRegistryValue(ARGUMENTSINFO *ai) {  	return res;
  }
 -static int TsToSystemTime(SYSTEMTIME *sysTime, time_t timestamp) {
 +static int TsToSystemTime(SYSTEMTIME *sysTime, time_t timestamp)
 +{
  	struct tm *pTime = localtime(×tamp);
 -	if (pTime == NULL) {
 +	if (pTime == NULL)
  		return -1;
 -	}
 +
  	ZeroMemory(sysTime, sizeof(SYSTEMTIME));
  	sysTime->wDay = pTime->tm_mday;
  	sysTime->wDayOfWeek = pTime->tm_wday;
 @@ -529,31 +519,30 @@ static int TsToSystemTime(SYSTEMTIME *sysTime, time_t timestamp) {  	return 0;
  }
 -static TCHAR *parseTimestamp2Date(ARGUMENTSINFO *ai) {
 -	if (ai->argc <= 1) {
 +static TCHAR *parseTimestamp2Date(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc <= 1)
  		return NULL;
 -	}
  	SYSTEMTIME sysTime;
  	TCHAR *szFormat;
  	time_t timestamp = ttoi(ai->targv[1]);
 -	if (timestamp == 0) {
 +	if (timestamp == 0)
  		return NULL;
 -	}
 -	if ((ai->argc == 2) || ((ai->argc > 2) && (_tcslen(ai->targv[2]) == 0))) {
 +
 +	if ((ai->argc == 2) || ((ai->argc > 2) && (_tcslen(ai->targv[2]) == 0)))
  		szFormat = NULL;
 -	}
 -	else {
 +	else
  		szFormat = ai->targv[2];
 -	}
 -	if (TsToSystemTime(&sysTime, timestamp) != 0) {
 +
 +	if (TsToSystemTime(&sysTime, timestamp) != 0)
  		return NULL;
 -	}	
 +
  	int len = GetDateFormat(LOCALE_USER_DEFAULT, 0, &sysTime, szFormat, NULL, 0);
  	TCHAR *res = (TCHAR*)mir_calloc((len+1) * sizeof(TCHAR));
 -	if (res == NULL) {
 +	if (res == NULL)
  		return NULL;
 -	}
 +
  	if (GetDateFormat(LOCALE_USER_DEFAULT, 0, &sysTime, szFormat, res, len) == 0) {
  		mir_free(res);
  		return NULL;
 @@ -562,31 +551,30 @@ static TCHAR *parseTimestamp2Date(ARGUMENTSINFO *ai) {  	return res;
  }
 -static TCHAR *parseTimestamp2Time(ARGUMENTSINFO *ai) {
 -	if (ai->argc <= 1) {
 +static TCHAR *parseTimestamp2Time(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc <= 1)
  		return NULL;
 -	}
  	SYSTEMTIME sysTime;
  	time_t timestamp = ttoi(ai->targv[1]);
 -	if (timestamp == 0) {
 +	if (timestamp == 0)
  		return NULL;
 -	}
 +
  	TCHAR *szFormat;
 -	if ((ai->argc == 2) || ((ai->argc > 2) && (_tcslen(ai->targv[2]) == 0))) {
 +	if ((ai->argc == 2) || ((ai->argc > 2) && (_tcslen(ai->targv[2]) == 0)))
  		szFormat = NULL;
 -	}
 -	else {
 +	else
  		szFormat = ai->targv[2];
 -	}
 -	if (TsToSystemTime(&sysTime, timestamp) != 0) {
 +
 +	if (TsToSystemTime(&sysTime, timestamp) != 0)
  		return NULL;
 -	}	
 +
  	int len = GetTimeFormat(LOCALE_USER_DEFAULT, 0, &sysTime, szFormat, NULL, 0);
  	TCHAR *res = (TCHAR*)mir_alloc((len+1)*sizeof(TCHAR));
 -	if (res == NULL) {
 +	if (res == NULL)
  		return NULL;
 -	}
 +
  	if (GetTimeFormat(LOCALE_USER_DEFAULT, 0, &sysTime, szFormat, res, len) == 0) {
  		mir_free(res);
  		return NULL;
 @@ -595,8 +583,8 @@ static TCHAR *parseTimestamp2Time(ARGUMENTSINFO *ai) {  	return res;
  }
 -static TCHAR *parseTextFile(ARGUMENTSINFO *ai) {
 -
 +static TCHAR *parseTextFile(ARGUMENTSINFO *ai)
 +{
  	int lineNo, lineCount, csz;
  	unsigned int icur, bufSz;
  	DWORD fileSz, readSz, totalReadSz;
 @@ -604,14 +592,14 @@ static TCHAR *parseTextFile(ARGUMENTSINFO *ai) {  	TCHAR tUC, *res;
  	BYTE *pBuf, *pCur;
 -	if (ai->argc != 3) {
 +	if (ai->argc != 3)
  		return NULL;
 -	}
 +
  	lineNo = ttoi(ai->targv[2]);
  	HANDLE hFile = CreateFile(ai->targv[1], GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
 -	if (hFile == INVALID_HANDLE_VALUE) {
 +	if (hFile == INVALID_HANDLE_VALUE)
  		return NULL;
 -	}
 +
  	fileSz = GetFileSize(hFile, NULL);
  	if (fileSz == INVALID_FILE_SIZE) {
  		CloseHandle(hFile);
 @@ -623,14 +611,11 @@ static TCHAR *parseTextFile(ARGUMENTSINFO *ai) {  		csz = sizeof(char);
  		SetFilePointer(hFile, 0, NULL, FILE_BEGIN);
  	}
 -	else {
 -
 -		csz = sizeof(TCHAR);
 +	else csz = sizeof(TCHAR);
 -	}
  	totalReadSz = 0;
  	lineCount = 1;
 -	if (*ai->targv[2] == _T('0')) {
 +	if (*ai->targv[2] == '0') {
  		// complete file
  		bufSz = fileSz + csz;
  		pBuf = (PBYTE)mir_calloc(bufSz);
 @@ -644,9 +629,8 @@ static TCHAR *parseTextFile(ARGUMENTSINFO *ai) {  		}
  		CloseHandle(hFile);
 -		if (tUC) {
 +		if (tUC)
  			res = (TCHAR*)pBuf;
 -		}
  		else {
  			res = mir_a2t((char *)pBuf);
  			mir_free(pBuf);
 @@ -657,9 +641,9 @@ static TCHAR *parseTextFile(ARGUMENTSINFO *ai) {  	}
  	bufSz = TXTFILEBUFSZ*csz;
  	pBuf = (PBYTE)mir_calloc(bufSz);
 -	if (pBuf == NULL) {
 +	if (pBuf == NULL)
  		return NULL;
 -	}
 +
  	// count number of lines
  	do {
  		ZeroMemory(pBuf, bufSz);
 @@ -675,27 +659,26 @@ static TCHAR *parseTextFile(ARGUMENTSINFO *ai) {  					lineCount += 1;
  					pCur += csz;
  				}
 -				else if (*(TCHAR*)pCur == _T('\n')) {
 +				else if (*(TCHAR*)pCur == '\n')
  					lineCount += 1;
 -				}
  			}
  			else {
  				if (!strncmp((char *)pCur, "\r\n", 2)) {
  					lineCount += 1;
  					pCur += csz;
  				}
 -				else if (*(char *)pCur == '\n') {
 +				else if (*(char *)pCur == '\n')
  					lineCount += 1;
 -				}
  			}
  		}
 -	} while ( (totalReadSz < fileSz) && (readSz > 0));
 -	if (lineNo < 0) {
 -		lineNo = lineCount + lineNo + 1;
  	}
 -	else if (*ai->targv[2] == _T('r')) {
 +		while ( (totalReadSz < fileSz) && (readSz > 0));
 +
 +	if (lineNo < 0)
 +		lineNo = lineCount + lineNo + 1;
 +	else if (*ai->targv[2] == 'r')
  		lineNo = (rand()%lineCount)+1;
 -	}
 +
  	totalReadSz = 0;
  	lineCount = 1;
  	linePos = 0xFFFFFFFF;
 @@ -708,34 +691,34 @@ static TCHAR *parseTextFile(ARGUMENTSINFO *ai) {  		}
  		totalReadSz += readSz;
  		for (pCur = pBuf;((pCur < pBuf+bufSz) && (linePos == 0xFFFFFFFF));pCur+=csz) {
 -			if (lineCount == lineNo) {
 +			if (lineCount == lineNo)
  				linePos = (tUC?csz:0) + totalReadSz - readSz + pCur - pBuf;
 -			}
 +
  			if (tUC) {
  				if (!_tcsncmp((TCHAR*)pCur, _T("\r\n"), 2)) {
  					lineCount += 1;
  					pCur += csz;
  				}
 -				else if (*(TCHAR*)pCur == _T('\n')) {
 +				else if (*(TCHAR*)pCur == '\n')
  					lineCount += 1;
 -				}
  			}
  			else {
  				if (!strncmp((char *)pCur, "\r\n", 2)) {
  					lineCount += 1;
  					pCur += csz;
  				}
 -				else if (*(char *)pCur == '\n') {
 +				else if (*(char *)pCur == '\n')
  					lineCount += 1;
 -				}
  			}
  		}
 -		if (((tUC) && (*(TCHAR*)pCur == _T('\r'))) || ((!tUC) && (*(char *)pCur == '\r'))) {
 +		if (((tUC) && (*(TCHAR*)pCur == '\r')) || ((!tUC) && (*(char *)pCur == '\r'))) {
  			// in case the \r was at the end of the buffer, \n could be next
  			SetFilePointer(hFile, -1*csz, NULL, FILE_CURRENT);
  			totalReadSz -= csz;
  		}
 -	} while ( (totalReadSz < fileSz) && (readSz > 0));
 +	}
 +		while ( (totalReadSz < fileSz) && (readSz > 0));
 +
  	if (linePos < 0) {
  		CloseHandle(hFile);
  		mir_free(pBuf);
 @@ -755,20 +738,17 @@ static TCHAR *parseTextFile(ARGUMENTSINFO *ai) {  			CloseHandle(hFile);
  			return NULL;
  		}
 -		for (pCur = pBuf;(pCur < pBuf+readSz);pCur+=csz) {
 -			if ((tUC) && ((!_tcsncmp((TCHAR*)pCur, _T("\r\n"), 2)) || (*(TCHAR*)pCur == _T('\n'))) || 
 +		for (pCur = pBuf;(pCur < pBuf+readSz); pCur += csz) {
 +			if ((tUC) && ((!_tcsncmp((TCHAR*)pCur, _T("\r\n"), 2)) || (*(TCHAR*)pCur == '\n')) || 
  				((!tUC) && (((!strncmp((char *)pCur, "\r\n", 2)) || (*(char *)pCur == '\n'))))) {
  				CloseHandle(hFile);
 -				if (tUC) {
 -					*(TCHAR*)pCur = _T('\0');
 -				}
 -				else {
 +				if (tUC)
 +					*(TCHAR*)pCur = 0;
 +				else
  					*(char *)pCur = '\0';
 -				}
 -				if (tUC) {
 +				if (tUC)
  					res = (TCHAR*)pBuf;
 -				}
  				else {
  					res = mir_a2t((char *)pBuf);
  					mir_free(pBuf);
 @@ -793,7 +773,7 @@ static TCHAR *parseTextFile(ARGUMENTSINFO *ai) {  		if (readSz == bufSz-csz) {
  			// buffer must be increased
  			bufSz += TXTFILEBUFSZ*csz;
 -			if (((tUC) && (*(TCHAR*)pCur == _T('\r'))) || ((!tUC) && (*(char *)pCur == '\r'))) {
 +			if (((tUC) && (*(TCHAR*)pCur == '\r')) || ((!tUC) && (*(char *)pCur == '\r'))) {
  				pCur -= csz;
  			}
  			icur = pCur - pBuf;
 @@ -801,63 +781,63 @@ static TCHAR *parseTextFile(ARGUMENTSINFO *ai) {  			pCur = pBuf+icur;
  			ZeroMemory(pCur+1, TXTFILEBUFSZ*csz);
  		}
 -	} while (readSz > 0);
 +	}
 +		while (readSz > 0);
  	CloseHandle(hFile);
  	return NULL;
  }
  #if _WIN32_WINNT>=0x0500
 -static TCHAR *parseUpTime(ARGUMENTSINFO *ai) {
 -
 -	HQUERY hQuery;
 -	PDH_FMT_COUNTERVALUE cValue;
 -	HCOUNTER hCounter;
 -	TCHAR szVal[32];
 -	
 -	if (ai->argc != 1) {
 +static TCHAR *parseUpTime(ARGUMENTSINFO *ai)
 +{
 +	if (ai->argc != 1)
  		return NULL;
 -	}
 +	HQUERY hQuery;
  	PDH_STATUS pdhStatus = PdhOpenQuery (NULL, 0, &hQuery);
 -	if (pdhStatus != ERROR_SUCCESS) {
 +	if (pdhStatus != ERROR_SUCCESS)
  		return NULL;
 -	}
 +
 +	HCOUNTER hCounter;
  	pdhStatus = PdhAddCounter(hQuery, _T("\\System\\System Up Time"), 0, &hCounter);
  	if (pdhStatus != ERROR_SUCCESS) {
 -		pdhStatus = PdhCloseQuery(hQuery);
 +		PdhCloseQuery(hQuery);
  		return NULL;
  	}
  	pdhStatus = PdhCollectQueryData(hQuery);
  	if (pdhStatus != ERROR_SUCCESS) {
  		PdhRemoveCounter(hCounter);
 -		pdhStatus = PdhCloseQuery(hQuery);
 +		PdhCloseQuery(hQuery);
  		return NULL;
  	}
 +
 +	PDH_FMT_COUNTERVALUE cValue;
  	pdhStatus = PdhGetFormattedCounterValue(hCounter, PDH_FMT_LARGE, (LPDWORD)NULL, &cValue);
  	if (pdhStatus != ERROR_SUCCESS) {
  		PdhRemoveCounter(hCounter);
 -		pdhStatus = PdhCloseQuery(hQuery);
 +		PdhCloseQuery(hQuery);
  		return NULL;
  	}
 +
 +	TCHAR szVal[32];
  	mir_sntprintf(szVal, SIZEOF(szVal), _T("%u"), cValue.largeValue);
  	PdhRemoveCounter(hCounter);
 -	pdhStatus = PdhCloseQuery(hQuery);
 -		
 +	PdhCloseQuery(hQuery);
  	return mir_tstrdup(szVal);
  }
  #endif
  static TCHAR *parseUserName(ARGUMENTSINFO *ai) {
 -	if (ai->argc != 1) {
 +	if (ai->argc != 1)
  		return NULL;
 -	}
 +
  	ai->flags |= AIF_DONTPARSE;
  	DWORD len = UNLEN;
  	TCHAR *res = (TCHAR*)mir_alloc(len + 1);
 -	if (res == NULL) {
 +	if (res == NULL)
  		return NULL;
 -	}
 +
  	ZeroMemory(res, len + 1);
  	if (!GetUserName(res, &len)) {
  		mir_free(res);
 @@ -883,11 +863,12 @@ static TCHAR *parseClipboard(ARGUMENTSINFO *ai) {  				size_t len = _tcslen(tszText);
  				res = (TCHAR*)mir_alloc((len + 1) * sizeof(TCHAR));
  				_tcscpy(res, tszText);
 -				res[len] = _T('\0');
 +				res[len] = 0;
  				GlobalUnlock(hData);
  			}
  			CloseClipboard();
 -	}	}
 +		}
 +	}
  	return res;
  }
 diff --git a/plugins/Variables/src/variables.cpp b/plugins/Variables/src/variables.cpp index 7341259e7d..1b94664d1a 100644 --- a/plugins/Variables/src/variables.cpp +++ b/plugins/Variables/src/variables.cpp @@ -50,63 +50,53 @@ TCHAR *getArguments(TCHAR *string, TCHAR ***aargv, int *aargc) {  	argc = brackets = 0;
  	argv = NULL;
  	cur = string;
 -	while (*cur == _T(' ')) {
 +	while (*cur == ' ')
  		cur++;
 -	}
 -	if (*cur != _T('(')) {
 +
 +	if (*cur != '(')
  		return NULL;
 -	}
 +
  	cur++;
  	scur = cur-1;
  	bDontParse = bNewArg = bDone = FALSE;
 -	while ( (!bDone) && (*cur != _T('\0'))) {
 +	while ( (!bDone) && (*cur != 0)) {
  		switch (*cur) {
 -		case _T(DONTPARSE_CHAR):
 -			if (bDontParse) {
 -				bDontParse = FALSE;
 -			}
 -			else {
 -				bDontParse = TRUE;
 -			}
 +		case DONTPARSE_CHAR:
 +			bDontParse = !bDontParse;
  			break;
 -		case _T(','):
 -			if ((!bDontParse) && (brackets == 0)) {
 +		case ',':
 +			if ((!bDontParse) && (brackets == 0))
  				bNewArg = TRUE;
 -			}
  			break;
 -		case _T('('):
 -			if (!bDontParse) {
 +		case '(':
 +			if (!bDontParse)
  				brackets += 1;
 -			}
  			break;
 -		case _T(')'):
 -			if ((brackets == 0) && (!bDontParse)) {
 +		case ')':
 +			if ((brackets == 0) && (!bDontParse))
  				bDone = bNewArg = TRUE;
 -			}
 -			else if ((brackets > 0) && (!bDontParse)) {
 +			else if ((brackets > 0) && (!bDontParse))
  				brackets -= 1;
 -			}
  			break;
  		}
  		if (bNewArg) {
  			argv = ( TCHAR** )mir_realloc(argv, (argc+1)*sizeof(TCHAR*));
 -			if (argv == NULL) {
 +			if (argv == NULL)
  				return NULL;
 -			}
 +
  			if (cur > scur) {
  				argv[argc] = (TCHAR*)mir_alloc((cur-scur+2)*sizeof(TCHAR));
 -				if (argv[argc] == NULL) {
 +				if (argv[argc] == NULL)
  					return NULL;
 -				}
 +
  				memset(argv[argc], '\0', (cur-(scur+1)+1)*sizeof(TCHAR));
  				_tcsncpy(argv[argc], scur+1, cur-(scur+1));
  			}
 -			else {
 -				argv[argc] = mir_tstrdup(_T(""));
 -			}
 +			else argv[argc] = mir_tstrdup(_T(""));
 +
  			argc += 1;
  			bNewArg = FALSE;
  			scur = cur;
 @@ -114,7 +104,7 @@ TCHAR *getArguments(TCHAR *string, TCHAR ***aargv, int *aargc) {  		cur++;
  	}
  	// set args
 -	if (*(cur-1) == _T(')')) {
 +	if (*(cur-1) == ')') {
  		*aargv = argv;
  		*aargc = argc;
  	}
 @@ -135,16 +125,15 @@ TCHAR *getArguments(TCHAR *string, TCHAR ***aargv, int *aargc) {  int isValidTokenChar(TCHAR tc) {
 -	return (
 -		(tc != _T('(')) &&
 -		(tc != _T(',')) &&
 -		(tc != _T(')')) &&
 -		(tc != _T(FIELD_CHAR)) &&
 -		(tc != _T(FUNC_CHAR)) &&
 -		(tc != _T(FUNC_ONCE_CHAR)) &&
 -		(tc != _T('/')) &&
 -		(tc != _T('\0'))
 -		);
 +	return 
 +		(tc != '(') &&
 +		(tc != ',') &&
 +		(tc != ')') &&
 +		(tc != FIELD_CHAR) &&
 +		(tc != FUNC_CHAR) &&
 +		(tc != FUNC_ONCE_CHAR) &&
 +		(tc != '/') &&
 +		(tc != 0);
  }
  /* pretty much the main loop */
 @@ -159,7 +148,7 @@ static TCHAR* replaceDynVars(TCHAR* szTemplate, FORMATINFO* fi)  		**argv, // arguments (dyn alloc)
  		**pargv, //  dyn alloc
  		*token; // variable name (pnt only)
 - 	int argc = 0, i, tokenLen = 0, scurPos, curPos, tmpVarPos;
 + 	int argc = 0, i, scurPos, curPos, tmpVarPos;
  	size_t pos;
  	FORMATINFO afi;
  	TOKENREGISTEREX *tr;
 @@ -187,16 +176,16 @@ static TCHAR* replaceDynVars(TCHAR* szTemplate, FORMATINFO* fi)  		if (argv != NULL)
  			mir_free(argv);
 -		argc = tokenLen = 0;
 +		argc = 0;
  		tcur = scur = token = parsedToken = NULL;
  		pargv = argv = NULL;
  		// new round
 -		if (*cur == _T(DONTPARSE_CHAR)) {
 +		if (*cur == DONTPARSE_CHAR) {
  			MoveMemory(cur, cur+1, (_tcslen(cur+1)+1)*sizeof(TCHAR));
 -			if (*cur == _T(DONTPARSE_CHAR))
 +			if (*cur == DONTPARSE_CHAR)
  				continue;
 -			while ( (*cur != _T(DONTPARSE_CHAR)) && (*cur != _T('\0')))
 +			while ( (*cur != DONTPARSE_CHAR) && (*cur != 0))
  				cur++;
  			MoveMemory(cur, cur+1, (_tcslen(cur+1)+1)*sizeof(TCHAR));
 @@ -209,7 +198,7 @@ static TCHAR* replaceDynVars(TCHAR* szTemplate, FORMATINFO* fi)  			pos = cur-string-1;
  			continue;
  		}
 -		else if (((*cur == _T('\n')) && (gParseOpts.bStripEOL)) || ((*cur == _T(' ')) && (gParseOpts.bStripWS))) {
 +		else if ((*cur == '\n' && gParseOpts.bStripEOL) || (*cur == ' ' && gParseOpts.bStripWS)) {
  			MoveMemory(cur, cur+1, (_tcslen(cur+1)+1)*sizeof(TCHAR));
  			pos = cur - string - 1;
  			continue;
 @@ -217,11 +206,11 @@ static TCHAR* replaceDynVars(TCHAR* szTemplate, FORMATINFO* fi)  		// remove comments
  		else if (!_tcsncmp(cur, _T(COMMENT_STRING), _tcslen(_T(COMMENT_STRING)))) {
  			scur = cur;
 -			while ( (_tcsncmp(cur, _T("\r\n"), 2)) && (*cur != _T('\n')) && (*cur != _T('\0')))
 +			while ( _tcsncmp(cur, _T("\r\n"), 2) && *cur != '\n' && *cur != 0)
  				cur++;
 -			if (*cur == _T('\0')) {
 -				*scur = _T('\0');
 +			if (*cur == 0) {
 +				*scur = 0;
  				string = (TCHAR*)mir_realloc(string, (_tcslen(string)+1)*sizeof(TCHAR));
  				continue;
  			}
 @@ -229,7 +218,7 @@ static TCHAR* replaceDynVars(TCHAR* szTemplate, FORMATINFO* fi)  			pos = scur-string-1;
  			continue;
  		}
 -		else if ((*cur != _T(FIELD_CHAR)) && (*cur != _T(FUNC_CHAR)) && (*cur != _T(FUNC_ONCE_CHAR))) {
 +		else if ((*cur != FIELD_CHAR) && (*cur != FUNC_CHAR) && (*cur != FUNC_ONCE_CHAR)) {
  			if (gParseOpts.bStripAll) {
  				MoveMemory(cur, cur+1, (_tcslen(cur+1)+1)*sizeof(TCHAR));
  				pos = cur - string - 1;
 @@ -254,7 +243,7 @@ static TCHAR* replaceDynVars(TCHAR* szTemplate, FORMATINFO* fi)  		// cur points to FIELD_CHAR or FUNC_CHAR
   		tmpVarPos = -1;
   		tr = NULL;
 - 		if (*cur==_T(FIELD_CHAR)) {
 + 		if (*cur==FIELD_CHAR) {
   			for(i = 0; i < fi->cbTemporaryVarsSize; i += 2) {
   				if (lstrcmp(fi->tszaTemporaryVars[i], token) == 0) {
   					tmpVarPos = i;
 @@ -263,7 +252,7 @@ static TCHAR* replaceDynVars(TCHAR* szTemplate, FORMATINFO* fi)   			}
   		}
   		if (tmpVarPos < 0)
 - 			tr = searchRegister(token, (*cur==_T(FIELD_CHAR))?TRF_FIELD:TRF_FUNCTION);
 + 			tr = searchRegister(token, (*cur==FIELD_CHAR)?TRF_FIELD:TRF_FUNCTION);
   		mir_free(token);
   		if (tmpVarPos < 0 && tr == NULL) {
  			fi->eCount += 1;
 @@ -271,16 +260,16 @@ static TCHAR* replaceDynVars(TCHAR* szTemplate, FORMATINFO* fi)  			continue;
  		}
  		scur = cur; // store this pointer for later use
 -		if (*cur == _T(FIELD_CHAR)) {
 +		if (*cur == FIELD_CHAR) {
   			size_t len = _tcslen(tr != NULL ? tr->tszTokenString : fi->tszaTemporaryVars[tmpVarPos]);
  			cur++;
 - 			if (*(cur + len) != _T(FIELD_CHAR)) { // the next char after the token should be %
 + 			if (*(cur + len) != FIELD_CHAR) { // the next char after the token should be %
  				fi->eCount += 1;
  				continue;
  			}
   			cur += len+1;
  		}
 -		else if ((*cur == _T(FUNC_CHAR)) || (*cur == _T(FUNC_ONCE_CHAR))) {
 +		else if ((*cur == FUNC_CHAR) || (*cur == FUNC_ONCE_CHAR)) {
  			TCHAR *argcur;
  			cur += _tcslen(tr->tszTokenString)+1;
 @@ -323,7 +312,7 @@ static TCHAR* replaceDynVars(TCHAR* szTemplate, FORMATINFO* fi)   			ai.argc = argc+1;
   			ai.targv = pargv;
   			ai.fi = fi;
 - 			if ((*scur == _T(FUNC_ONCE_CHAR)) || (*scur == _T(FIELD_CHAR)))
 + 			if ((*scur == FUNC_ONCE_CHAR) || (*scur == FIELD_CHAR))
   				ai.flags |= AIF_DONTPARSE;
   			parsedToken = parseFromRegister(&ai);
 @@ -358,7 +347,7 @@ static TCHAR* replaceDynVars(TCHAR* szTemplate, FORMATINFO* fi)  		size_t parsedTokenLen = _tcslen(parsedToken);
  		size_t initStrLen = _tcslen(string);
 -		tokenLen = cur-scur;
 +		size_t tokenLen = cur-scur;
  		scurPos = scur-string;
  		curPos = cur-string;
  		if (tokenLen < parsedTokenLen) {
 @@ -390,7 +379,7 @@ static TCHAR* replaceDynVars(TCHAR* szTemplate, FORMATINFO* fi)  	for ( i=0; i < argc; i++ )
  		if (argv[i] != NULL)
 -			mir_free( argv[i] );
 +			mir_free(argv[i]);
  	if (argv != NULL)
  		mir_free(argv);
 @@ -401,8 +390,8 @@ static TCHAR* replaceDynVars(TCHAR* szTemplate, FORMATINFO* fi)  /*
  	MS_VARS_FORMATSTRING
  */
 -static INT_PTR formatStringService(WPARAM wParam, LPARAM lParam) {
 -
 +static INT_PTR formatStringService(WPARAM wParam, LPARAM lParam)
 +{
   	INT_PTR res;
   	int i;
   	BOOL copied;
 @@ -457,25 +446,14 @@ static INT_PTR formatStringService(WPARAM wParam, LPARAM lParam) {  		res = (INT_PTR)mir_u2a(tRes);
  		mir_free(tRes);
  	}
 -	else {
 -		res = (INT_PTR)tRes;
 -	}
 +	else res = (INT_PTR)tRes;
   	if (copied) {
 - 		if (tszFormat != NULL) {
 - 			mir_free(tszFormat);
 - 		}
 - 		if (tszSource != NULL) {
 - 			mir_free(tszSource);
 - 		}
 - 		for(i = 0; i < fi->cbTemporaryVarsSize; i++) {
 - 			if (fi->tszaTemporaryVars != NULL) {
 - 				mir_free(fi->tszaTemporaryVars);
 - 			}
 - 		}
 +		mir_free(tszFormat);
 +		mir_free(tszSource);
 + 		for(i = 0; i < fi->cbTemporaryVarsSize; i++)
 +			mir_free(fi->tszaTemporaryVars);
   	}
 -	//fi->tszFormat = orgFormat;
 -	//fi->tszExtraText = orgSource;
  	if (((FORMATINFO *)wParam)->cbSize == sizeof(FORMATINFOV1)) {
  		((FORMATINFOV1 *)wParam)->eCount = fi->eCount;
 @@ -485,7 +463,6 @@ static INT_PTR formatStringService(WPARAM wParam, LPARAM lParam) {  		((FORMATINFO *)wParam)->eCount = fi->eCount;
  		((FORMATINFO *)wParam)->pCount = fi->pCount;
  	}
 -//	clearVariableRegister();?
  	return res;
  }
 @@ -519,9 +496,7 @@ int setParseOptions(struct ParseOptions *po)  		po->bStripEOL = db_get_b(NULL, MODULENAME, SETTING_STRIPCRLF, 0);
  		po->bStripWS = db_get_b(NULL, MODULENAME, SETTING_STRIPWS, 0);
  	}
 -	else {
 -		po->bStripAll = TRUE;
 -	}
 +	else po->bStripAll = TRUE;
  	return 0;
  }
 diff --git a/plugins/Variables/src/variables.h b/plugins/Variables/src/variables.h index bd92fa74cb..e76387924a 100644 --- a/plugins/Variables/src/variables.h +++ b/plugins/Variables/src/variables.h @@ -77,43 +77,44 @@  #include "parse_variables.h"
  #include "parse_xml.h"
 -#define MODULENAME				"Variables"
 -
 -#define SETTING_STARTUPTEXT		"StartupText"
 -#define SETTING_STRIPCRLF		"StripCRLF"
 -#define SETTING_STRIPWS			"StripWS"
 -#define SETTING_STRIPALL		"StripAll"
 -#define SETTING_PARSEATSTARTUP	"ParseAtStartup"
 -#define SETTING_SPLITTERPOS		"SplitterPos"
 -#define SETTING_SUBJECT			"LastSubject"
 -
 -#define FIELD_CHAR			'%'
 -#define FUNC_CHAR			'?'
 -#define FUNC_ONCE_CHAR		'!'
 -#define DONTPARSE_CHAR		'`'
 -#define TRYPARSE_CHAR_OPEN	'['
 -#define TRYPARSE_CHAR_CLOSE	']'
 -#define COMMENT_STRING		"#"
 +#define MODULENAME "Variables"
 +
 +#define SETTING_STARTUPTEXT    "StartupText"
 +#define SETTING_STRIPCRLF      "StripCRLF"
 +#define SETTING_STRIPWS        "StripWS"
 +#define SETTING_STRIPALL       "StripAll"
 +#define SETTING_PARSEATSTARTUP "ParseAtStartup"
 +#define SETTING_SPLITTERPOS    "SplitterPos"
 +#define SETTING_SUBJECT        "LastSubject"
 +
 +#define FIELD_CHAR          '%'
 +#define FUNC_CHAR           '?'
 +#define FUNC_ONCE_CHAR      '!'
 +#define DONTPARSE_CHAR      '`'
 +#define TRYPARSE_CHAR_OPEN	 '['
 +#define TRYPARSE_CHAR_CLOSE ']'
 +#define COMMENT_STRING      "#"
  // special tokens
 -#define SUBJECT				"subject"
 -#define MIR_EXTRATEXT			"extratext"
 +#define SUBJECT       "subject"
 +#define MIR_EXTRATEXT "extratext"
  // options
 -#define IDT_PARSE			1
 +#define IDT_PARSE 1
 +
  #define DM_SPLITTERMOVED     (WM_USER+15)
  // Messages you can send to the help window:
 -#define VARM_PARSE          (WM_APP+11) // wParam=lParam=0
 -#define VARM_SETINPUTTEXT	(WM_APP+12)
 -#define VARM_GETINPUTTEXT	(WM_APP+13)
 -#define VARM_GETINPUTTEXTLENGTH	(WM_APP+14)
 -#define VARM_SETSUBJECT     (WM_APP+15)
 -#define VARM_GETSUBJECT     (WM_APP+16) // wParam=HANDLE hContact
 -#define VARM_SETEXTRATEXT   (WM_APP+17)
 -#define VARM_GETEXTRATEXT   (WM_APP+18)
 +#define VARM_PARSE              (WM_APP+11) // wParam=lParam=0
 +#define VARM_SETINPUTTEXT       (WM_APP+12)
 +#define VARM_GETINPUTTEXT	     (WM_APP+13)
 +#define VARM_GETINPUTTEXTLENGTH (WM_APP+14)
 +#define VARM_SETSUBJECT         (WM_APP+15)
 +#define VARM_GETSUBJECT         (WM_APP+16) // wParam=HANDLE hContact
 +#define VARM_SETEXTRATEXT       (WM_APP+17)
 +#define VARM_GETEXTRATEXT       (WM_APP+18)
  #define VARM_GETEXTRATEXTLENGTH (WM_APP+19)
 -#define VARM_GETDIALOG		(WM_APP+20)
 +#define VARM_GETDIALOG          (WM_APP+20)
  // if a different struct internally is used, we can use TOKENREGISTEREX
  #define TOKENREGISTEREX TOKENREGISTER
 | 
