You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.2 KiB
109 lines
3.2 KiB
12 years ago
|
diff --git a/whiptcl.c b/whiptcl.c
|
||
|
index 8688780..7219911 100644
|
||
|
--- a/whiptcl.c
|
||
|
+++ b/whiptcl.c
|
||
|
@@ -137,45 +137,45 @@ static int wtCmd(ClientData clientData, Tcl_Interp * interp, int argc,
|
||
|
|
||
|
if (arg < -1) {
|
||
|
/* this could buffer oveflow, bug we're not setuid so I don't care */
|
||
|
- interp->result = malloc(200);
|
||
|
- interp->freeProc = TCL_DYNAMIC;
|
||
|
- sprintf(interp->result, "%s: %s\n",
|
||
|
+ char *tmp = malloc(200);
|
||
|
+ sprintf(tmp, "%s: %s\n",
|
||
|
poptBadOption(optCon, POPT_BADOPTION_NOALIAS),
|
||
|
poptStrerror(arg));
|
||
|
+ Tcl_SetResult(interp, tmp, TCL_DYNAMIC);
|
||
|
|
||
|
return TCL_ERROR;
|
||
|
}
|
||
|
|
||
|
if (mode == MODE_NONE) {
|
||
|
- interp->result = "no dialog mode was specified";
|
||
|
+ Tcl_SetResultString(interp, "no dialog mode was specified");
|
||
|
return TCL_ERROR;
|
||
|
} else if (rc) {
|
||
|
- interp->result = "multiple modes were specified";
|
||
|
+ Tcl_SetResultString(interp, "multiple modes were specified");
|
||
|
return TCL_ERROR;
|
||
|
}
|
||
|
|
||
|
if (!(text = poptGetArg(optCon))) {
|
||
|
- interp->result = "missing text parameter";
|
||
|
+ Tcl_SetResultString(interp, "missing text parameter");
|
||
|
return TCL_ERROR;
|
||
|
}
|
||
|
|
||
|
if (!(nextArg = poptGetArg(optCon))) {
|
||
|
- interp->result = "height missing";
|
||
|
+ Tcl_SetResultString(interp, "height missing");
|
||
|
return TCL_ERROR;
|
||
|
}
|
||
|
height = strtoul(nextArg, &end, 10);
|
||
|
if (*end) {
|
||
|
- interp->result = "height is not a number";
|
||
|
+ Tcl_SetResultString(interp, "height is not a number");
|
||
|
return TCL_ERROR;
|
||
|
}
|
||
|
|
||
|
if (!(nextArg = poptGetArg(optCon))) {
|
||
|
- interp->result = "width missing";
|
||
|
+ Tcl_SetResultString(interp, "width missing");
|
||
|
return TCL_ERROR;
|
||
|
}
|
||
|
width = strtoul(nextArg, &end, 10);
|
||
|
if (*end) {
|
||
|
- interp->result = "width is not a number";
|
||
|
+ Tcl_SetResultString(interp, "width is not a number");
|
||
|
return TCL_ERROR;
|
||
|
}
|
||
|
|
||
|
@@ -196,33 +196,30 @@ static int wtCmd(ClientData clientData, Tcl_Interp * interp, int argc,
|
||
|
case MODE_YESNO:
|
||
|
rc = messageBox(text, height, width, MSGBOX_YESNO, flags);
|
||
|
if (rc == DLG_OKAY)
|
||
|
- interp->result = "yes";
|
||
|
+ Tcl_SetResultString(interp, "yes");
|
||
|
else
|
||
|
- interp->result = "no";
|
||
|
+ Tcl_SetResultString(interp, "no");
|
||
|
if (rc == DLG_ERROR) rc = 0;
|
||
|
break;
|
||
|
|
||
|
case MODE_INPUTBOX:
|
||
|
rc = inputBox(text, height, width, optCon, flags, &result);
|
||
|
if (rc ==DLG_OKAY) {
|
||
|
- interp->result = result;
|
||
|
- interp->freeProc = TCL_DYNAMIC;
|
||
|
+ Tcl_SetResult(interp, result, TCL_DYNAMIC);
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case MODE_MENU:
|
||
|
rc = listBox(text, height, width, optCon, flags, default_item, &result);
|
||
|
if (rc==DLG_OKAY) {
|
||
|
- interp->result = result;
|
||
|
- interp->freeProc = TCL_DYNAMIC;
|
||
|
+ Tcl_SetResult(interp, result, TCL_DYNAMIC);
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case MODE_RADIOLIST:
|
||
|
rc = checkList(text, height, width, optCon, 1, flags, &selections);
|
||
|
if (rc==DLG_OKAY) {
|
||
|
- interp->result = selections[0];
|
||
|
- interp->freeProc = TCL_DYNAMIC;
|
||
|
+ Tcl_SetResult(interp, selections[0], TCL_DYNAMIC);
|
||
|
|
||
|
free(selections);
|
||
|
}
|
||
|
@@ -247,7 +244,7 @@ static int wtCmd(ClientData clientData, Tcl_Interp * interp, int argc,
|
||
|
newtPopWindow();
|
||
|
|
||
|
if (rc == DLG_ERROR) {
|
||
|
- interp->result = "bad paramter for whiptcl dialog box";
|
||
|
+ Tcl_SetResultString(interp, "bad paramter for whiptcl dialog box");
|
||
|
return TCL_ERROR;
|
||
|
}
|
||
|
|