From 1e8fb9762b0d2c468915815f73d2fadb44543be1 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Fri, 23 Jan 2009 18:47:46 +0000 Subject: 2009-01-23 Pedro Alves * cli/cli-decode.c (add_setshow_zuinteger_cmd): New. * cli/cli-setshow.c (do_setshow_command): Handle it. * command.h (enum var_types): Add var_zuinteger. (add_setshow_zuinteger_cmd): Declare. * valprint.c (_initialize_valprint): Change the set input-radix and set output-radix commands to zuinteger type. 2009-01-23 Pedro Alves * gdb.base/radix.exp: Add tests to ensure that that set input-radix 0 and set output-radix 0 are really rejected. --- gdb/cli/cli-decode.c | 21 +++++++++++++++++++++ gdb/cli/cli-setshow.c | 6 ++++++ 2 files changed, 27 insertions(+) (limited to 'gdb/cli') diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c index d71d516..556c027 100644 --- a/gdb/cli/cli-decode.c +++ b/gdb/cli/cli-decode.c @@ -639,6 +639,27 @@ add_setshow_zinteger_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). 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, + unsigned 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) +{ + add_setshow_cmd_full (name, class, var_zuinteger, var, + set_doc, show_doc, help_doc, + set_func, show_func, + set_list, show_list, + NULL, NULL); +} + /* Remove the command named NAME from the command list. Return the list commands which were aliased to the deleted command. If the command had no aliases, return NULL. The various *HOOKs are set to diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c index be0581d..206a55d 100644 --- a/gdb/cli/cli-setshow.c +++ b/gdb/cli/cli-setshow.c @@ -232,6 +232,11 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c) error_no_arg (_("integer to set it to.")); *(int *) c->var = parse_and_eval_long (arg); break; + case var_zuinteger: + if (arg == NULL) + error_no_arg (_("integer to set it to.")); + *(unsigned int *) c->var = parse_and_eval_long (arg); + break; case var_enum: { int i; @@ -351,6 +356,7 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c) break; } /* else fall through */ + case var_zuinteger: case var_zinteger: fprintf_filtered (stb->stream, "%u", *(unsigned int *) c->var); break; -- cgit v1.1