Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Unified Diff: gdb/cli/cli-decode.c

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gdb/cli/cli-decode.h ('k') | gdb/cli/cli-dump.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gdb/cli/cli-decode.c
diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index 6fa929b1d712a223c396500517d752b3286a7a21..fd406149c9816d277ab8af13b00a607142abdaf3 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -1,7 +1,6 @@
/* Handle lists of commands, their decoding and documentation, for GDB.
- Copyright (c) 1986, 1989-1991, 1998, 2000-2002, 2004, 2007-2012 Free
- Software Foundation, Inc.
+ Copyright (C) 1986-2013 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,31 +19,25 @@
#include "symtab.h"
#include <ctype.h>
#include "gdb_regex.h"
-#include "gdb_string.h"
+#include <string.h>
#include "completer.h"
#include "ui-out.h"
-
#include "cli/cli-cmds.h"
#include "cli/cli-decode.h"
-
-#ifdef TUI
-#include "tui/tui.h" /* For tui_active et al. */
-#endif
-
#include "gdb_assert.h"
/* Prototypes for local functions. */
-static void undef_cmd_error (char *, char *);
+static void undef_cmd_error (const char *, const char *);
-static struct cmd_list_element *delete_cmd (char *name,
+static struct cmd_list_element *delete_cmd (const char *name,
struct cmd_list_element **list,
struct cmd_list_element **prehook,
struct cmd_list_element **prehookee,
struct cmd_list_element **posthook,
struct cmd_list_element **posthookee);
-static struct cmd_list_element *find_cmd (char *command,
+static struct cmd_list_element *find_cmd (const char *command,
int len,
struct cmd_list_element *clist,
int ignore_help_classes,
@@ -52,6 +45,53 @@ static struct cmd_list_element *find_cmd (char *command,
static void help_all (struct ui_file *stream);
+/* Look up a command whose 'prefixlist' is KEY. Return the command if found,
+ otherwise return NULL. */
+
+static struct cmd_list_element *
+lookup_cmd_for_prefixlist (struct cmd_list_element **key,
+ struct cmd_list_element *list)
+{
+ struct cmd_list_element *p = NULL;
+
+ for (p = list; p != NULL; p = p->next)
+ {
+ struct cmd_list_element *q;
+
+ if (p->prefixlist == NULL)
+ continue;
+ else if (p->prefixlist == key)
+ return p;
+
+ q = lookup_cmd_for_prefixlist (key, *(p->prefixlist));
+ if (q != NULL)
+ return q;
+ }
+
+ return NULL;
+}
+
+static void
+set_cmd_prefix (struct cmd_list_element *c, struct cmd_list_element **list)
+{
+ struct cmd_list_element *p;
+
+ /* Check to see if *LIST contains any element other than C. */
+ for (p = *list; p != NULL; p = p->next)
+ if (p != c)
+ break;
+
+ if (p == NULL)
+ {
+ /* *SET_LIST only contains SET. */
+ p = lookup_cmd_for_prefixlist (list, setlist);
+
+ c->prefix = p ? (p->cmd_pointer ? p->cmd_pointer : p) : p;
+ }
+ else
+ c->prefix = p->prefix;
+}
+
static void
print_help_for_command (struct cmd_list_element *c, char *prefix, int recurse,
struct ui_file *stream);
@@ -143,7 +183,7 @@ set_cmd_completer (struct cmd_list_element *cmd, completer_ftype *completer)
of *LIST). */
struct cmd_list_element *
-add_cmd (char *name, enum command_class class, void (*fun) (char *, int),
+add_cmd (const char *name, enum command_class class, void (*fun) (char *, int),
char *doc, struct cmd_list_element **list)
{
struct cmd_list_element *c
@@ -193,6 +233,7 @@ add_cmd (char *name, enum command_class class, void (*fun) (char *, int),
c->prefixlist = NULL;
c->prefixname = NULL;
c->allow_unknown = 0;
+ c->prefix = NULL;
c->abbrev_flag = 0;
set_cmd_completer (c, make_symbol_completion_list_fn);
c->destroyer = NULL;
@@ -231,18 +272,15 @@ deprecate_cmd (struct cmd_list_element *cmd, char *replacement)
}
struct cmd_list_element *
-add_alias_cmd (char *name, char *oldname, enum command_class class,
+add_alias_cmd (const char *name, const char *oldname, enum command_class class,
int abbrev_flag, struct cmd_list_element **list)
{
- /* Must do this since lookup_cmd tries to side-effect its first
- arg. */
- char *copied_name;
+ const char *tmp;
struct cmd_list_element *old;
struct cmd_list_element *c;
- copied_name = (char *) alloca (strlen (oldname) + 1);
- strcpy (copied_name, oldname);
- old = lookup_cmd (&copied_name, *list, "", 1, 1);
+ tmp = oldname;
+ old = lookup_cmd (&tmp, *list, "", 1, 1);
if (old == 0)
{
@@ -258,6 +296,13 @@ add_alias_cmd (char *name, char *oldname, enum command_class class,
}
c = add_cmd (name, class, NULL, old->doc, list);
+
+ /* If OLD->DOC can be freed, we should make another copy. */
+ if ((old->flags & DOC_ALLOCATED) != 0)
+ {
+ c->doc = xstrdup (old->doc);
+ c->flags |= DOC_ALLOCATED;
+ }
/* NOTE: Both FUNC and all the FUNCTIONs need to be copied. */
c->func = old->func;
c->function = old->function;
@@ -268,6 +313,8 @@ add_alias_cmd (char *name, char *oldname, enum command_class class,
c->cmd_pointer = old;
c->alias_chain = old->aliases;
old->aliases = c;
+
+ set_cmd_prefix (c, list);
return c;
}
@@ -277,24 +324,35 @@ add_alias_cmd (char *name, char *oldname, enum command_class class,
containing that list. */
struct cmd_list_element *
-add_prefix_cmd (char *name, enum command_class class,
+add_prefix_cmd (const char *name, enum command_class class,
void (*fun) (char *, int),
char *doc, struct cmd_list_element **prefixlist,
char *prefixname, int allow_unknown,
struct cmd_list_element **list)
{
struct cmd_list_element *c = add_cmd (name, class, fun, doc, list);
+ struct cmd_list_element *p;
c->prefixlist = prefixlist;
c->prefixname = prefixname;
c->allow_unknown = allow_unknown;
+
+ if (list == &cmdlist)
+ c->prefix = NULL;
+ else
+ set_cmd_prefix (c, list);
+
+ /* Update the field 'prefix' of each cmd_list_element in *PREFIXLIST. */
+ for (p = *prefixlist; p != NULL; p = p->next)
+ p->prefix = c;
+
return c;
}
/* Like add_prefix_cmd but sets the abbrev_flag on the new command. */
struct cmd_list_element *
-add_abbrev_prefix_cmd (char *name, enum command_class class,
+add_abbrev_prefix_cmd (const char *name, enum command_class class,
void (*fun) (char *, int), char *doc,
struct cmd_list_element **prefixlist, char *prefixname,
int allow_unknown, struct cmd_list_element **list)
@@ -331,7 +389,7 @@ empty_sfunc (char *args, int from_tty, struct cmd_list_element *c)
DOC is the documentation string. */
static struct cmd_list_element *
-add_set_or_show_cmd (char *name,
+add_set_or_show_cmd (const char *name,
enum cmd_types type,
enum command_class class,
var_types var_type,
@@ -361,7 +419,7 @@ add_set_or_show_cmd (char *name,
structures. */
static void
-add_setshow_cmd_full (char *name,
+add_setshow_cmd_full (const char *name,
enum command_class class,
var_types var_type, void *var,
const char *set_doc, const char *show_doc,
@@ -390,10 +448,16 @@ add_setshow_cmd_full (char *name,
}
set = add_set_or_show_cmd (name, set_cmd, class, var_type, var,
full_set_doc, set_list);
+ set->flags |= DOC_ALLOCATED;
+
if (set_func != NULL)
set_cmd_sfunc (set, set_func);
+
+ set_cmd_prefix (set, set_list);
+
show = add_set_or_show_cmd (name, show_cmd, class, var_type, var,
full_show_doc, show_list);
+ show->flags |= DOC_ALLOCATED;
show->show_value_func = show_func;
if (set_result != NULL)
@@ -408,7 +472,7 @@ add_setshow_cmd_full (char *name,
which will contain the matching string (from ENUMLIST). */
void
-add_setshow_enum_cmd (char *name,
+add_setshow_enum_cmd (const char *name,
enum command_class class,
const char *const *enumlist,
const char **var,
@@ -430,12 +494,14 @@ add_setshow_enum_cmd (char *name,
c->enums = enumlist;
}
+const char * const auto_boolean_enums[] = { "on", "off", "auto", NULL };
+
/* Add an auto-boolean command named NAME to both the set and show
command list lists. CLASS is as in add_cmd. VAR is address of the
variable which will contain the value. DOC is the documentation
string. FUNC is the corresponding callback. */
void
-add_setshow_auto_boolean_cmd (char *name,
+add_setshow_auto_boolean_cmd (const char *name,
enum command_class class,
enum auto_boolean *var,
const char *set_doc, const char *show_doc,
@@ -445,7 +511,6 @@ add_setshow_auto_boolean_cmd (char *name,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list)
{
- static const char *auto_boolean_enums[] = { "on", "off", "auto", NULL };
struct cmd_list_element *c;
add_setshow_cmd_full (name, class, var_auto_boolean, var,
@@ -461,7 +526,7 @@ add_setshow_auto_boolean_cmd (char *name,
add_cmd. VAR is address of the variable which will contain the
value. SET_DOC and SHOW_DOC are the documentation strings. */
void
-add_setshow_boolean_cmd (char *name, enum command_class class, int *var,
+add_setshow_boolean_cmd (const char *name, enum command_class class, int *var,
const char *set_doc, const char *show_doc,
const char *help_doc,
cmd_sfunc_ftype *set_func,
@@ -483,7 +548,7 @@ add_setshow_boolean_cmd (char *name, enum command_class class, int *var,
/* Add element named NAME to both the set and show command LISTs (the
list for set/show or some sublist thereof). */
void
-add_setshow_filename_cmd (char *name, enum command_class class,
+add_setshow_filename_cmd (const char *name, enum command_class class,
char **var,
const char *set_doc, const char *show_doc,
const char *help_doc,
@@ -505,7 +570,7 @@ add_setshow_filename_cmd (char *name, enum command_class class,
/* Add element named NAME to both the set and show command LISTs (the
list for set/show or some sublist thereof). */
void
-add_setshow_string_cmd (char *name, enum command_class class,
+add_setshow_string_cmd (const char *name, enum command_class class,
char **var,
const char *set_doc, const char *show_doc,
const char *help_doc,
@@ -523,8 +588,8 @@ add_setshow_string_cmd (char *name, enum command_class class,
/* Add element named NAME to both the set and show command LISTs (the
list for set/show or some sublist thereof). */
-void
-add_setshow_string_noescape_cmd (char *name, enum command_class class,
+struct cmd_list_element *
+add_setshow_string_noescape_cmd (const char *name, enum command_class class,
char **var,
const char *set_doc, const char *show_doc,
const char *help_doc,
@@ -533,17 +598,20 @@ add_setshow_string_noescape_cmd (char *name, enum command_class class,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list)
{
+ struct cmd_list_element *set_cmd;
+
add_setshow_cmd_full (name, class, var_string_noescape, var,
set_doc, show_doc, help_doc,
set_func, show_func,
set_list, show_list,
- NULL, NULL);
+ &set_cmd, NULL);
+ return set_cmd;
}
/* Add element named NAME to both the set and show command LISTs (the
list for set/show or some sublist thereof). */
void
-add_setshow_optional_filename_cmd (char *name, enum command_class class,
+add_setshow_optional_filename_cmd (const char *name, enum command_class class,
char **var,
const char *set_doc, const char *show_doc,
const char *help_doc,
@@ -564,12 +632,29 @@ add_setshow_optional_filename_cmd (char *name, enum command_class class,
}
+/* Completes on literal "unlimited". Used by integer commands that
+ support a special "unlimited" value. */
+
+static VEC (char_ptr) *
+integer_unlimited_completer (struct cmd_list_element *ignore,
+ const char *text, const char *word)
+{
+ static const char * const keywords[] =
+ {
+ "unlimited",
+ NULL,
+ };
+
+ return complete_on_enum (keywords, text, word);
+}
+
/* Add element named NAME to both the set and show command LISTs (the
list for set/show or some sublist thereof). CLASS is as in
add_cmd. VAR is address of the variable which will contain the
- value. SET_DOC and SHOW_DOC are the documentation strings. */
+ value. SET_DOC and SHOW_DOC are the documentation strings. This
+ function is only used in Python API. Please don't use it elsewhere. */
void
-add_setshow_integer_cmd (char *name, enum command_class class,
+add_setshow_integer_cmd (const char *name, enum command_class class,
int *var,
const char *set_doc, const char *show_doc,
const char *help_doc,
@@ -578,11 +663,15 @@ add_setshow_integer_cmd (char *name, enum command_class class,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list)
{
+ struct cmd_list_element *set;
+
add_setshow_cmd_full (name, class, var_integer, var,
set_doc, show_doc, help_doc,
set_func, show_func,
set_list, show_list,
- NULL, NULL);
+ &set, NULL);
+
+ set_cmd_completer (set, integer_unlimited_completer);
}
/* Add element named NAME to both the set and show command LISTs (the
@@ -590,7 +679,7 @@ add_setshow_integer_cmd (char *name, enum command_class class,
add_cmd. VAR is address of the variable which will contain the
value. SET_DOC and SHOW_DOC are the documentation strings. */
void
-add_setshow_uinteger_cmd (char *name, enum command_class class,
+add_setshow_uinteger_cmd (const char *name, enum command_class class,
unsigned int *var,
const char *set_doc, const char *show_doc,
const char *help_doc,
@@ -599,11 +688,15 @@ add_setshow_uinteger_cmd (char *name, enum command_class class,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list)
{
+ struct cmd_list_element *set;
+
add_setshow_cmd_full (name, class, var_uinteger, var,
set_doc, show_doc, help_doc,
set_func, show_func,
set_list, show_list,
- NULL, NULL);
+ &set, NULL);
+
+ set_cmd_completer (set, integer_unlimited_completer);
}
/* Add element named NAME to both the set and show command LISTs (the
@@ -611,7 +704,7 @@ add_setshow_uinteger_cmd (char *name, enum command_class class,
add_cmd. VAR is address of the variable which will contain the
value. SET_DOC and SHOW_DOC are the documentation strings. */
void
-add_setshow_zinteger_cmd (char *name, enum command_class class,
+add_setshow_zinteger_cmd (const char *name, enum command_class class,
int *var,
const char *set_doc, const char *show_doc,
const char *help_doc,
@@ -627,12 +720,35 @@ add_setshow_zinteger_cmd (char *name, enum command_class class,
NULL, NULL);
}
+void
+add_setshow_zuinteger_unlimited_cmd (const char *name,
+ enum command_class class,
+ int *var,
+ const char *set_doc,
+ const char *show_doc,
+ const char *help_doc,
+ cmd_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;
+
+ add_setshow_cmd_full (name, class, var_zuinteger_unlimited, var,
+ set_doc, show_doc, help_doc,
+ set_func, show_func,
+ set_list, show_list,
+ &set, NULL);
+
+ set_cmd_completer (set, integer_unlimited_completer);
+}
+
/* Add element named NAME to both the set and show command LISTs (the
list for set/show or some sublist thereof). CLASS is as in
add_cmd. VAR is address of the variable which will contain the
value. SET_DOC and SHOW_DOC are the documentation strings. */
void
-add_setshow_zuinteger_cmd (char *name, enum command_class class,
+add_setshow_zuinteger_cmd (const char *name, enum command_class class,
unsigned int *var,
const char *set_doc, const char *show_doc,
const char *help_doc,
@@ -656,7 +772,7 @@ add_setshow_zuinteger_cmd (char *name, enum command_class class,
set to NULL. */
static struct cmd_list_element *
-delete_cmd (char *name, struct cmd_list_element **list,
+delete_cmd (const char *name, struct cmd_list_element **list,
struct cmd_list_element **prehook,
struct cmd_list_element **prehookee,
struct cmd_list_element **posthook,
@@ -684,6 +800,8 @@ delete_cmd (char *name, struct cmd_list_element **list,
*prehookee = iter->hookee_pre;
if (iter->hookee_post)
iter->hookee_post->hook_post = 0;
+ if (iter->doc && (iter->flags & DOC_ALLOCATED) != 0)
+ xfree (iter->doc);
*posthook = iter->hook_post;
*posthookee = iter->hookee_post;
@@ -724,7 +842,7 @@ delete_cmd (char *name, struct cmd_list_element **list,
/* Add an element to the list of info subcommands. */
struct cmd_list_element *
-add_info (char *name, void (*fun) (char *, int), char *doc)
+add_info (const char *name, void (*fun) (char *, int), char *doc)
{
return add_cmd (name, no_class, fun, doc, &infolist);
}
@@ -732,7 +850,7 @@ add_info (char *name, void (*fun) (char *, int), char *doc)
/* Add an alias to the list of info subcommands. */
struct cmd_list_element *
-add_info_alias (char *name, char *oldname, int abbrev_flag)
+add_info_alias (const char *name, char *oldname, int abbrev_flag)
{
return add_alias_cmd (name, oldname, 0, abbrev_flag, &infolist);
}
@@ -740,7 +858,7 @@ add_info_alias (char *name, char *oldname, int abbrev_flag)
/* Add an element to the list of commands. */
struct cmd_list_element *
-add_com (char *name, enum command_class class, void (*fun) (char *, int),
+add_com (const char *name, enum command_class class, void (*fun) (char *, int),
char *doc)
{
return add_cmd (name, class, fun, doc, &cmdlist);
@@ -749,7 +867,7 @@ add_com (char *name, enum command_class class, void (*fun) (char *, int),
/* Add an alias or abbreviation command to the list of commands. */
struct cmd_list_element *
-add_com_alias (char *name, char *oldname, enum command_class class,
+add_com_alias (const char *name, const char *oldname, enum command_class class,
int abbrev_flag)
{
return add_alias_cmd (name, oldname, class, abbrev_flag, &cmdlist);
@@ -815,10 +933,10 @@ apropos_cmd (struct ui_file *stream,
help_list. */
void
-help_cmd (char *command, struct ui_file *stream)
+help_cmd (char *arg, struct ui_file *stream)
{
struct cmd_list_element *c;
- extern struct cmd_list_element *cmdlist;
+ const char *command = arg;
if (!command)
{
@@ -950,7 +1068,6 @@ static void
help_all (struct ui_file *stream)
{
struct cmd_list_element *c;
- extern struct cmd_list_element *cmdlist;
int seen_unclassified = 0;
for (c = cmdlist; c; c = c->next)
@@ -1087,7 +1204,7 @@ help_cmd_list (struct cmd_list_element *list, enum command_class class,
found in nfound. */
static struct cmd_list_element *
-find_cmd (char *command, int len, struct cmd_list_element *clist,
+find_cmd (const char *command, int len, struct cmd_list_element *clist,
int ignore_help_classes, int *nfound)
{
struct cmd_list_element *found, *c;
@@ -1208,13 +1325,13 @@ valid_user_defined_cmd_name_p (const char *name)
the struct cmd_list_element is NULL). */
struct cmd_list_element *
-lookup_cmd_1 (char **text, struct cmd_list_element *clist,
+lookup_cmd_1 (const char **text, struct cmd_list_element *clist,
struct cmd_list_element **result_list, int ignore_help_classes)
{
char *command;
int len, tmp, nfound;
struct cmd_list_element *found, *c;
- char *line = *text;
+ const char *line = *text;
while (**text == ' ' || **text == '\t')
(*text)++;
@@ -1279,7 +1396,7 @@ lookup_cmd_1 (char **text, struct cmd_list_element *clist,
flags. */
if (found->flags & DEPRECATED_WARN_USER)
- deprecated_cmd_warning (&line);
+ deprecated_cmd_warning (line);
found = found->cmd_pointer;
}
/* If we found a prefix command, keep looking. */
@@ -1326,7 +1443,7 @@ lookup_cmd_1 (char **text, struct cmd_list_element *clist,
/* All this hair to move the space to the front of cmdtype */
static void
-undef_cmd_error (char *cmdtype, char *q)
+undef_cmd_error (const char *cmdtype, const char *q)
{
error (_("Undefined %scommand: \"%s\". Try \"help%s%.*s\"."),
cmdtype,
@@ -1351,7 +1468,7 @@ undef_cmd_error (char *cmdtype, char *q)
the function field of the struct cmd_list_element is 0). */
struct cmd_list_element *
-lookup_cmd (char **line, struct cmd_list_element *list, char *cmdtype,
+lookup_cmd (const char **line, struct cmd_list_element *list, char *cmdtype,
int allow_unknown, int ignore_help_classes)
{
struct cmd_list_element *last_list = 0;
@@ -1433,6 +1550,9 @@ lookup_cmd (char **line, struct cmd_list_element *list, char *cmdtype,
}
else
{
+ if (c->type == set_cmd && **line != '\0' && !isspace (**line))
+ error (_("Argument must be preceded by space."));
+
/* We've got something. It may still not be what the caller
wants (if this command *needs* a subcommand). */
while (**line == ' ' || **line == '\t')
@@ -1447,14 +1567,14 @@ lookup_cmd (char **line, struct cmd_list_element *list, char *cmdtype,
return 0;
}
-/* We are here presumably because an alias or command in *TEXT is
+/* We are here presumably because an alias or command in TEXT is
deprecated and a warning message should be generated. This
- function decodes *TEXT and potentially generates a warning message
+ function decodes TEXT and potentially generates a warning message
as outlined below.
Example for 'set endian big' which has a fictitious alias 'seb'.
- If alias wasn't used in *TEXT, and the command is deprecated:
+ If alias wasn't used in TEXT, and the command is deprecated:
"warning: 'set endian big' is deprecated."
If alias was used, and only the alias is deprecated:
@@ -1470,13 +1590,13 @@ lookup_cmd (char **line, struct cmd_list_element *list, char *cmdtype,
*/
void
-deprecated_cmd_warning (char **text)
+deprecated_cmd_warning (const char *text)
{
struct cmd_list_element *alias = NULL;
struct cmd_list_element *prefix_cmd = NULL;
struct cmd_list_element *cmd = NULL;
- if (!lookup_cmd_composition (*text, &alias, &prefix_cmd, &cmd))
+ if (!lookup_cmd_composition (text, &alias, &prefix_cmd, &cmd))
/* Return if text doesn't evaluate to a command. */
return;
@@ -1544,7 +1664,7 @@ deprecated_cmd_warning (char **text)
*/
int
-lookup_cmd_composition (char *text,
+lookup_cmd_composition (const char *text,
struct cmd_list_element **alias,
struct cmd_list_element **prefix_cmd,
struct cmd_list_element **cmd)
@@ -1641,7 +1761,9 @@ lookup_cmd_composition (char *text,
"oobar"; if WORD is "baz/foo", return "baz/foobar". */
VEC (char_ptr) *
-complete_on_cmdlist (struct cmd_list_element *list, char *text, char *word)
+complete_on_cmdlist (struct cmd_list_element *list,
+ const char *text, const char *word,
+ int ignore_help_classes)
{
struct cmd_list_element *ptr;
VEC (char_ptr) *matchlist = NULL;
@@ -1658,7 +1780,7 @@ complete_on_cmdlist (struct cmd_list_element *list, char *text, char *word)
for (ptr = list; ptr; ptr = ptr->next)
if (!strncmp (ptr->name, text, textlen)
&& !ptr->abbrev_flag
- && (ptr->func
+ && (!ignore_help_classes || ptr->func
|| ptr->prefixlist))
{
char *match;
@@ -1710,8 +1832,7 @@ complete_on_cmdlist (struct cmd_list_element *list, char *text, char *word)
VEC (char_ptr) *
complete_on_enum (const char *const *enumlist,
- char *text,
- char *word)
+ const char *text, const char *word)
{
VEC (char_ptr) *matchlist = NULL;
int textlen = strlen (text);
« no previous file with comments | « gdb/cli/cli-decode.h ('k') | gdb/cli/cli-dump.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698