summaryrefslogtreecommitdiff
path: root/plugins/Variables
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Variables')
-rw-r--r--plugins/Variables/src/parse_regexp.cpp4
-rw-r--r--plugins/Variables/src/parse_str.cpp12
-rw-r--r--plugins/Variables/src/variables.cpp50
-rw-r--r--plugins/Variables/src/variables.h3
4 files changed, 24 insertions, 45 deletions
diff --git a/plugins/Variables/src/parse_regexp.cpp b/plugins/Variables/src/parse_regexp.cpp
index 774b64275a..87b3925e2d 100644
--- a/plugins/Variables/src/parse_regexp.cpp
+++ b/plugins/Variables/src/parse_regexp.cpp
@@ -46,7 +46,7 @@ static TCHAR *parseRegExpCheck(ARGUMENTSINFO *ai) {
return NULL;
}
pcre_extra *extra = pcre_study(ppat, 0, &err);
- int nmat = pcre_exec(ppat, extra, arg2, strlen(arg2), 0, 0, offsets, 99);
+ int nmat = pcre_exec(ppat, extra, arg2, (int)strlen(arg2), 0, 0, offsets, 99);
mir_free(arg1);
mir_free(arg2);
if (nmat > 0) {
@@ -96,7 +96,7 @@ static TCHAR *parseRegExpSubstr(ARGUMENTSINFO *ai) {
return NULL;
}
pcre_extra *extra = pcre_study(ppat, 0, &err);
- int nmat = pcre_exec(ppat, extra, arg2, strlen(arg2), 0, 0, offsets, 99);
+ int nmat = pcre_exec(ppat, extra, arg2, (int)strlen(arg2), 0, 0, offsets, 99);
if (nmat >= 0) {
ai->flags &= ~AIF_FALSE;
}
diff --git a/plugins/Variables/src/parse_str.cpp b/plugins/Variables/src/parse_str.cpp
index 8b0740654d..df9eef63c4 100644
--- a/plugins/Variables/src/parse_str.cpp
+++ b/plugins/Variables/src/parse_str.cpp
@@ -199,7 +199,7 @@ static TCHAR *parseLen(ARGUMENTSINFO *ai)
if (ai->argc != 2)
return NULL;
- return itot( _tcslen( ai->targv[1] ));
+ return itot((int)_tcslen( ai->targv[1] ));
}
static TCHAR *parseLineCount(ARGUMENTSINFO *ai)
@@ -462,13 +462,13 @@ static TCHAR *parseScroll(ARGUMENTSINFO *ai) {
}
move = ttoi(ai->targv[3])%_tcslen(ai->targv[1]);
display = ttoi(ai->targv[2]);
- if (display > _tcslen(ai->targv[1])) {
- display = _tcslen(ai->targv[1]);
- }
+ if (display > _tcslen(ai->targv[1]))
+ display = (unsigned)_tcslen(ai->targv[1]);
+
res = (TCHAR*)mir_alloc((2*_tcslen(ai->targv[1])+1)*sizeof(TCHAR));
- if (res == NULL) {
+ if (res == NULL)
return NULL;
- }
+
ZeroMemory(res, (2*_tcslen(ai->targv[1])+1)*sizeof(TCHAR));
_tcscpy(res, ai->targv[1]);
_tcscat(res, ai->targv[1]);
diff --git a/plugins/Variables/src/variables.cpp b/plugins/Variables/src/variables.cpp
index dcdc3c48c0..86c8efe983 100644
--- a/plugins/Variables/src/variables.cpp
+++ b/plugins/Variables/src/variables.cpp
@@ -24,7 +24,6 @@ static BOOL bWarningShown = FALSE; // unicode on ansi warning
/* some handles */
static HANDLE
hFormatStringService,
- hFreeMemoryService,
hRegisterVariableService,
hGetMMIService,
hShowHelpService,
@@ -492,51 +491,30 @@ static INT_PTR formatStringService(WPARAM wParam, LPARAM lParam) {
return res;
}
-TCHAR *formatString(FORMATINFO *fi) {
-
+TCHAR *formatString(FORMATINFO *fi)
+{
/* the service to format a given string */
- TCHAR *string, *formattedString;
-
if (fi->eCount + fi->pCount > 5000) {
fi->eCount += 1;
fi->pCount += 1;
log_debugA("Variables: Overflow protection; %d parses", fi->eCount + fi->pCount);
return NULL;
}
- if ((fi == NULL) || (fi->tszFormat == NULL)) {
- return NULL;
- }
- string = mir_tstrdup(fi->tszFormat);
- if (string == NULL) {
- return NULL;
- }
- formattedString = replaceDynVars(string, fi);
- mir_free(string);
- if (formattedString == NULL) {
+ if ((fi == NULL) || (fi->tszFormat == NULL))
return NULL;
- }
-
- return formattedString;
-}
-/*
- MS_VARS_FREEMEMORY
-*/
-static INT_PTR freeMemory(WPARAM wParam, LPARAM lParam) {
-
- if ((void*)wParam == NULL) {
- return -1;
- }
- mir_free((void*)wParam);
+ mir_ptr<TCHAR> string( mir_tstrdup(fi->tszFormat));
+ if (string == NULL)
+ return NULL;
- return 0;
+ return replaceDynVars(string, fi);
}
-int setParseOptions(struct ParseOptions *po) {
-
- if (po == NULL) {
+int setParseOptions(struct ParseOptions *po)
+{
+ if (po == NULL)
po = &gParseOpts;
- }
+
ZeroMemory(po, sizeof(struct ParseOptions));
if (!db_get_b(NULL, MODULENAME, SETTING_STRIPALL, 0)) {
po->bStripEOL = db_get_b(NULL, MODULENAME, SETTING_STRIPCRLF, 0);
@@ -558,7 +536,6 @@ int LoadVarModule()
setParseOptions(NULL);
hFormatStringService = CreateServiceFunction(MS_VARS_FORMATSTRING, formatStringService);
- hFreeMemoryService = CreateServiceFunction(MS_VARS_FREEMEMORY, freeMemory);
hRegisterVariableService = CreateServiceFunction(MS_VARS_REGISTERTOKEN, registerToken);
// help dialog
hCurSplitNS = LoadCursor(NULL, IDC_SIZENS);
@@ -573,7 +550,7 @@ int LoadVarModule()
hShowHelpExService = CreateServiceFunction(MS_VARS_SHOWHELPEX, showHelpExService);
Icon_Register(hInst, LPGEN("Variables"), &icon, 1);
-
+
hIconsChangedHook = HookEvent(ME_SKIN2_ICONSCHANGED, iconsChanged);
hGetIconService = CreateServiceFunction(MS_VARS_GETSKINITEM, getSkinItemService);
@@ -600,7 +577,7 @@ int LoadVarModule()
fi.cbSize = sizeof(fi);
fi.tszFormat = db_get_tsa(NULL, MODULENAME, SETTING_STARTUPTEXT);
if (fi.tszFormat != NULL) {
- freeMemory((WPARAM)formatString(&fi), 0);
+ mir_free(formatString(&fi));
mir_free(fi.tszFormat);
}
}
@@ -616,7 +593,6 @@ int UnloadVarModule() {
UnhookEvent(hIconsChangedHook);
DestroyServiceFunction(hRegisterVariableService);
- DestroyServiceFunction(hFreeMemoryService);
DestroyServiceFunction(hFormatStringService);
DestroyServiceFunction(hGetMMIService);
DestroyServiceFunction(hShowHelpService);
diff --git a/plugins/Variables/src/variables.h b/plugins/Variables/src/variables.h
index 2029c5d848..3030b41f2e 100644
--- a/plugins/Variables/src/variables.h
+++ b/plugins/Variables/src/variables.h
@@ -17,6 +17,9 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#define _CRT_NON_CONFORMING_SWPRINTFS
+#define _CRT_SECURE_NO_WARNINGS
+
#include <tchar.h>
#include <malloc.h>