diff options
author | treectrl <treectrl> | 2005-07-23 00:35:53 (GMT) |
---|---|---|
committer | treectrl <treectrl> | 2005-07-23 00:35:53 (GMT) |
commit | c67b4ff5d5b830b14c292afeeb66d0ad5840f0c1 (patch) | |
tree | 85c5cf3db3402561c2a449d0e9d402acc4728edd /generic | |
parent | 3119a6b4195b4f8ae8c338788103160833936983 (diff) | |
download | tktreectrl-c67b4ff5d5b830b14c292afeeb66d0ad5840f0c1.zip tktreectrl-c67b4ff5d5b830b14c292afeeb66d0ad5840f0c1.tar.gz tktreectrl-c67b4ff5d5b830b14c292afeeb66d0ad5840f0c1.tar.bz2 |
Don't overwrite object result of interpreter in case it is shared.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/qebind.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/generic/qebind.c b/generic/qebind.c index 1c96e9a..1e85f64 100644 --- a/generic/qebind.c +++ b/generic/qebind.c @@ -5,7 +5,7 @@ * * Copyright (c) 2002-2005 Tim Baker * - * RCS: @(#) $Id: qebind.c,v 1.13 2005/07/10 22:15:50 treectrl Exp $ + * RCS: @(#) $Id: qebind.c,v 1.14 2005/07/23 00:35:53 treectrl Exp $ */ /* @@ -1330,11 +1330,11 @@ static int ParseEventDescription(BindingTable *bindPtr, char *eventString, Pattern *patPtr, EventInfo **eventInfoPtr, Detail **detailPtr) { Tcl_Interp *interp = bindPtr->interp; - Tcl_Obj *resultPtr = Tcl_GetObjResult(interp); Tcl_HashEntry *hPtr; char eventName[FIELD_SIZE], detailName[FIELD_SIZE]; EventInfo *eiPtr; Detail *dPtr; + char errorMsg[512]; if (eventInfoPtr) *eventInfoPtr = NULL; if (detailPtr) *detailPtr = NULL; @@ -1348,8 +1348,8 @@ static int ParseEventDescription(BindingTable *bindPtr, char *eventString, hPtr = Tcl_FindHashEntry(&bindPtr->eventTableByName, eventName); if (hPtr == NULL) { - Tcl_AppendStringsToObj(resultPtr, "unknown event \"", - eventName, "\"", NULL); + sprintf(errorMsg, "unknown event \"%.128s\"", eventName); + Tcl_SetResult(interp, errorMsg, TCL_VOLATILE); return TCL_ERROR; } eiPtr = (EventInfo *) Tcl_GetHashValue(hPtr); @@ -1368,8 +1368,9 @@ static int ParseEventDescription(BindingTable *bindPtr, char *eventString, } if (dPtr == NULL) { - Tcl_AppendStringsToObj(resultPtr, "unknown detail \"", - detailName, "\" for event \"", eiPtr->name, "\"", NULL); + sprintf(errorMsg, "unknown detail \"%.128s\" for event \"%.128s\"", + detailName, eiPtr->name); + Tcl_SetResult(interp, errorMsg, TCL_VOLATILE); return TCL_ERROR; } patPtr->detail = dPtr->code; @@ -1839,7 +1840,7 @@ QE_ConfigureCmd(QE_BindingTable bindingTable, int objOffset, int objc, switch (index) { case 0: /* -active */ - Tcl_SetBooleanObj(Tcl_GetObjResult(interp), valuePtr->active); + Tcl_SetObjResult(interp, Tcl_NewBooleanObj(valuePtr->active)); break; } return TCL_OK; |