2005-02-20 Andrew Cagney <cagney@gnu.org>
* cli/cli-decode.c (add_setshow_optional_filename_cmd): New function. * cli/cli-setshow.c (deprecated_show_value_hack) (do_setshow_command): Handle var_optional_filename. * command.h (enum var_types): Add var_optional_filename. (add_setshow_optional_filename_cmd): Declare. * infcmd.c (notice_args_read): Use.
This commit is contained in:
parent
ac4528d236
commit
b4b4ac0b71
|
@ -1,5 +1,13 @@
|
|||
2005-02-20 Andrew Cagney <cagney@gnu.org>
|
||||
|
||||
* cli/cli-decode.c (add_setshow_optional_filename_cmd): New
|
||||
function.
|
||||
* cli/cli-setshow.c (deprecated_show_value_hack)
|
||||
(do_setshow_command): Handle var_optional_filename.
|
||||
* command.h (enum var_types): Add var_optional_filename.
|
||||
(add_setshow_optional_filename_cmd): Declare.
|
||||
* infcmd.c (notice_args_read): Use.
|
||||
|
||||
* symfile-mem.c (symbol_file_add_from_memory): Pass
|
||||
target_read_memory to bfd_elf_bfd_from_remote_memory.
|
||||
(do_target_read_memory): Delete.
|
||||
|
|
|
@ -535,6 +535,25 @@ add_setshow_string_noescape_cmd (char *name, enum command_class class,
|
|||
NULL, NULL);
|
||||
}
|
||||
|
||||
/* 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,
|
||||
char **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)
|
||||
{
|
||||
add_setshow_cmd_full (name, class, var_optional_filename, var,
|
||||
set_doc, show_doc, help_doc,
|
||||
set_func, show_func,
|
||||
set_list, show_list,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
/* 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
|
||||
|
|
|
@ -102,6 +102,7 @@ deprecated_show_value_hack (struct ui_file *ignore_file,
|
|||
{
|
||||
case var_string:
|
||||
case var_string_noescape:
|
||||
case var_optional_filename:
|
||||
case var_filename:
|
||||
case var_enum:
|
||||
printf_filtered ((" is \"%s\".\n"), value);
|
||||
|
@ -177,8 +178,14 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
|
|||
*(char **) c->var = savestring (arg, strlen (arg));
|
||||
break;
|
||||
case var_filename:
|
||||
case var_optional_filename:
|
||||
if (arg == NULL)
|
||||
error_no_arg (_("filename to set it to."));
|
||||
{
|
||||
if (c->var_type == var_optional_filename)
|
||||
arg = "";
|
||||
else
|
||||
error_no_arg (_("filename to set it to."));
|
||||
}
|
||||
if (*(char **) c->var != NULL)
|
||||
xfree (*(char **) c->var);
|
||||
*(char **) c->var = tilde_expand (arg);
|
||||
|
@ -298,6 +305,7 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
|
|||
}
|
||||
break;
|
||||
case var_string_noescape:
|
||||
case var_optional_filename:
|
||||
case var_filename:
|
||||
case var_enum:
|
||||
if (*(char **) c->var)
|
||||
|
|
|
@ -80,8 +80,11 @@ typedef enum var_types
|
|||
/* String which stores what the user types verbatim.
|
||||
*VAR is a malloc'd string, or NULL if the string is empty. */
|
||||
var_string_noescape,
|
||||
/* String which stores a filename.
|
||||
*VAR is a malloc'd string, or NULL if the string is empty. */
|
||||
/* String which stores a filename. (*VAR) is a malloc'd string,
|
||||
or "" if the string was empty. */
|
||||
var_optional_filename,
|
||||
/* String which stores a filename. (*VAR) is a malloc'd
|
||||
string. */
|
||||
var_filename,
|
||||
/* ZeroableInteger. *VAR is an int. Like Unsigned Integer except
|
||||
that zero really means zero. */
|
||||
|
@ -301,6 +304,17 @@ extern void add_setshow_string_noescape_cmd (char *name,
|
|||
struct cmd_list_element **set_list,
|
||||
struct cmd_list_element **show_list);
|
||||
|
||||
extern void add_setshow_optional_filename_cmd (char *name,
|
||||
enum command_class class,
|
||||
char **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);
|
||||
|
||||
extern void add_setshow_integer_cmd (char *name,
|
||||
enum command_class class,
|
||||
unsigned int *var,
|
||||
|
|
21
gdb/infcmd.c
21
gdb/infcmd.c
|
@ -250,8 +250,10 @@ notice_args_set (char *args, int from_tty, struct cmd_list_element *c)
|
|||
|
||||
/* Notice when `show args' is run. */
|
||||
static void
|
||||
notice_args_read (char *args, int from_tty, struct cmd_list_element *c)
|
||||
notice_args_read (struct ui_file *file, int from_tty,
|
||||
struct cmd_list_element *c, const char *value)
|
||||
{
|
||||
deprecated_show_value_hack (file, from_tty, c, value);
|
||||
/* Might compute the value. */
|
||||
get_inferior_args ();
|
||||
}
|
||||
|
@ -1980,15 +1982,14 @@ _initialize_infcmd (void)
|
|||
_("Set terminal for future runs of program being debugged."));
|
||||
set_cmd_completer (c, filename_completer);
|
||||
|
||||
c = add_set_cmd ("args", class_run, var_string_noescape,
|
||||
(char *) &inferior_args,
|
||||
"Set argument list to give program being debugged when it is started.\n\
|
||||
Follow this command with any number of args, to be passed to the program.",
|
||||
&setlist);
|
||||
set_cmd_completer (c, filename_completer);
|
||||
set_cmd_sfunc (c, notice_args_set);
|
||||
c = deprecated_add_show_from_set (c, &showlist);
|
||||
set_cmd_sfunc (c, notice_args_read);
|
||||
add_setshow_optional_filename_cmd ("args", class_run,
|
||||
&inferior_args, _("\
|
||||
Set argument list to give program being debugged when it is started."), _("\
|
||||
Show argument list to give program being debugged when it is started."), _("\
|
||||
Follow this command with any number of args, to be passed to the program."),
|
||||
notice_args_set,
|
||||
notice_args_read,
|
||||
&setlist, &showlist);
|
||||
|
||||
c = add_cmd ("environment", no_class, environment_info, _("\
|
||||
The environment to give the program, or one variable's value.\n\
|
||||
|
|
Loading…
Reference in New Issue