diff options
author | Yao Qi <yao@codesourcery.com> | 2012-09-17 08:42:14 +0000 |
---|---|---|
committer | Yao Qi <yao@codesourcery.com> | 2012-09-17 08:42:14 +0000 |
commit | 6fc1c7733ea454110cfcb02be7d9b4b0f12eca91 (patch) | |
tree | 21dc5418ed29e2209c93817d94465640b82d124f /gdb/cli/cli-setshow.c | |
parent | 6acef6cd7bfefe89401de1eca7e12e737eb94da6 (diff) | |
download | gdb-6fc1c7733ea454110cfcb02be7d9b4b0f12eca91.zip gdb-6fc1c7733ea454110cfcb02be7d9b4b0f12eca91.tar.gz gdb-6fc1c7733ea454110cfcb02be7d9b4b0f12eca91.tar.bz2 |
gdb/
* cli/cli-decode.c (add_setshow_zuinteger_unlimited_cmd): New.
Update comment to add_setshow_integer_cmd.
* cli/cli-setshow.c (do_set_command): Handle case
'var_zuinteger_unlimited'.
(do_show_command): Likewise.
* cli/cli-cmds.c (init_cmds): Call add_setshow_zuinteger_unlimited_cmd
for command 'remotetimeout'.
* command.h (enum var_types): New zuinteger_unlimited. Update comment
to var_integer.
* source.c (_initialize_source): Call add_setshow_zuinteger_unlimited_cmd
for command 'set listsize'.
gdb/doc/
* gdb.texinfo (List): Describe the meaning of 0 and -1 in
'set listsize'.
gdb/testsuite/
* gdb.base/list.exp (set_listsize): Don't set arg to "unlimited"
when it is less than 0.
Diffstat (limited to 'gdb/cli/cli-setshow.c')
-rw-r--r-- | gdb/cli/cli-setshow.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c index 89e095a..9d8cb2e 100644 --- a/gdb/cli/cli-setshow.c +++ b/gdb/cli/cli-setshow.c @@ -379,6 +379,26 @@ do_set_command (char *arg, int from_tty, struct cmd_list_element *c) } } break; + case var_zuinteger_unlimited: + { + LONGEST val; + + if (arg == NULL) + error_no_arg (_("integer to set it to.")); + val = parse_and_eval_long (arg); + + if (val >= INT_MAX) + error (_("integer %s out of range"), plongest (val)); + else if (val < -1) + error (_("only -1 is allowed to set as unlimited")); + + if (*(int *) c->var != val) + { + *(int *) c->var = val; + option_changed = 1; + } + } + break; default: error (_("gdb internal error: bad var_type in do_setshow_command")); } @@ -478,6 +498,7 @@ do_set_command (char *arg, int from_tty, struct cmd_list_element *c) break; case var_integer: case var_zinteger: + case var_zuinteger_unlimited: { char s[64]; @@ -562,7 +583,14 @@ do_show_command (char *arg, int from_tty, struct cmd_list_element *c) else fprintf_filtered (stb, "%d", *(int *) c->var); break; - + case var_zuinteger_unlimited: + { + if (*(int *) c->var == -1) + fputs_filtered ("unlimited", stb); + else + fprintf_filtered (stb, "%u", *(int *) c->var); + } + break; default: error (_("gdb internal error: bad var_type in do_show_command")); } |