]> git.sur5r.net Git - openocd/blobdiff - src/helper/jim.h
Search path fixes for MinGW builds. Courtesy of Dimitar Dimitrov <dinuxbg@gmail...
[openocd] / src / helper / jim.h
index a89500fb15af35a7326bdc3315efad4776b72e16..7ee823523047171f238d1edd870e8002404dea15 100644 (file)
@@ -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 ***