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_