summaryrefslogtreecommitdiff
path: root/app/bin/param.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/bin/param.c')
-rw-r--r--app/bin/param.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/app/bin/param.c b/app/bin/param.c
index 47399ee..2f54d77 100644
--- a/app/bin/param.c
+++ b/app/bin/param.c
@@ -588,10 +588,10 @@ EXPORT void ParamLoadControl(
case PD_STRING:
if (p->oldD.s)
MyFree( p->oldD.s );
- if (p->context) {
- p->oldD.s = MyMalloc((uint32_t)p->context);
- strncpy(p->oldD.s, (char*)p->valueP, (uint32_t)p->context);
- *(p->oldD.s + (uint32_t)p->context - 1) = '\0';
+ if (p->max_string) {
+ p->oldD.s = MyMalloc(p->max_string);
+ strncpy(p->oldD.s, (char*)p->valueP, p->max_string-1);
+ *(p->oldD.s + (uint32_t)p->max_string - 1) = '\0';
wStringSetValue((wString_p)p->control, (char*)p->oldD.s);
}
else {
@@ -732,12 +732,11 @@ EXPORT long ParamUpdate(
p->oldD.s = MyStrdup( stringV );
if ( p->valueP ) {
if (p->option & PDO_STRINGLIMITLENGTH ) {
- strncpy((char*)p->valueP, stringV, (uint32_t)p->context);
- ((char *)p->valueP)[(uint32_t)p->context - 1] = '\0';
- if (strlen(stringV) > (uint32_t)p->context) {
- NoticeMessage2(0, MSG_ENTERED_STRING_TRUNCATED, _("Ok"), NULL, (uint32_t)p->context);
+ strncpy((char*)p->valueP, stringV, p->max_string-1);
+ ((char *)p->valueP)[p->max_string - 1] = '\0';
+ if (strlen(stringV) > p->max_string-1) {
+ NoticeMessage2(0, MSG_ENTERED_STRING_TRUNCATED, _("Ok"), NULL, p->max_string-1);
}
-
}
else {
strcpy((char*)p->valueP, stringV);
@@ -916,10 +915,16 @@ static long ParamIntRestore(
break;
case PD_STRING:
if ( oldP->s && strcmp((char*)p->valueP,oldP->s) != 0 ) {
- /*if ((p->option&PDO_NORSTUPD)==0)*/
+ if (p->max_string && (p->option & PDO_STRINGLIMITLENGTH)) {
+ ((char*)p->valueP)[0] = '\0';
+ strncat((char*)p->valueP,oldP->s,p->max_string-1);
+ if (p->control)
+ wStringSetValue( (wString_p)p->control, (char*)p->valueP );
+ } else {
strcpy( (char*)p->valueP, oldP->s );
- if (p->control)
- wStringSetValue( (wString_p)p->control, oldP->s );
+ if (p->control)
+ wStringSetValue( (wString_p)p->control, oldP->s );
+ }
change |= (1L<<inx);
}
break;
@@ -2211,7 +2216,7 @@ static void ParamPositionControl(
ctlH = winH - (pd->group->origH-drawDataP->height);
else
ctlH = wControlGetHeight( pd->control );
- wDrawSetSize( (wDraw_p)pd->control, ctlW, ctlH );
+ wDrawSetSize( (wDraw_p)pd->control, ctlW, ctlH, NULL );
if ( drawDataP->redraw )
drawDataP->redraw( (wDraw_p)pd->control, pd->context, ctlW, ctlH );
break;
@@ -2486,6 +2491,7 @@ SkipControl:
static void ParamDlgProc(
wWin_p win,
winProcEvent e,
+ void * refresh,
void * data )
{
paramGroup_p pg = (paramGroup_p)data;