/* ARGSUSED */ static int ChanPendingObjCmd( ClientData unused, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { Tcl_Channel chan; int index, mode; static const char *options[] = {"input", "output", NULL}; enum options {PENDING_INPUT, PENDING_OUTPUT}; if (objc != 3) { Tcl_WrongNumArgs(interp, 1, objv, "mode channelId"); return TCL_ERROR; } if (Tcl_GetIndexFromObj(interp, objv[1], options, "mode", 0, &index) != TCL_OK) { return TCL_ERROR; } if (TclGetChannelFromObj(interp, objv[2], &chan, &mode, 0) != TCL_OK) { return TCL_ERROR; } switch ((enum options) index) { case PENDING_INPUT: if ((mode & TCL_READABLE) == 0) { Tcl_SetObjResult(interp, Tcl_NewIntObj(-1)); } else { Tcl_SetObjResult(interp, Tcl_NewIntObj(Tcl_InputBuffered(chan))); } break; case PENDING_OUTPUT: if ((mode & TCL_WRITABLE) == 0) { Tcl_SetObjResult(interp, Tcl_NewIntObj(-1)); } else { Tcl_SetObjResult(interp, Tcl_NewIntObj(Tcl_OutputBuffered(chan))); } break; } return TCL_OK; }
static int TestwinsleepCmd( ClientData clientData, /* Unused */ Tcl_Interp* interp, /* Tcl interpreter */ int objc, /* Parameter count */ Tcl_Obj *const * objv) /* Parameter vector */ { int ms; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "ms"); return TCL_ERROR; } if (Tcl_GetIntFromObj(interp, objv[1], &ms) != TCL_OK) { return TCL_ERROR; } Sleep((DWORD) ms); return TCL_OK; }
static int idle(ClientData UNUSED(clientData), Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) { Togl *togl; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "pathName"); return TCL_ERROR; } if (Togl_GetToglFromObj(interp, objv[1], &togl) != TCL_OK) { return TCL_ERROR; } (void)Togl_GetClientData(togl); Togl_PostRedisplay(togl); return TCL_OK; }
static int Tcl_ALS_Prolog_Read_Call(ClientData prolog_world, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) { AP_World *w = prolog_world; const char *s; AP_Obj call; AP_Result result; if (objc < 3) { Tcl_WrongNumArgs(interp, 1, objv, (char *)"termString ?varName ...?"); return TCL_ERROR; } s = Tcl_GetStringFromObj(objv[2], NULL); call = AP_NewInitStructure(w, AP_NewSymbolFromStr(w, "read_eval_results"), 2, AP_NewUIAFromStr(w, s), AP_UNBOUND_OBJ); result = AP_Call(w, tcltk_module, &call); if (result == AP_SUCCESS) { int i; AP_Obj j, vars = AP_GetArgument(w, call, 2); for (i = 3, j = vars; !AP_IsNullList(w, j) && i < objc; i++, j = AP_ListTail(w, j)) { Tcl_ObjSetVar2(interp, objv[i], NULL, PrologToTclObj(w, AP_ListHead(w, j), interp), 0); } if (i < objc) { int k; Tcl_ResetResult(interp); Tcl_AppendResult(interp, "unset variables: ", NULL); for (k = i; k < objc; k++) { Tcl_AppendResult(interp, Tcl_GetStringFromObj(objv[k], NULL), NULL); } return TCL_ERROR; } } return PrologToTclResult(interp, w, result); }
/* * Destroy a Duktape interpreter heap. * Return value: nothing. * Side effects: destroys a Duktape interpreter heap. */ static int Close_Cmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { duk_context *ctx; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, USAGE_CLOSE); return TCL_ERROR; } ctx = parse_id(cdata, interp, objv[1], 1); if (ctx == NULL) { return TCL_ERROR; } duk_destroy_heap(ctx); return TCL_OK; }
/************************************************************************* * FUNCTION : RPMTransaction_Set::Test * * ARGUMENTS : none * * RETURNS : TCL_OK or TCL_ERROR * * EXCEPTIONS : none * * PURPOSE : Check the transaction set for problems * *************************************************************************/ int RPMTransaction_Set::Test(Tcl_Interp *interp,int objc, Tcl_Obj *const objv[]) { if (objc != 2) { Tcl_WrongNumArgs(interp,2,objv,0); return TCL_ERROR; } rpmtsSetFlags(transaction,(rpmtransFlags)(RPMTRANS_FLAG_TEST )); int status = rpmtsRun(transaction,0,(rpmprobFilterFlags)prob_flags); // Assume we've dirtied the database RPM_for_TCL::DBs_are_dirty(); if (status == 0) return TCL_OK; else if (status < 0) return Error("Error on test: %d %s",status,rpmErrorString()); return Problems(interp); }
/* $pw insert $index $slave ?-option value ...? * Insert new slave, or move existing one. */ static int PanedInsertCommand( void *recordPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { Paned *pw = recordPtr; int nSlaves = Ttk_NumberSlaves(pw->paned.mgr); int srcIndex, destIndex; Tk_Window slaveWindow; if (objc < 4) { Tcl_WrongNumArgs(interp, 2,objv, "index slave ?-option value ...?"); return TCL_ERROR; } slaveWindow = Tk_NameToWindow( interp, Tcl_GetString(objv[3]), pw->core.tkwin); if (!slaveWindow) { return TCL_ERROR; } if (!strcmp(Tcl_GetString(objv[2]), "end")) { destIndex = Ttk_NumberSlaves(pw->paned.mgr); } else if (TCL_OK != Ttk_GetSlaveIndexFromObj( interp,pw->paned.mgr,objv[2],&destIndex)) { return TCL_ERROR; } srcIndex = Ttk_SlaveIndex(pw->paned.mgr, slaveWindow); if (srcIndex < 0) { /* New slave: */ return AddPane(interp, pw, destIndex, slaveWindow, objc-4, objv+4); } /* else -- move existing slave: */ if (destIndex >= nSlaves) destIndex = nSlaves - 1; Ttk_ReorderSlave(pw->paned.mgr, srcIndex, destIndex); return objc == 4 ? TCL_OK : ConfigurePane(interp, pw, Ttk_SlaveData(pw->paned.mgr, destIndex), Ttk_SlaveWindow(pw->paned.mgr, destIndex), objc-4,objv+4); }
int gnoclSessionCmd( ClientData data, Tcl_Interp *interp, int objc, Tcl_Obj * const objv[] ) { static const char *cmd[] = { "configure", NULL }; enum optIdx { ConfigureIdx }; int idx; static GnomeClient *client = NULL; if( client == NULL ) client = gnome_master_client(); if( client == NULL ) { Tcl_SetResult( interp, "Unable to initialize session.", TCL_STATIC ); return TCL_ERROR; } if( objc < 2 ) { Tcl_WrongNumArgs( interp, 1, objv, "command" ); return TCL_ERROR; } if( Tcl_GetIndexFromObj( interp, objv[1], cmd, "command", TCL_EXACT, &idx ) != TCL_OK ) return TCL_ERROR; switch( idx ) { case ConfigureIdx: { int ret = TCL_ERROR; if( gnoclParseAndSetOptions( interp, objc - 1, objv + 1, sessionOptions, G_OBJECT( client ) ) == TCL_OK ) { ret = configure( interp, client, sessionOptions ); } gnoclClearOptions( sessionOptions ); return ret; } break; } return TCL_OK; }
static int PutCmd(Tcl_Interp *interp, pvInfo *info, int objc, Tcl_Obj * const objv[]) { if (objc != 5 && objc != 3) { Tcl_WrongNumArgs(interp, 2, objv, "<value> ?-command <cmdprefix>?"); return TCL_ERROR; } int callback = (objc == 5); Tcl_Obj *value = objv[2]; Tcl_Obj *cmdopt = NULL; Tcl_Obj *cmdprefix = NULL; if (callback) { cmdopt = objv[3]; cmdprefix = objv[4]; /* check that the option is -command */ if (strcmp(Tcl_GetString(cmdopt), "-command") != 0) { Tcl_SetObjResult(interp, Tcl_NewStringObj("Unknown option, must be -command", -1)); return TCL_ERROR; } } /* Convert value into the EPICS record format */ void *dbr; chtype puttype; if (GetEpicsValueFromObj(interp, value, info->type, info->nElem, &puttype, &dbr) != TCL_OK) { return TCL_ERROR; } //printf("Data type %d, native %d\n", (int)puttype, (int)(info->type)); /* Issue put operation */ if (callback) { putEvent *ev = ckalloc(sizeof(putEvent)); ev->info = info; ev->putCmdPrefix = cmdprefix; if (cmdprefix) Tcl_IncrRefCount(ev->putCmdPrefix); ev->code = TCL_OK; int code = ca_array_put_callback (puttype, info->nElem, info->id, dbr, putHandler, ev); CACHECKTCL(ckfree(dbr); Tcl_DecrRefCount(ev->putCmdPrefix); ckfree(ev)); } else {
/* ARGSUSED */ int Tcl_FlushObjCmd( ClientData dummy, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { Tcl_Obj *chanObjPtr; Tcl_Channel chan; /* The channel to flush on. */ int mode; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "channelId"); return TCL_ERROR; } chanObjPtr = objv[1]; if (TclGetChannelFromObj(interp, chanObjPtr, &chan, &mode, 0) != TCL_OK) { return TCL_ERROR; } if ((mode & TCL_WRITABLE) == 0) { Tcl_AppendResult(interp, "channel \"", TclGetString(chanObjPtr), "\" wasn't opened for writing", NULL); return TCL_ERROR; } if (Tcl_Flush(chan) != TCL_OK) { /* * TIP #219. * Capture error messages put by the driver into the bypass area and * put them into the regular interpreter result. Fall back to the * regular message if nothing was found in the bypass. */ if (!TclChanCaughtErrorBypass(interp, chan)) { Tcl_AppendResult(interp, "error flushing \"", TclGetString(chanObjPtr), "\": ", Tcl_PosixError(interp), NULL); } return TCL_ERROR; } return TCL_OK; }
static int itemBounds( Tcl_Interp *interp, int objc, Tcl_Obj * const objv[], CanvasParams *param, GPtrArray *items ) { if( objc != 3 ) { Tcl_WrongNumArgs( interp, 2, objv, NULL ); return TCL_ERROR; } if( items != NULL && items->len > 0 ) { Tcl_Obj *resList; double xMin, yMin, xMax, yMax; guint k; Gnocl_CanvasItemInfo *info = GET_INFO( items, 0 ); gnome_canvas_item_get_bounds( info->item, &xMin, &yMin, &xMax, &yMax ); for( k = 1; k < items->len; ++k ) { double x1, y1, x2, y2; info = GET_INFO( items, k ); gnome_canvas_item_get_bounds( info->item, &x1, &y1, &x2, &y2 ); if( x1 < xMin ) xMin = x1; if( y1 < yMin ) yMin = y1; if( x2 > xMax ) xMax = x2; if( y2 > yMax ) yMax = y2; } resList = Tcl_NewListObj( 0, NULL ); Tcl_ListObjAppendElement( interp, resList, Tcl_NewDoubleObj( xMin ) ); Tcl_ListObjAppendElement( interp, resList, Tcl_NewDoubleObj( yMin ) ); Tcl_ListObjAppendElement( interp, resList, Tcl_NewDoubleObj( xMax ) ); Tcl_ListObjAppendElement( interp, resList, Tcl_NewDoubleObj( yMax ) ); Tcl_SetObjResult( interp, resList ); } return TCL_OK; }
static int command_sendheader(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { ngx_http_request_t *r = getrequest(clientData); int rc; if (objc != 1) { Tcl_WrongNumArgs(interp, 1, objv, NULL); return TCL_ERROR; } rc = ngx_http_send_header(r); if (rc != NGX_OK) { ngx_tcl_set_error_code(interp, rc); return TCL_ERROR; } return TCL_OK; }
static int zap(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) { WHIRLYGIZMO *Wg; Togl *togl; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "pathName"); return TCL_ERROR; } if (Togl_GetToglFromObj(interp, objv[1], &togl) != TCL_OK) { return TCL_ERROR; } Wg = (WHIRLYGIZMO *) Togl_GetClientData(togl); free(Wg); return TCL_OK; }
static int Ta4r_Uniform_Cmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { int ubound; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "upperbound"); return TCL_ERROR; } if (Tcl_GetIntFromObj(interp, objv[1], &ubound) != TCL_OK) { return TCL_ERROR; } if (ubound < 0) { Tcl_SetObjResult(interp, Tcl_ObjPrintf("bad value \"%d\" for upperbound: must be >= 0", ubound)); return TCL_ERROR; } Tcl_SetObjResult(interp, Tcl_NewWideIntObj(arc4random_uniform(ubound))); return TCL_OK; }
int GenericValueToTclObj( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "GenVal"); return TCL_ERROR; } LLVMGenericValueRef arg = nullptr; if (GetLLVMGenericValueRefFromObj(interp, objv[1], arg) != TCL_OK) return TCL_ERROR; Tcl_Obj *rt = (Tcl_Obj *) LLVMGenericValueToPointer(arg); Tcl_SetObjResult(interp, rt); return TCL_OK; }
static int Pkgd_SubObjCmd( ClientData dummy, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { int first, second; if (objc != 3) { Tcl_WrongNumArgs(interp, 1, objv, "num num"); return TCL_ERROR; } if ((Tcl_GetIntFromObj(interp, objv[1], &first) != TCL_OK) || (Tcl_GetIntFromObj(interp, objv[2], &second) != TCL_OK)) { return TCL_ERROR; } Tcl_SetObjResult(interp, Tcl_NewIntObj(first - second)); return TCL_OK; }
/* $pw forget $pane */ static int PanedForgetCommand( void *recordPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { Paned *pw = recordPtr; int paneIndex; if (objc != 3) { Tcl_WrongNumArgs(interp, 2,objv, "pane"); return TCL_ERROR; } if (TCL_OK != Ttk_GetSlaveIndexFromObj( interp, pw->paned.mgr, objv[2], &paneIndex)) { return TCL_ERROR; } Ttk_ForgetSlave(pw->paned.mgr, paneIndex); return TCL_OK; }
static int isst_zap(ClientData UNUSED(clientData), Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) { struct isst_s *isst; Togl *togl; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "pathName"); return TCL_ERROR; } if (Togl_GetToglFromObj(interp, objv[1], &togl) != TCL_OK) { return TCL_ERROR; } isst = (struct isst_s *) Togl_GetClientData(togl); bu_free(isst, "isst free"); return TCL_OK; }
/* + style lookup $style -option ?statespec? ?defaultValue? */ static int StyleLookupCmd( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { StylePackageData *pkgPtr = clientData; Ttk_Theme theme = pkgPtr->currentTheme; Ttk_Style style = NULL; const char *optionName; Ttk_State state = 0ul; Tcl_Obj *result; if (objc < 4 || objc > 6) { Tcl_WrongNumArgs(interp, 2, objv, "style -option ?state? ?default?"); return TCL_ERROR; } style = Ttk_GetStyle(theme, Tcl_GetString(objv[2])); if (!style) { return TCL_ERROR; } optionName = Tcl_GetString(objv[3]); if (objc >= 5) { Ttk_StateSpec stateSpec; /* @@@ SB: Ttk_GetStateFromObj(); 'offbits' spec is ignored */ if (Ttk_GetStateSpecFromObj(interp, objv[4], &stateSpec) != TCL_OK) { return TCL_ERROR; } state = stateSpec.onbits; } result = Ttk_QueryStyle(style, NULL,NULL, optionName, state); if (result == NULL && objc >= 6) { /* Use caller-supplied fallback */ result = objv[5]; } if (result) { Tcl_SetObjResult(interp, result); } return TCL_OK; }
static int gdb_reggroup (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj **objv) { struct reggroup *group; char *groupname; int regnum, num; if (objc != 1) { Tcl_WrongNumArgs (interp, 0, objv, "gdb_reginfo group groupname"); return TCL_ERROR; } groupname = Tcl_GetStringFromObj (objv[0], NULL); if (groupname == NULL) { gdbtk_set_result (interp, "could not read groupname"); return TCL_ERROR; } for (group = reggroup_next (get_current_arch (), NULL); group != NULL; group = reggroup_next (get_current_arch (), group)) { if (strcmp (groupname, reggroup_name (group)) == 0) break; } if (group == NULL) return TCL_ERROR; num = (gdbarch_num_regs (get_current_arch ()) + gdbarch_num_pseudo_regs (get_current_arch ())); for (regnum = 0; regnum < num; regnum++) { if (gdbarch_register_reggroup_p (get_current_arch (), regnum, group)) Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, Tcl_NewIntObj (regnum)); } return TCL_OK; }
/* ARGSUSED */ int Tcl_EofObjCmd( ClientData unused, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { Tcl_Channel chan; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "channelId"); return TCL_ERROR; } if (TclGetChannelFromObj(interp, objv[1], &chan, NULL, 0) != TCL_OK) { return TCL_ERROR; } Tcl_SetObjResult(interp, Tcl_NewBooleanObj(Tcl_Eof(chan))); return TCL_OK; }
static int getCurSize( Tcl_Interp *interp, GtkWidget *widget, int objc, Tcl_Obj * const objv[] ) { Tcl_Obj *res; if( objc != 2 ) { Tcl_WrongNumArgs( interp, 1, objv, NULL ); return TCL_ERROR; } res = Tcl_NewListObj( 0, NULL ); Tcl_ListObjAppendElement( interp, res, Tcl_NewIntObj( widget->allocation.x ) ); Tcl_ListObjAppendElement( interp, res, Tcl_NewIntObj( widget->allocation.y ) ); Tcl_ListObjAppendElement( interp, res, Tcl_NewIntObj( widget->allocation.width ) ); Tcl_ListObjAppendElement( interp, res, Tcl_NewIntObj( widget->allocation.height ) ); Tcl_SetObjResult( interp, res ); return TCL_OK; }
/* $pw add window [ options ... ] */ static int PanedAddCommand( void *recordPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { Paned *pw = recordPtr; Tk_Window slaveWindow; if (objc < 3) { Tcl_WrongNumArgs(interp, 2, objv, "window"); return TCL_ERROR; } slaveWindow = Tk_NameToWindow( interp, Tcl_GetString(objv[2]), pw->core.tkwin); if (!slaveWindow) { return TCL_ERROR; } return AddPane(interp, pw, Ttk_NumberSlaves(pw->paned.mgr), slaveWindow, objc - 3, objv + 3); }
static int itemDelete( Tcl_Interp *interp, int objc, Tcl_Obj * const objv[], CanvasParams *param, GPtrArray *items ) { if( objc != 3 ) { Tcl_WrongNumArgs( interp, 3, objv, NULL ); return TCL_ERROR; } if( items != NULL ) { int k; for( k = 0; k < items->len; ++k ) { Gnocl_CanvasItemInfo *info = GET_INFO( items, k ); gtk_object_destroy( GTK_OBJECT( info->item ) ); } } return TCL_OK; }
/* void draw_box_f (ESContext *esContext, float x1, float y1, float x2, float y2, uint8_t r, uint8_t g, uint8_t b, uint8_t a) { */ int tclcmd_draw_box_f (ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { if (objc != 9) { Tcl_WrongNumArgs (interp, 1, objv, "{ESContext *esContext} { float x1} { float y1} { float x2} { float y2} { uint8_t r} { uint8_t g} { uint8_t b} { uint8_t a}"); return TCL_ERROR; } double arg_x1; if (Tcl_GetDoubleFromObj(interp, objv[1], (double *)&arg_x1) != TCL_OK) { return TCL_ERROR; } double arg_y1; if (Tcl_GetDoubleFromObj(interp, objv[2], (double *)&arg_y1) != TCL_OK) { return TCL_ERROR; } double arg_x2; if (Tcl_GetDoubleFromObj(interp, objv[3], (double *)&arg_x2) != TCL_OK) { return TCL_ERROR; } double arg_y2; if (Tcl_GetDoubleFromObj(interp, objv[4], (double *)&arg_y2) != TCL_OK) { return TCL_ERROR; } uint8_t arg_r; if (Tcl_GetIntFromObj(interp, objv[5], (int *)&arg_r) != TCL_OK) { return TCL_ERROR; } uint8_t arg_g; if (Tcl_GetIntFromObj(interp, objv[6], (int *)&arg_g) != TCL_OK) { return TCL_ERROR; } uint8_t arg_b; if (Tcl_GetIntFromObj(interp, objv[7], (int *)&arg_b) != TCL_OK) { return TCL_ERROR; } uint8_t arg_a; if (Tcl_GetIntFromObj(interp, objv[8], (int *)&arg_a) != TCL_OK) { return TCL_ERROR; } draw_box_f(GlobalesContext, (float)arg_x1, (float)arg_y1, (float)arg_x2, (float)arg_y2, arg_r, arg_g, arg_b, arg_a); return TCL_OK; }
/* void draw_box (ESContext *esContext, int16_t x, int16_t y, int16_t w, int16_t h, uint8_t r, uint8_t g, uint8_t b, uint8_t a) { */ int tclcmd_draw_box (ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { if (objc != 9) { Tcl_WrongNumArgs (interp, 1, objv, "{ESContext *esContext} { int16_t x} { int16_t y} { int16_t w} { int16_t h} { uint8_t r} { uint8_t g} { uint8_t b} { uint8_t a}"); return TCL_ERROR; } int16_t arg_x; if (Tcl_GetIntFromObj(interp, objv[1], (int *)&arg_x) != TCL_OK) { return TCL_ERROR; } int16_t arg_y; if (Tcl_GetIntFromObj(interp, objv[2], (int *)&arg_y) != TCL_OK) { return TCL_ERROR; } int16_t arg_w; if (Tcl_GetIntFromObj(interp, objv[3], (int *)&arg_w) != TCL_OK) { return TCL_ERROR; } int16_t arg_h; if (Tcl_GetIntFromObj(interp, objv[4], (int *)&arg_h) != TCL_OK) { return TCL_ERROR; } uint8_t arg_r; if (Tcl_GetIntFromObj(interp, objv[5], (int *)&arg_r) != TCL_OK) { return TCL_ERROR; } uint8_t arg_g; if (Tcl_GetIntFromObj(interp, objv[6], (int *)&arg_g) != TCL_OK) { return TCL_ERROR; } uint8_t arg_b; if (Tcl_GetIntFromObj(interp, objv[7], (int *)&arg_b) != TCL_OK) { return TCL_ERROR; } uint8_t arg_a; if (Tcl_GetIntFromObj(interp, objv[8], (int *)&arg_a) != TCL_OK) { return TCL_ERROR; } draw_box(GlobalesContext, arg_x, arg_y, arg_w, arg_h, arg_r, arg_g, arg_b, arg_a); return TCL_OK; }
static int aetolookat(ClientData UNUSED(clientData), Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) { struct isst_s *isst; Togl *togl; vect_t vecdfoc; double x, y; double az, el; double mag_vec; if (objc < 4) { Tcl_WrongNumArgs(interp, 1, objv, "pathName az el"); return TCL_ERROR; } if (Togl_GetToglFromObj(interp, objv[1], &togl) != TCL_OK) return TCL_ERROR; isst = (struct isst_s *) Togl_GetClientData(togl); if (Tcl_GetDoubleFromObj(interp, objv[2], &x) != TCL_OK) return TCL_ERROR; if (Tcl_GetDoubleFromObj(interp, objv[3], &y) != TCL_OK) return TCL_ERROR; mag_vec = DIST_PT_PT(isst->camera.pos, isst->camera.focus); VSUB2(vecdfoc, isst->camera.pos, isst->camera.focus); VUNITIZE(vecdfoc); AZEL_FROM_V3DIR(az, el, vecdfoc); az = az * -DEG2RAD + x; el = el * -DEG2RAD + y; V3DIR_FROM_AZEL(vecdfoc, az, el); VUNITIZE(vecdfoc); VSCALE(vecdfoc, vecdfoc, mag_vec); VADD2(isst->camera.focus, isst->camera.pos, vecdfoc); isst->dirty = 1; return TCL_OK; }
/* void draw_line (ESContext *esContext, int16_t px1, int16_t py1, int16_t px2, int16_t py2, uint8_t r, uint8_t g, uint8_t b, uint8_t a) { */ int tclcmd_draw_line (ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { if (objc != 9) { Tcl_WrongNumArgs (interp, 1, objv, "{ESContext *esContext} { int16_t px1} { int16_t py1} { int16_t px2} { int16_t py2} { uint8_t r} { uint8_t g} { uint8_t b} { uint8_t a}"); return TCL_ERROR; } int16_t arg_px1; if (Tcl_GetIntFromObj(interp, objv[1], (int *)&arg_px1) != TCL_OK) { return TCL_ERROR; } int16_t arg_py1; if (Tcl_GetIntFromObj(interp, objv[2], (int *)&arg_py1) != TCL_OK) { return TCL_ERROR; } int16_t arg_px2; if (Tcl_GetIntFromObj(interp, objv[3], (int *)&arg_px2) != TCL_OK) { return TCL_ERROR; } int16_t arg_py2; if (Tcl_GetIntFromObj(interp, objv[4], (int *)&arg_py2) != TCL_OK) { return TCL_ERROR; } uint8_t arg_r; if (Tcl_GetIntFromObj(interp, objv[5], (int *)&arg_r) != TCL_OK) { return TCL_ERROR; } uint8_t arg_g; if (Tcl_GetIntFromObj(interp, objv[6], (int *)&arg_g) != TCL_OK) { return TCL_ERROR; } uint8_t arg_b; if (Tcl_GetIntFromObj(interp, objv[7], (int *)&arg_b) != TCL_OK) { return TCL_ERROR; } uint8_t arg_a; if (Tcl_GetIntFromObj(interp, objv[8], (int *)&arg_a) != TCL_OK) { return TCL_ERROR; } draw_line(GlobalesContext, arg_px1, arg_py1, arg_px2, arg_py2, arg_r, arg_g, arg_b, arg_a); return TCL_OK; }
static int PrefixAllObjCmd( ClientData clientData, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { int tableObjc, result, t, length, elemLength; const char *string, *elemString; Tcl_Obj **tableObjv, *resultPtr; if (objc != 3) { Tcl_WrongNumArgs(interp, 1, objv, "table string"); return TCL_ERROR; } result = Tcl_ListObjGetElements(interp, objv[1], &tableObjc, &tableObjv); if (result != TCL_OK) { return result; } resultPtr = Tcl_NewListObj(0, NULL); string = Tcl_GetStringFromObj(objv[2], &length); for (t = 0; t < tableObjc; t++) { elemString = Tcl_GetStringFromObj(tableObjv[t], &elemLength); /* * A prefix cannot match if it is longest. */ if (length <= elemLength) { if (TclpUtfNcmp2(elemString, string, length) == 0) { Tcl_ListObjAppendElement(interp, resultPtr, tableObjv[t]); } } } Tcl_SetObjResult(interp, resultPtr); return TCL_OK; }
static int TestfindwindowObjCmd( ClientData clientData, /* Main window for application. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument values. */ { const TCHAR *title = NULL, *class = NULL; Tcl_DString titleString, classString; HWND hwnd = NULL; int r = TCL_OK; Tcl_DStringInit(&classString); Tcl_DStringInit(&titleString); if (objc < 2 || objc > 3) { Tcl_WrongNumArgs(interp, 1, objv, "title ?class?"); return TCL_ERROR; } title = Tcl_WinUtfToTChar(Tcl_GetString(objv[1]), -1, &titleString); if (objc == 3) { class = Tcl_WinUtfToTChar(Tcl_GetString(objv[2]), -1, &classString); } hwnd = FindWindow(class, title); if (hwnd == NULL) { Tcl_SetObjResult(interp, Tcl_NewStringObj("failed to find window: ", -1)); AppendSystemError(interp, GetLastError()); r = TCL_ERROR; } else { Tcl_SetObjResult(interp, Tcl_NewLongObj(PTR2INT(hwnd))); } Tcl_DStringFree(&titleString); Tcl_DStringFree(&classString); return r; }