/* This can be used for functions which don't want to complete on symbols
but don't want to complete on anything else either. */
char **
-noop_completer (char *text, char *prefix)
+noop_completer (struct cmd_list_element *ignore, char *text, char *prefix)
{
return NULL;
}
/* Complete on filenames. */
char **
-filename_completer (char *text, char *word)
+filename_completer (struct cmd_list_element *ignore, char *text, char *word)
{
int subsequent_name;
char **return_val;
This is intended to be used in commands that set breakpoints etc. */
char **
-location_completer (char *text, char *word)
+location_completer (struct cmd_list_element *ignore, char *text, char *word)
{
int n_syms = 0, n_files = 0;
char ** fn_list = NULL;
char *fieldname, int namelen)
{
int i;
+ int computed_type_name = 0;
char *type_name = NULL;
CHECK_TYPEDEF (type);
char *name = TYPE_FN_FIELDLIST_NAME (type, i);
if (name && ! strncmp (name, fieldname, namelen))
{
- if (!type_name)
- type_name = type_name_no_tag (type);
+ if (!computed_type_name)
+ {
+ type_name = type_name_no_tag (type);
+ computed_type_name = 1;
+ }
/* Omit constructors from the completion list. */
- if (strcmp (type_name, name))
+ if (type_name && strcmp (type_name, name))
{
output[*nextp] = xstrdup (name);
++*nextp;
names, but some language parsers also have support for completing
field names. */
char **
-expression_completer (char *text, char *word)
+expression_completer (struct cmd_list_element *ignore, char *text, char *word)
{
struct type *type;
char *fieldname, *p;
;
/* Not ideal but it is what we used to do before... */
- return location_completer (p, word);
+ return location_completer (ignore, p, word);
}
/* Here are some useful test cases for completion. FIXME: These should
p--)
;
}
- list = (*c->completer) (p, word);
+ list = (*c->completer) (c, p, word);
}
}
else
p--)
;
}
- list = (*c->completer) (p, word);
+ list = (*c->completer) (c, p, word);
}
}
}
/* Complete on command names. Used by "help". */
char **
-command_completer (char *text, char *word)
+command_completer (struct cmd_list_element *ignore, char *text, char *word)
{
return complete_line_internal (word, text, strlen (text), 1);
}