#include // for TCL constants only #include #include int myinit_helper(Tcl_Interp *interp) { if (Tcl_Init(interp) == TCL_ERROR) { printf("Error while Tcl_Init\n"); exit(-1); } { int res; //char *p = "\n set subtxt [util strsep $txt_copy $off \" \t\n.!?,:;\"'`<>(){}[]@#$%^&*+-=/\"]\n"; char *p = "set x \" xxx\"'`xxxxxxx\"\n"; Tcl_Parse parse; res = Tcl_ParseCommand(interp, p, strlen(p), 0, &parse); // <---- ***** statement that's failing w/out the error message if (res == TCL_ERROR) { const char *msg = Tcl_GetVar(interp, "errorInfo", TCL_GLOBAL_ONLY); printf("Tcl_ParseCommand: error: %s\n", msg ? msg : ""); } else { printf("Tcl_ParseCommand: success\n"); } } return TCL_OK; } main(int argc, char *argv[]) { Tcl_Main(argc, argv, &myinit_helper); }