free((void *)override_name);
/* accumulate help text in Tcl helptext list. */
- Jim_Obj *helptext=Jim_GetGlobalVariableStr(interp, "ocd_helptext", JIM_ERRMSG);
- if (Jim_IsShared(helptext))
- helptext = Jim_DuplicateObj(interp, helptext);
+ Jim_Obj *helptext=Jim_GetGlobalVariableStr(interp, "ocd_helptext", JIM_ERRMSG);
+ if (Jim_IsShared(helptext))
+ helptext = Jim_DuplicateObj(interp, helptext);
Jim_Obj *cmd_entry=Jim_NewListObj(interp, NULL, 0);
Jim_Obj *cmd_list=Jim_NewListObj(interp, NULL, 0);
return ERROR_INVALID_ARGUMENTS;
/* find command */
- for (c = context->commands; c; c = c->next)
+ c = context->commands;
+
+ while(NULL != c)
{
if (strcmp(name, c->name) == 0)
{
}
else
{
+ /* first element in command list */
context->commands = c->next;
}
/* unregister children */
- if (c->children)
+ while(NULL != c->children)
{
- for (c2 = c->children; c2; c2 = c2->next)
- {
- free(c2->name);
- free(c2);
- }
+ c2 = c->children;
+ c->children = c->children->next;
+ free(c2->name);
+ c2->name = NULL;
+ free(c2);
+ c2 = NULL;
}
/* delete command */
free(c->name);
+ c->name = NULL;
free(c);
+ c = NULL;
+ return ERROR_OK;
}
/* remember the last command for unlinking */
p = c;
+ c = c->next;
}
return ERROR_OK;
* The latter bit isn't precisely neat, but will do for now.
*/
LOG_USER_N("%s", string);
- // We already printed it above
- //command_output_text(context, string);
+ /* We already printed it above */
+ /* command_output_text(context, string); */
free(string);
}
* The latter bit isn't precisely neat, but will do for now.
*/
LOG_USER_N("%s", string);
- // We already printed it above
- //command_output_text(context, string);
+ /* We already printed it above */
+ /* command_output_text(context, string); */
free(string);
}
int reslen;
result = Jim_GetString(Jim_GetResult(interp), &reslen);
- if (reslen) {
- int i;
- char buff[256+1];
- for (i = 0; i < reslen; i += 256)
- {
- int chunk;
- chunk = reslen - i;
- if (chunk > 256)
- chunk = 256;
- strncpy(buff, result+i, chunk);
- buff[chunk] = 0;
- LOG_USER_N("%s", buff);
- }
- LOG_USER_N("%s", "\n");
+ int i;
+ char buff[256+1];
+ for (i = 0; i < reslen; i += 256)
+ {
+ int chunk;
+ chunk = reslen - i;
+ if (chunk > 256)
+ chunk = 256;
+ strncpy(buff, result+i, chunk);
+ buff[chunk] = 0;
+ LOG_USER_N("%s", buff);
}
+ LOG_USER_N("%s", "\n");
+ retval=ERROR_OK;
}
return retval;
}
return NULL;
}
-
static int jim_capture(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
{
if (argc != 2)
Jim_CreateCommand(interp, name, cmd, NULL, NULL);
/* FIX!!! it would be prettier to invoke add_help_text...
- accumulate help text in Tcl helptext list. */
+ * accumulate help text in Tcl helptext list. */
Jim_Obj *helptext=Jim_GetGlobalVariableStr(interp, "ocd_helptext", JIM_ERRMSG);
if (Jim_IsShared(helptext))
helptext = Jim_DuplicateObj(interp, helptext);
Jim_ListAppendElement(interp, helptext, cmd_entry);
}
-
/* return global variable long value or 0 upon failure */
long jim_global_long(const char *variable)
{