* 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> Fri Sep 26 12:22:00 1997 Mark Alexander <marka@cygnus.com>
* config/mips-tm-mips.h (mips_extra_func_info): New frame_adjust * 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 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. 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 * struct cmd_list_element *
add_cmd (name, class, fun, doc, list) add_cmd (name, class, fun, doc, list)
@ -73,9 +76,26 @@ add_cmd (name, class, fun, doc, list)
{ {
register struct cmd_list_element *c register struct cmd_list_element *c
= (struct cmd_list_element *) xmalloc (sizeof (struct cmd_list_element)); = (struct cmd_list_element *) xmalloc (sizeof (struct cmd_list_element));
struct cmd_list_element *p;
delete_cmd (name, list); 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->name = name;
c->class = class; c->class = class;
c->function.cfunc = fun; c->function.cfunc = fun;
@ -93,7 +113,7 @@ add_cmd (name, class, fun, doc, list)
c->user_commands = NULL; c->user_commands = NULL;
c->hookee = NULL; c->hookee = NULL;
c->cmd_pointer = NULL; c->cmd_pointer = NULL;
*list = c;
return 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 /* 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 * struct cmd_list_element *
add_show_from_set (setcmd, list) add_show_from_set (setcmd, list)
struct cmd_list_element *setcmd; struct cmd_list_element *setcmd;
@ -276,6 +297,7 @@ add_show_from_set (setcmd, list)
{ {
struct cmd_list_element *showcmd = struct cmd_list_element *showcmd =
(struct cmd_list_element *) xmalloc (sizeof (struct cmd_list_element)); (struct cmd_list_element *) xmalloc (sizeof (struct cmd_list_element));
struct cmd_list_element *p;
memcpy (showcmd, setcmd, sizeof (struct cmd_list_element)); memcpy (showcmd, setcmd, sizeof (struct cmd_list_element));
delete_cmd (showcmd->name, list); delete_cmd (showcmd->name, list);
@ -288,8 +310,22 @@ add_show_from_set (setcmd, list)
else else
fprintf_unfiltered (gdb_stderr, "GDB internal error: Bad docstring for set command\n"); fprintf_unfiltered (gdb_stderr, "GDB internal error: Bad docstring for set command\n");
showcmd->next = *list; if (*list == NULL || STRCMP ((*list)->name, showcmd->name) >= 0)
*list = showcmd; {
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; return showcmd;
} }
@ -649,7 +685,7 @@ lookup_cmd_1 (text, clist, result_list, ignore_help_classes)
} }
else if (c == (struct cmd_list_element *) -1) 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 is ambiguous. We need to set the result list to the best
we've found (if an inferior hasn't already set it). */ we've found (if an inferior hasn't already set it). */
if (result_list != NULL) if (result_list != NULL)
@ -739,7 +775,7 @@ lookup_cmd (line, list, cmdtype, allow_unknown, ignore_help_classes)
q = (char *) alloca (p - *line + 1); q = (char *) alloca (p - *line + 1);
strncpy (q, *line, p - *line); strncpy (q, *line, p - *line);
q[p-*line] = '\0'; q[p - *line] = '\0';
undef_cmd_error (cmdtype, q); undef_cmd_error (cmdtype, q);
} }
} }