| ︙ | | | ︙ | |
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
if( argc==2 ){
objPtr = Tcl_NewStringObj(argv[1], argl[1]);
Tcl_IncrRefCount(objPtr);
rc = Tcl_EvalObjEx(tclInterp, objPtr, 0);
Tcl_DecrRefCount(objPtr);
}else{
int objc = argc-1;
Tcl_Obj **objv = ckalloc((unsigned)(objc * sizeof(Tcl_Obj *)));
int i;
for(i=1; i<argc; i++){
objv[i-1] = Tcl_NewStringObj(argv[i], argl[i]);
Tcl_IncrRefCount(objv[i-1]);
}
objPtr = Tcl_ConcatObj(objc, objv);
Tcl_IncrRefCount(objPtr);
|
|
|
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
if( argc==2 ){
objPtr = Tcl_NewStringObj(argv[1], argl[1]);
Tcl_IncrRefCount(objPtr);
rc = Tcl_EvalObjEx(tclInterp, objPtr, 0);
Tcl_DecrRefCount(objPtr);
}else{
int objc = argc-1;
Tcl_Obj **objv = (Tcl_Obj **)ckalloc((unsigned)(objc * sizeof(Tcl_Obj *)));
int i;
for(i=1; i<argc; i++){
objv[i-1] = Tcl_NewStringObj(argv[i], argl[i]);
Tcl_IncrRefCount(objv[i-1]);
}
objPtr = Tcl_ConcatObj(objc, objv);
Tcl_IncrRefCount(objPtr);
|
| ︙ | | | ︙ | |
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
if( argc==2 ){
objPtr = Tcl_NewStringObj(argv[1], argl[1]);
Tcl_IncrRefCount(objPtr);
rc = Tcl_ExprObj(tclInterp, objPtr, &resultObjPtr);
Tcl_DecrRefCount(objPtr);
}else{
int objc = argc-1;
Tcl_Obj **objv = ckalloc((unsigned)(objc * sizeof(Tcl_Obj *)));
int i;
for(i=1; i<argc; i++){
objv[i-1] = Tcl_NewStringObj(argv[i], argl[i]);
Tcl_IncrRefCount(objv[i-1]);
}
objPtr = Tcl_ConcatObj(objc, objv);
Tcl_IncrRefCount(objPtr);
|
|
|
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
if( argc==2 ){
objPtr = Tcl_NewStringObj(argv[1], argl[1]);
Tcl_IncrRefCount(objPtr);
rc = Tcl_ExprObj(tclInterp, objPtr, &resultObjPtr);
Tcl_DecrRefCount(objPtr);
}else{
int objc = argc-1;
Tcl_Obj **objv = (Tcl_Obj **)ckalloc((unsigned)(objc * sizeof(Tcl_Obj *)));
int i;
for(i=1; i<argc; i++){
objv[i-1] = Tcl_NewStringObj(argv[i], argl[i]);
Tcl_IncrRefCount(objv[i-1]);
}
objPtr = Tcl_ConcatObj(objc, objv);
Tcl_IncrRefCount(objPtr);
|
| ︙ | | | ︙ | |
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
return Th_WrongNumArgs(interp, "tclInvoke command ?arg ...?");
}
tclInterp = (Tcl_Interp *)ctx;
if( !tclInterp ){
Th_ErrorMessage(interp, "invalid Tcl interpreter", (const char *)"", 0);
return TH_ERROR;
}
if (Tcl_GetCommandInfo(tclInterp, argv[1], &cmdInfo) == 0) {
Th_ErrorMessage(interp, "Tcl command not found:", argv[1], argl[1]);
return TH_ERROR;
}
objc = argc-1;
objv = ckalloc((unsigned)(objc * sizeof(Tcl_Obj *)));
for(i=1; i<argc; i++){
objv[i-1] = Tcl_NewStringObj(argv[i], argl[i]);
Tcl_IncrRefCount(objv[i-1]);
}
Tcl_Preserve((ClientData)tclInterp);
rc = cmdInfo.objProc(cmdInfo.objClientData, tclInterp, objc, objv);
for(i=1; i<argc; i++){
Tcl_DecrRefCount(objv[i-1]);
}
ckfree((char *)objv);
objPtr = Tcl_GetObjResult(tclInterp);
zResult = Tcl_GetStringFromObj(objPtr, &nResult);
|
|
|
>
|
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
return Th_WrongNumArgs(interp, "tclInvoke command ?arg ...?");
}
tclInterp = (Tcl_Interp *)ctx;
if( !tclInterp ){
Th_ErrorMessage(interp, "invalid Tcl interpreter", (const char *)"", 0);
return TH_ERROR;
}
if (Tcl_GetCommandInfo(tclInterp, argv[1], &cmdInfo) == 0){
Th_ErrorMessage(interp, "Tcl command not found:", argv[1], argl[1]);
return TH_ERROR;
}
objc = argc-1;
objv = (Tcl_Obj **)ckalloc((unsigned)(objc * sizeof(Tcl_Obj *)));
for(i=1; i<argc; i++){
objv[i-1] = Tcl_NewStringObj(argv[i], argl[i]);
Tcl_IncrRefCount(objv[i-1]);
}
Tcl_Preserve((ClientData)tclInterp);
Tcl_ResetResult(tclInterp);
rc = cmdInfo.objProc(cmdInfo.objClientData, tclInterp, objc, objv);
for(i=1; i<argc; i++){
Tcl_DecrRefCount(objv[i-1]);
}
ckfree((char *)objv);
objPtr = Tcl_GetObjResult(tclInterp);
zResult = Tcl_GetStringFromObj(objPtr, &nResult);
|
| ︙ | | | ︙ | |
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
|
const char *arg;
int rc;
if( objc!=2 ){
Tcl_WrongNumArgs(interp, 1, objv, "arg");
return TCL_ERROR;
}
if( !th1Interp ){
Tcl_AppendResult(interp, "invalid TH1 interpreter", NULL);
return TCL_ERROR;
}
arg = Tcl_GetStringFromObj(objv[1], &nArg);
rc = Th_Eval(th1Interp, 0, arg, nArg);
arg = Th_GetResult(th1Interp, &nArg);
Tcl_SetObjResult(interp, Tcl_NewStringObj(arg, nArg));
return rc;
}
|
<
<
|
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
|
const char *arg;
int rc;
if( objc!=2 ){
Tcl_WrongNumArgs(interp, 1, objv, "arg");
return TCL_ERROR;
}
if( !th1Interp ){
Tcl_AppendResult(interp, "invalid TH1 interpreter", NULL);
return TCL_ERROR;
}
arg = Tcl_GetStringFromObj(objv[1], &nArg);
rc = Th_Eval(th1Interp, 0, arg, nArg);
arg = Th_GetResult(th1Interp, &nArg);
Tcl_SetObjResult(interp, Tcl_NewStringObj(arg, nArg));
return rc;
}
|
| ︙ | | | ︙ | |
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
|
const char *arg;
int rc;
if( objc!=2 ){
Tcl_WrongNumArgs(interp, 1, objv, "arg");
return TCL_ERROR;
}
if( !th1Interp ){
Tcl_AppendResult(interp, "invalid TH1 interpreter", NULL);
return TCL_ERROR;
}
arg = Tcl_GetStringFromObj(objv[1], &nArg);
rc = Th_Expr(th1Interp, arg, nArg);
arg = Th_GetResult(th1Interp, &nArg);
Tcl_SetObjResult(interp, Tcl_NewStringObj(arg, nArg));
return rc;
}
|
<
<
|
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
|
const char *arg;
int rc;
if( objc!=2 ){
Tcl_WrongNumArgs(interp, 1, objv, "arg");
return TCL_ERROR;
}
if( !th1Interp ){
Tcl_AppendResult(interp, "invalid TH1 interpreter", NULL);
return TCL_ERROR;
}
arg = Tcl_GetStringFromObj(objv[1], &nArg);
rc = Th_Expr(th1Interp, arg, nArg);
arg = Th_GetResult(th1Interp, &nArg);
Tcl_SetObjResult(interp, Tcl_NewStringObj(arg, nArg));
return rc;
}
|
| ︙ | | | ︙ | |
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
|
Tcl_Interp *tclInterp = Tcl_CreateInterp();
if( !tclInterp ){
Th_ErrorMessage(interp,
"Could not create Tcl interpreter", (const char *)"", 0);
return TH_ERROR;
}
if( Tcl_Init(tclInterp)!=TCL_OK ){
Th_ErrorMessage(interp,
"Tcl initialization error:", Tcl_GetStringResult(tclInterp), -1);
Tcl_DeleteInterp(tclInterp);
return TH_ERROR;
}
Tcl_CallWhenDeleted(tclInterp, Th1DeleteProc, interp);
Tcl_CreateObjCommand(tclInterp, "th1Eval", Th1EvalObjCmd, interp, NULL);
Tcl_CreateObjCommand(tclInterp, "th1Expr", Th1ExprObjCmd, interp, NULL);
/* Add the Tcl integration commands. */
for(i=0; i<(sizeof(aCommand)/sizeof(aCommand[0])); i++){
void *ctx = aCommand[i].pContext;
/* Use Tcl interpreter for context? */
if( !ctx ) ctx = tclInterp;
Th_CreateCommand(interp, aCommand[i].zName, aCommand[i].xProc, ctx, 0);
}
return TH_OK;
}
|
<
<
<
<
|
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
|
Tcl_Interp *tclInterp = Tcl_CreateInterp();
if( !tclInterp ){
Th_ErrorMessage(interp,
"Could not create Tcl interpreter", (const char *)"", 0);
return TH_ERROR;
}
if( Tcl_Init(tclInterp)!=TCL_OK ){
Th_ErrorMessage(interp,
"Tcl initialization error:", Tcl_GetStringResult(tclInterp), -1);
Tcl_DeleteInterp(tclInterp);
return TH_ERROR;
}
Tcl_CallWhenDeleted(tclInterp, Th1DeleteProc, interp);
Tcl_CreateObjCommand(tclInterp, "th1Eval", Th1EvalObjCmd, interp, NULL);
Tcl_CreateObjCommand(tclInterp, "th1Expr", Th1ExprObjCmd, interp, NULL);
/* Add the Tcl integration commands. */
for(i=0; i<(sizeof(aCommand)/sizeof(aCommand[0])); i++){
void *ctx = aCommand[i].pContext;
/* Use Tcl interpreter for context? */
if( !ctx ) ctx = tclInterp;
Th_CreateCommand(interp, aCommand[i].zName, aCommand[i].xProc, ctx, 0);
}
return TH_OK;
}
|