-/*
- * TODO: to be removed after v0.12.0
- * workaround for syntax change of "expr" in jimtcl 0.81
- * replace "expr" with openocd version that prints the deprecated msg
- */
-struct jim_scriptobj {
- void *token;
- Jim_Obj *filename_obj;
- int len;
- int subst_flags;
- int in_use;
- int firstline;
- int linenr;
- int missing;
-};
-
-static int jim_expr_command(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
-{
- if (argc == 2)
- return Jim_EvalExpression(interp, argv[1]);
-
- if (argc > 2) {
- Jim_Obj *obj = Jim_ConcatObj(interp, argc - 1, argv + 1);
- Jim_IncrRefCount(obj);
- const char *s = Jim_String(obj);
- struct jim_scriptobj *script = Jim_GetIntRepPtr(interp->currentScriptObj);
- if (interp->currentScriptObj == interp->emptyObj ||
- strcmp(interp->currentScriptObj->typePtr->name, "script") ||
- script->subst_flags ||
- script->filename_obj == interp->emptyObj)
- LOG_WARNING("DEPRECATED! use 'expr { %s }' not 'expr %s'", s, s);
- else
- LOG_WARNING("DEPRECATED! (%s:%d) use 'expr { %s }' not 'expr %s'",
- Jim_String(script->filename_obj), script->linenr, s, s);
- int retcode = Jim_EvalExpression(interp, obj);
- Jim_DecrRefCount(interp, obj);
- return retcode;
- }
-
- Jim_WrongNumArgs(interp, 1, argv, "expression ?...?");
- return JIM_ERR;
-}
-
-static const struct command_registration expr_handler[] = {
- {
- .name = "expr",
- .jim_handler = jim_expr_command,
- .mode = COMMAND_ANY,
- .help = "",
- .usage = "",
- },
- COMMAND_REGISTRATION_DONE
-};
-
-static int workaround_for_jimtcl_expr(struct command_context *cmd_ctx)
-{
- return register_commands(cmd_ctx, NULL, expr_handler);
-}
-