/* Embedded TCL Sample application demonstrating how to embedd TCL language to your application Written by Jose Mari Reyes web: www.angelfire.com/co2/xtechnica email: jet_reyes@jetemail.net */ #include #include #include #include int SQRT(ClientData Dummy, Tcl_Interp *interp, int argc, char *argv[]) { char buf[50]; if (argc < 2 || argc > 2) { Tcl_ResetResult(interp); interp->result = "usage: SQRT "; return TCL_ERROR; } sprintf(buf, "%lf", sqrt(atof(argv[1]))); Tcl_AppendResult(interp, buf, NULL); return TCL_OK; } int PUTS(ClientData ClientData, Tcl_Interp *interp, int argc, char *argv[]) { int i = 0; if (argc == 1) { Tcl_ResetResult(interp); interp->result = "usage: PUTS string"; return TCL_ERROR; } for (i = 1; i < argc; i++) { printf("%s", argv[i]); printf(" "); } printf("\n"); return TCL_OK; } Tcl_AppInit(Tcl_Interp *interp) { if (Tcl_Init(interp) == TCL_ERROR) return TCL_ERROR; Tcl_CreateCommand(interp, "PUTS", PUTS, (ClientData) NULL, (Tcl_CmdDeleteProc *)NULL); Tcl_CreateCommand(interp, "SQRT", SQRT, (ClientData) NULL, (Tcl_CmdDeleteProc *)NULL); return TCL_OK; } void main(int argc, char *argv[]) { Tcl_Main(argc, argv, Tcl_AppInit); exit(0); }