rem: if (itPtr->adp.flags & ADP_STRICT) {
add: if (itPtr->servPtr->adp.flags & ADP_STRICT) {
context: AdpEval(NsInterp *itPtr, AdpCode *codePtr, Objs *objsPtr){    Tcl_Interp *interp = itPtr->interp;    AdpFrame *framePtr = itPtr->adp.framePtr;    Ns_DString buf;    Tcl_Obj *objPtr;    int nscript, nblocks, result, len, i;    char *ptr, *err;    if (Ns_CheckStack() != NS_OK) {	Tcl_SetResult(interp, "stack overflow", TCL_STATIC);	return TCL_ERROR;    }    ptr = AdpCodeText(codePtr);    nblocks = AdpCodeBlocks(codePtr);    nscript = 0;    for (i = 0; itPtr->adp.exception == ADP_OK && i < nblocks; ++i) {	framePtr->line = AdpCodeLine(codePtr, i);	len = AdpCodeLen(codePtr, i);	if (itPtr->adp.flags & ADP_TRACE) {	    AdpTrace(itPtr, ptr, len);	}	if (len > 0) {	    result = NsAdpAppend(itPtr, ptr, len);	} else {	    len = -len;	    if (itPtr->adp.debugLevel > 0) {    	        result = AdpDebug(itPtr, ptr, len, nscript);	    } else if (objsPtr == NULL) {		result = Tcl_EvalEx(interp, ptr, len, 0);	    } else {		objPtr = objsPtr->objs[nscript];		if (objPtr == NULL) {		    objPtr = Tcl_NewStringObj(ptr, len);		    Tcl_IncrRefCount(objPtr);		    objsPtr->objs[nscript] = objPtr;		}    	        result = Tcl_EvalObjEx(interp, objPtr, 0);	    }	    ++nscript;	}	if (result != TCL_OK && itPtr->adp.exception == ADP_OK) {	    /*	     * Log all error conditions and optionally return	     * the error message within the output stream and/or	     * return immediately.	     */    	    err = AdpLogError(itPtr);	    if (itPtr->adp.flags & ADP_DISPLAY) {		Ns_DStringInit(&buf);		Ns_DStringAppend(&buf, "<br><pre>\n");		Ns_QuoteHtml(&buf, err);		Ns_DStringAppend(&buf, "\n<br></pre>\n");		NsAdpAppend(itPtr, buf.string, buf.length);		Ns_DStringFree(&buf);	    }	    if (itPtr->adp.flags & ADP_STRICT) {		return TCL_ERROR;	    }	}	ptr += len;    }    if (itPtr->adp.exception == ADP_RETURN) {	itPtr->adp.exception = ADP_OK;    }    if (itPtr->adp.exception != ADP_OK) {	return TCL_ERROR;    }    return TCL_OK;}