Posted to tcl by schelte at Wed Oct 25 11:06:26 GMT 2023view pretty
Index: src/htmlcmd.c
==================================================================
--- src/htmlcmd.c
+++ src/htmlcmd.c
@@ -378,13 +378,15 @@
ClientData clientData; /* The HTML widget */
Tcl_Interp *interp; /* The interpreter */
int argc; /* Number of arguments */
const char **argv; /* List of all arguments */
{
+ char buf[32];
HtmlWidget *htmlPtr = (HtmlWidget *) clientData;
if (argc == 2) {
- HtmlComputeHorizontalPosition(htmlPtr, interp->result);
+ HtmlComputeHorizontalPosition(htmlPtr, buf);
+ Tcl_SetResult(interp, buf, TCL_VOLATILE);
}
else {
int count;
double fraction;
int maxX = htmlPtr->maxX;
@@ -434,12 +436,14 @@
Tcl_Interp *interp; /* The interpreter */
int argc; /* Number of arguments */
const char **argv; /* List of all arguments */
{
HtmlWidget *htmlPtr = (HtmlWidget *) clientData;
+ char buf[32];
if (argc == 2) {
- HtmlComputeVerticalPosition(htmlPtr, interp->result);
+ HtmlComputeVerticalPosition(htmlPtr, buf);
+ Tcl_SetResult(interp, buf, TCL_VOLATILE);
}
else if (argc == 3) {
HtmlElement *p = HtmlAttrElem(htmlPtr, "name", argv[2]);
if (p && p->anchor.y == 0) {
HtmlLock(htmlPtr);
@@ -746,11 +750,11 @@
Tcl_AppendResult(interp, "unknown tag: \"", argv[3], "\"", 0);
return TCL_ERROR;
}
if (argc == 4) {
if (htmlPtr->zHandler[type] != 0) {
- interp->result = htmlPtr->zHandler[type];
+ Tcl_SetResult(interp, htmlPtr->zHandler[type], TCL_STATIC);
}
}
else {
if (htmlPtr->zHandler[type] != 0) {
HtmlFree(htmlPtr->zHandler[type]);
@@ -783,11 +787,11 @@
Tcl_AppendResult(interp, "malformed index: \"", argv[2], "\"", 0);
}
return TCL_ERROR;
}
if (!HtmlUnlock(htmlPtr) && p) {
- sprintf(interp->result, "%d.%d", HtmlTokenNumber(p), i);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf("%d.%d", HtmlTokenNumber(p), i));
}
else {
}
return TCL_OK;
}
Index: src/htmlimage.c
==================================================================
--- src/htmlimage.c
+++ src/htmlimage.c
@@ -307,11 +307,11 @@
Tcl_DStringFree(&cmd);
if (HtmlUnlock(htmlPtr)) {
HtmlFree(zSrc);
return 0;
}
- zImageName = htmlPtr->interp->result;
+ zImageName = Tcl_GetStringResult(htmlPtr->interp);
lenSrc = strlen(zSrc);
lenW = strlen(zWidth);
lenH = strlen(zHeight);
pImage = HtmlAlloc(sizeof(HtmlImage) + lenSrc + lenW + lenH + 3);
memset(pImage, 0, sizeof(HtmlImage));
@@ -324,11 +324,11 @@
pImage->zHeight = &pImage->zWidth[lenW + 1];
strcpy(pImage->zHeight, zHeight);
pImage->w = 0;
pImage->h = 0;
if (result == TCL_OK) {
- HtmlAddImages(htmlPtr, p, pImage, htmlPtr->interp->result, 0);
+ HtmlAddImages(htmlPtr, p, pImage, Tcl_GetStringResult(htmlPtr->interp), 0);
}
else {
Tcl_AddErrorInfo(htmlPtr->interp,
"\n (\"-imagecommand\" command executed by html widget)");
Tcl_BackgroundError(htmlPtr->interp);
Index: src/htmlsizer.c
==================================================================
--- src/htmlsizer.c
+++ src/htmlsizer.c
@@ -300,12 +300,12 @@
return COLOR_Unvisited;
}
if (result != TCL_OK) {
goto errorOut;
}
- result = Tcl_GetBoolean(htmlPtr->interp, htmlPtr->interp->result,
- &isVisited);
+ result = Tcl_GetBoolean(htmlPtr->interp,
+ Tcl_GetStringResult(htmlPtr->interp), &isVisited);
if (result != TCL_OK) {
goto errorOut;
}
return isVisited ? COLOR_Visited : COLOR_Unvisited;
@@ -924,11 +924,11 @@
htmlPtr->inParse--;
Tcl_DStringFree(&cmd);
if (HtmlUnlock(htmlPtr))
return;
resstr = Tcl_GetByteArrayObj(Tcl_GetObjResult
- (htmlPtr->interp->result),
+ (htmlPtr->interp),
&reslen);
if (result == 0 && resstr && reslen) {
HtmlElement *b2 = p->pNext, *b3, *ps, *e1 = p, *e2 =
b2, *e3;
if (e2)
@@ -1218,11 +1218,11 @@
htmlPtr->inParse--;
Tcl_DStringFree(&cmd);
if (HtmlUnlock(htmlPtr))
return;
if (result == TCL_OK)
- HtmlSetImageBg(htmlPtr, htmlPtr->interp, htmlPtr->interp->result, p);
+ HtmlSetImageBg(htmlPtr, htmlPtr->interp, Tcl_GetStringResult(htmlPtr->interp), p);
Tcl_ResetResult(htmlPtr->interp);
#endif
}
/*
Index: src/htmlurl.c
==================================================================
--- src/htmlurl.c
+++ src/htmlurl.c
@@ -252,11 +252,11 @@
return zNew;
}
/*
** The input azSeries[] is a sequence of URIs. This command must
-** resolve them all and put the result in the interp->result field
+** resolve them all and put the result in the result value
** of the interpreter associated with the HTML widget. Return
** TCL_OK on success and TCL_ERROR if there is a failure.
**
** This function can cause the HTML widget to be deleted or changed
** arbitrarily.
@@ -427,12 +427,12 @@
HtmlLock(htmlPtr);
result = HtmlCallResolver(htmlPtr, azSeq);
if (HtmlUnlock(htmlPtr))
return 0;
if (result == TCL_OK) {
- zSrc = HtmlAlloc(strlen(htmlPtr->interp->result) + 1);
+ zSrc = HtmlAlloc(strlen(Tcl_GetStringResult(htmlPtr->interp)) + 1);
if (zSrc)
- strcpy(zSrc, htmlPtr->interp->result);
+ strcpy(zSrc, Tcl_GetStringResult(htmlPtr->interp));
}
Tcl_ResetResult(htmlPtr->interp);
return zSrc;
}
Index: src/htmlwidget.c
==================================================================
--- src/htmlwidget.c
+++ src/htmlwidget.c
@@ -1488,11 +1488,11 @@
Tcl_AddErrorInfo(htmlPtr->interp,
"\n (-fontcommand callback of HTML widget)");
Tcl_BackgroundError(htmlPtr->interp);
}
else {
- sprintf(name, "%.100s", htmlPtr->interp->result);
+ sprintf(name, "%.100s", Tcl_GetStringResult(htmlPtr->interp));
}
Tcl_ResetResult(htmlPtr->interp);
}
/*
@@ -2290,13 +2290,13 @@
}
Tcl_InitHashTable(&htmlPtr->tokenHash, TCL_STRING_KEYS);
htmlPtr->tokenCnt = Html_TypeCount;
#ifdef _TCLHTML_
- interp->result = arg1;
+ Tcl_SetResult(interp, arg1, TCL_VOLATILE);
#else
- interp->result = Tk_PathName(htmlPtr->tkwin);
+ Tcl_SetResult(interp, Tk_PathName(htmlPtr->tkwin), TCL_VOLATILE);
#endif
return TCL_OK;
error:
#ifndef _TCLHTML_