sync up to latest jim tcl
[openocd.git] / 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 ***

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)