/* FIXME: needs comment: */ void add_dump_command(const char *name, void (*func)(const char *args, const char *mode), const char *descr) { struct cmd_list_element *c; struct dump_context *d; c = add_cmd(name, all_commands, NULL, descr, &dump_cmdlist); c->completer = filename_completer; d = XMALLOC(struct dump_context); d->func = func; d->mode = FOPEN_WB; set_cmd_context(c, d); c->func = call_dump_func; c = add_cmd(name, all_commands, NULL, descr, &append_cmdlist); c->completer = filename_completer; d = XMALLOC(struct dump_context); d->func = func; d->mode = FOPEN_AB; set_cmd_context(c, d); c->func = call_dump_func; /* Replace "Dump " at start of docstring with "Append " (borrowed from [deleted] deprecated_add_show_from_set). */ if ((c->doc[0] == 'W') && (c->doc[1] == 'r') && (c->doc[2] == 'i') && (c->doc[3] == 't') && (c->doc[4] == 'e') && (c->doc[5] == ' ')) c->doc = concat("Append ", c->doc + 6, (char *)NULL); }
static void add_setshow_generic (enum var_types param_type, enum command_class cmd_class, char *cmd_name, param_smob *self, char *set_doc, char *show_doc, char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list, struct cmd_list_element **set_cmd, struct cmd_list_element **show_cmd) { struct cmd_list_element *param = NULL; const char *tmp_name = NULL; switch (param_type) { case var_boolean: add_setshow_boolean_cmd (cmd_name, cmd_class, &self->value.intval, set_doc, show_doc, help_doc, set_func, show_func, set_list, show_list); break; case var_auto_boolean: add_setshow_auto_boolean_cmd (cmd_name, cmd_class, &self->value.autoboolval, set_doc, show_doc, help_doc, set_func, show_func, set_list, show_list); break; case var_uinteger: add_setshow_uinteger_cmd (cmd_name, cmd_class, &self->value.uintval, set_doc, show_doc, help_doc, set_func, show_func, set_list, show_list); break; case var_zinteger: add_setshow_zinteger_cmd (cmd_name, cmd_class, &self->value.intval, set_doc, show_doc, help_doc, set_func, show_func, set_list, show_list); break; case var_zuinteger: add_setshow_zuinteger_cmd (cmd_name, cmd_class, &self->value.uintval, set_doc, show_doc, help_doc, set_func, show_func, set_list, show_list); break; case var_zuinteger_unlimited: add_setshow_zuinteger_unlimited_cmd (cmd_name, cmd_class, &self->value.intval, set_doc, show_doc, help_doc, set_func, show_func, set_list, show_list); break; case var_string: add_setshow_string_cmd (cmd_name, cmd_class, &self->value.stringval, set_doc, show_doc, help_doc, set_func, show_func, set_list, show_list); break; case var_string_noescape: add_setshow_string_noescape_cmd (cmd_name, cmd_class, &self->value.stringval, set_doc, show_doc, help_doc, set_func, show_func, set_list, show_list); break; case var_optional_filename: add_setshow_optional_filename_cmd (cmd_name, cmd_class, &self->value.stringval, set_doc, show_doc, help_doc, set_func, show_func, set_list, show_list); break; case var_filename: add_setshow_filename_cmd (cmd_name, cmd_class, &self->value.stringval, set_doc, show_doc, help_doc, set_func, show_func, set_list, show_list); break; case var_enum: add_setshow_enum_cmd (cmd_name, cmd_class, self->enumeration, &self->value.cstringval, set_doc, show_doc, help_doc, set_func, show_func, set_list, show_list); /* Initialize the value, just in case. */ self->value.cstringval = self->enumeration[0]; break; default: gdb_assert_not_reached ("bad param_type value"); } /* Lookup created parameter, and register Scheme object against the parameter context. Perform this task against both lists. */ tmp_name = cmd_name; param = lookup_cmd (&tmp_name, *show_list, "", 0, 1); gdb_assert (param != NULL); set_cmd_context (param, self); *set_cmd = param; tmp_name = cmd_name; param = lookup_cmd (&tmp_name, *set_list, "", 0, 1); gdb_assert (param != NULL); set_cmd_context (param, self); *show_cmd = param; }