diff options
Diffstat (limited to 'contrib/gdb/gdb/cli/cli-setshow.c')
-rw-r--r-- | contrib/gdb/gdb/cli/cli-setshow.c | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/contrib/gdb/gdb/cli/cli-setshow.c b/contrib/gdb/gdb/cli/cli-setshow.c index f967b0c..62fe36f 100644 --- a/contrib/gdb/gdb/cli/cli-setshow.c +++ b/contrib/gdb/gdb/cli/cli-setshow.c @@ -1,6 +1,6 @@ /* Handle set and show GDB commands. - Copyright 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002, 2003 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 @@ -18,11 +18,10 @@ Boston, MA 02111-1307, USA. */ #include "defs.h" +#include "readline/tilde.h" #include "value.h" #include <ctype.h> -#if 0 #include "gdb_string.h" -#endif #include "ui-out.h" @@ -34,9 +33,8 @@ static int parse_binary_operation (char *); -static enum cmd_auto_boolean parse_auto_binary_operation (const char *arg); -static enum cmd_auto_boolean +static enum auto_boolean parse_auto_binary_operation (const char *arg) { if (arg != NULL && *arg != '\0') @@ -48,18 +46,18 @@ parse_auto_binary_operation (const char *arg) || strncmp (arg, "1", length) == 0 || strncmp (arg, "yes", length) == 0 || strncmp (arg, "enable", length) == 0) - return CMD_AUTO_BOOLEAN_TRUE; + return AUTO_BOOLEAN_TRUE; else if (strncmp (arg, "off", length) == 0 || strncmp (arg, "0", length) == 0 || strncmp (arg, "no", length) == 0 || strncmp (arg, "disable", length) == 0) - return CMD_AUTO_BOOLEAN_FALSE; + return AUTO_BOOLEAN_FALSE; else if (strncmp (arg, "auto", length) == 0 || (strncmp (arg, "-1", length) == 0 && length > 1)) - return CMD_AUTO_BOOLEAN_AUTO; + return AUTO_BOOLEAN_AUTO; } error ("\"on\", \"off\" or \"auto\" expected."); - return CMD_AUTO_BOOLEAN_AUTO; /* pacify GCC */ + return AUTO_BOOLEAN_AUTO; /* pacify GCC */ } static int @@ -167,7 +165,7 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c) *(int *) c->var = parse_binary_operation (arg); break; case var_auto_boolean: - *(enum cmd_auto_boolean *) c->var = parse_auto_binary_operation (arg); + *(enum auto_boolean *) c->var = parse_auto_binary_operation (arg); break; case var_uinteger: if (arg == NULL) @@ -215,7 +213,7 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c) strcat (msg, c->enums[i]); } strcat (msg, "."); - error (msg); + error ("%s", msg); } p = strchr (arg, ' '); @@ -296,15 +294,15 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c) fputs_filtered (*(int *) c->var ? "on" : "off", stb->stream); break; case var_auto_boolean: - switch (*(enum cmd_auto_boolean*) c->var) + switch (*(enum auto_boolean*) c->var) { - case CMD_AUTO_BOOLEAN_TRUE: + case AUTO_BOOLEAN_TRUE: fputs_filtered ("on", stb->stream); break; - case CMD_AUTO_BOOLEAN_FALSE: + case AUTO_BOOLEAN_FALSE: fputs_filtered ("off", stb->stream); break; - case CMD_AUTO_BOOLEAN_AUTO: + case AUTO_BOOLEAN_AUTO: fputs_filtered ("auto", stb->stream); break; default: @@ -355,28 +353,35 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c) void cmd_show_list (struct cmd_list_element *list, int from_tty, char *prefix) { - ui_out_tuple_begin (uiout, "showlist"); + struct cleanup *showlist_chain; + + showlist_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "showlist"); for (; list != NULL; list = list->next) { /* If we find a prefix, run its list, prefixing our output by its prefix (with "show " skipped). */ if (list->prefixlist && !list->abbrev_flag) { - ui_out_tuple_begin (uiout, "optionlist"); + struct cleanup *optionlist_chain + = make_cleanup_ui_out_tuple_begin_end (uiout, "optionlist"); ui_out_field_string (uiout, "prefix", list->prefixname + 5); cmd_show_list (*list->prefixlist, from_tty, list->prefixname + 5); - ui_out_tuple_end (uiout); + /* Close the tuple. */ + do_cleanups (optionlist_chain); } if (list->type == show_cmd) { - ui_out_tuple_begin (uiout, "option"); + struct cleanup *option_chain + = make_cleanup_ui_out_tuple_begin_end (uiout, "option"); ui_out_text (uiout, prefix); ui_out_field_string (uiout, "name", list->name); ui_out_text (uiout, ": "); do_setshow_command ((char *) NULL, from_tty, list); - ui_out_tuple_end (uiout); + /* Close the tuple. */ + do_cleanups (option_chain); } } - ui_out_tuple_end (uiout); + /* Close the tuple. */ + do_cleanups (showlist_chain); } |