X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=inline;f=src%2Fhelper%2Fjim.h;h=7ee823523047171f238d1edd870e8002404dea15;hb=a79adf1383e61bd5fe6d90518a4e34b4e3e592bc;hp=a89500fb15af35a7326bdc3315efad4776b72e16;hpb=e9926c60bcbbe7135f163674c17e7601e3295dbc;p=openocd diff --git a/src/helper/jim.h b/src/helper/jim.h index a89500fb..7ee82352 100644 --- a/src/helper/jim.h +++ b/src/helper/jim.h @@ -164,6 +164,7 @@ extern "C" { #define JIM_CONTINUE 4 #define JIM_EVAL 5 #define JIM_EXIT 6 +#define JIM_ERR_ADDSTACK 7 #define JIM_MAX_NESTING_DEPTH 10000 /* default max nesting depth */ /* Some function get an integer argument with flags to change @@ -530,6 +531,7 @@ typedef struct Jim_Interp { struct Jim_HashTable sharedStrings; /* Shared Strings hash table */ Jim_Obj *stackTrace; /* Stack trace object. */ Jim_Obj *unknown; /* Unknown command cache */ + int unknown_called; /* The unknown command has been invoked */ int errorFlag; /* Set if an error occurred during execution. */ int evalRetcodeLevel; /* Level where the last return with code JIM_EVAL happened. */ @@ -560,6 +562,7 @@ typedef struct Jim_Interp { * cached can no longer considered valid. */ #define Jim_InterpIncrProcEpoch(i) (i)->procEpoch++ #define Jim_SetResultString(i,s,l) Jim_SetResult(i, Jim_NewStringObj(i,s,l)) +#define Jim_SetResultInt(i,intval) Jim_SetResult(i, Jim_NewIntObj(i,intval)) #define Jim_SetEmptyResult(i) Jim_SetResult(i, (i)->emptyObj) #define Jim_GetResult(i) ((i)->result) #define Jim_CmdPrivData(i) ((i)->cmdPrivData) @@ -675,6 +678,9 @@ JIM_STATIC char * JIM_API(Jim_StrDup) (const char *s); /* evaluation */ JIM_STATIC int JIM_API(Jim_Eval)(Jim_Interp *interp, const char *script); +/* in C code, you can do this and get better error messages */ +/* Jim_Eval_Named( interp, "some tcl commands", __FILE__, __LINE__ ); */ +JIM_STATIC int JIM_API(Jim_Eval_Named)(Jim_Interp *interp, const char *script,const char *filename, int lineno); JIM_STATIC int JIM_API(Jim_EvalGlobal)(Jim_Interp *interp, const char *script); JIM_STATIC int JIM_API(Jim_EvalFile)(Jim_Interp *interp, const char *filename); JIM_STATIC int JIM_API(Jim_EvalObj) (Jim_Interp *interp, Jim_Obj *scriptObjPtr); @@ -733,6 +739,8 @@ JIM_STATIC Jim_Obj * JIM_API(Jim_NewStringObjNoAlloc) (Jim_Interp *interp, char *s, int len); JIM_STATIC void JIM_API(Jim_AppendString) (Jim_Interp *interp, Jim_Obj *objPtr, const char *str, int len); +JIM_STATIC void JIM_API(Jim_AppendString_sprintf) (Jim_Interp *interp, Jim_Obj *objPtr, + const char *fmt, ... ); JIM_STATIC void JIM_API(Jim_AppendObj) (Jim_Interp *interp, Jim_Obj *objPtr, Jim_Obj *appendObjPtr); JIM_STATIC void JIM_API(Jim_AppendStrings) (Jim_Interp *interp, @@ -1169,6 +1177,7 @@ static void Jim_InitExtension(Jim_Interp *interp) JIM_GET_API(Alloc); JIM_GET_API(Free); JIM_GET_API(Eval); + JIM_GET_API(Eval_Named); JIM_GET_API(EvalGlobal); JIM_GET_API(EvalFile); JIM_GET_API(EvalObj); @@ -1195,6 +1204,7 @@ static void Jim_InitExtension(Jim_Interp *interp) JIM_GET_API(NewStringObj); JIM_GET_API(NewStringObjNoAlloc); JIM_GET_API(AppendString); + JIM_GET_API(AppendString_sprintf); JIM_GET_API(AppendObj); JIM_GET_API(AppendStrings); JIM_GET_API(StringEqObj); @@ -1289,7 +1299,7 @@ static void Jim_InitExtension(Jim_Interp *interp) JIM_GET_API(Nvp_name2value); JIM_GET_API(Nvp_name2value_nocase); JIM_GET_API(Nvp_name2value_simple); - + JIM_GET_API(Nvp_value2name); JIM_GET_API(Nvp_value2name_simple); @@ -1331,7 +1341,6 @@ static __inline__ void Jim_InitEmbedded(void) { #endif /* __JIM__H */ - /* * Local Variables: *** * c-basic-offset: 4 ***