* command.c (add_cmd, add_show_from_set): Insert new commands in

alphabetical order.
This commit is contained in:
Jason Molenda 1997-09-27 00:34:41 +00:00
parent 6eedf3f4e5
commit 36ad9bd5b6
2 changed files with 49 additions and 8 deletions

View File

@ -1,3 +1,8 @@
Fri Sep 26 17:32:22 1997 Jason Molenda (crash@pern.cygnus.com)
* command.c (add_cmd, add_show_from_set): Insert new commands in
alphabetical order.
Fri Sep 26 12:22:00 1997 Mark Alexander <marka@cygnus.com>
* config/mips-tm-mips.h (mips_extra_func_info): New frame_adjust

View File

@ -61,7 +61,10 @@ print_doc_line PARAMS ((GDB_FILE *, char *));
It should start with ? for a command that is an abbreviation
or with * for a command that most users don't need to know about.
Add this command to command list *LIST. */
Add this command to command list *LIST.
Returns a pointer to the added command (not necessarily the head
of *LIST). */
struct cmd_list_element *
add_cmd (name, class, fun, doc, list)
@ -73,9 +76,26 @@ add_cmd (name, class, fun, doc, list)
{
register struct cmd_list_element *c
= (struct cmd_list_element *) xmalloc (sizeof (struct cmd_list_element));
struct cmd_list_element *p;
delete_cmd (name, list);
c->next = *list;
if (*list == NULL || STRCMP ((*list)->name, name) >= 0)
{
c->next = *list;
*list = c;
}
else
{
p = *list;
while (p->next && STRCMP (p->next->name, name) <= 0)
{
p = p->next;
}
c->next = p->next;
p->next = c;
}
c->name = name;
c->class = class;
c->function.cfunc = fun;
@ -93,7 +113,7 @@ add_cmd (name, class, fun, doc, list)
c->user_commands = NULL;
c->hookee = NULL;
c->cmd_pointer = NULL;
*list = c;
return c;
}
@ -268,7 +288,8 @@ add_set_enum_cmd (name, class, enumlist, var, doc, list)
}
/* Where SETCMD has already been added, add the corresponding show
command to LIST and return a pointer to it. */
command to LIST and return a pointer to the added command (not
necessarily the head of LIST). */
struct cmd_list_element *
add_show_from_set (setcmd, list)
struct cmd_list_element *setcmd;
@ -276,6 +297,7 @@ add_show_from_set (setcmd, list)
{
struct cmd_list_element *showcmd =
(struct cmd_list_element *) xmalloc (sizeof (struct cmd_list_element));
struct cmd_list_element *p;
memcpy (showcmd, setcmd, sizeof (struct cmd_list_element));
delete_cmd (showcmd->name, list);
@ -288,8 +310,22 @@ add_show_from_set (setcmd, list)
else
fprintf_unfiltered (gdb_stderr, "GDB internal error: Bad docstring for set command\n");
showcmd->next = *list;
*list = showcmd;
if (*list == NULL || STRCMP ((*list)->name, showcmd->name) >= 0)
{
showcmd->next = *list;
*list = showcmd;
}
else
{
p = *list;
while (p->next && STRCMP (p->next->name, showcmd->name) <= 0)
{
p = p->next;
}
showcmd->next = p->next;
p->next = showcmd;
}
return showcmd;
}
@ -649,7 +685,7 @@ lookup_cmd_1 (text, clist, result_list, ignore_help_classes)
}
else if (c == (struct cmd_list_element *) -1)
{
/* We've gotten this far properley, but the next step
/* We've gotten this far properly, but the next step
is ambiguous. We need to set the result list to the best
we've found (if an inferior hasn't already set it). */
if (result_list != NULL)
@ -739,7 +775,7 @@ lookup_cmd (line, list, cmdtype, allow_unknown, ignore_help_classes)
q = (char *) alloca (p - *line + 1);
strncpy (q, *line, p - *line);
q[p-*line] = '\0';
q[p - *line] = '\0';
undef_cmd_error (cmdtype, q);
}
}