From eacc63d1fe3c0a5f6b982575867258650f98119b Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 13 Sep 2013 19:26:02 +0000 Subject: code cleaning git-svn-id: http://svn.miranda-ng.org/main/trunk@6056 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Variables/src/help.cpp | 20 +- plugins/Variables/src/parse_alias.cpp | 175 ++++++------- plugins/Variables/src/parse_alias.h | 7 - plugins/Variables/src/parse_external.cpp | 116 ++++----- plugins/Variables/src/parse_inet.cpp | 77 ++---- plugins/Variables/src/parse_logic.cpp | 253 +++++++------------ plugins/Variables/src/parse_math.cpp | 118 ++++----- plugins/Variables/src/parse_miranda.cpp | 17 +- plugins/Variables/src/parse_regexp.cpp | 83 ++---- plugins/Variables/src/parse_str.cpp | 418 +++++++++++++------------------ plugins/Variables/src/parse_system.cpp | 401 ++++++++++++++--------------- plugins/Variables/src/variables.cpp | 137 +++++----- plugins/Variables/src/variables.h | 59 ++--- 13 files changed, 797 insertions(+), 1084 deletions(-) (limited to 'plugins/Variables/src') 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 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 _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;iargc;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;iszAlias, 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;jargc; 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_ 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;iargc;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;iargc;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;(iargc)&&(ai->flags&AIF_FALSE);i++) { + for(unsigned i=1; (iargc) && (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;iargc;i++) { + for (unsigned int i=1;iargc;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;iargc != 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;iargc;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;iargc;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;iargc;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;iargc < 3) { +static TCHAR *parseSub(ARGUMENTSINFO *ai) +{ + if (ai->argc < 3) return NULL; - } + int result = ttoi(ai->targv[1]); - for (i=2;iargc;i++) { + for (unsigned i=2;iargc;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;itargv[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;iargc;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;iargc;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;iargc;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;iargc;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;iargc != 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 -- cgit v1.2.3