* 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.
+2012-09-17 Yao Qi <yao@codesourcery.com>
+
+ * 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'.
+
2012-09-17 Siddhesh Poyarekar <siddhesh@redhat.com>
* infrun.c (restore_infcall_suspend_state): Eliminate single-use
show_remote_debug,
&setdebuglist, &showdebuglist);
- add_setshow_integer_cmd ("remotetimeout", no_class, &remote_timeout, _("\
+ add_setshow_zuinteger_unlimited_cmd ("remotetimeout", no_class,
+ &remote_timeout, _("\
Set timeout limit to wait for target to respond."), _("\
Show timeout limit to wait for target to respond."), _("\
This value is used to set the time limit for gdb to wait for a response\n\
from the target."),
- NULL,
- show_remote_timeout,
- &setlist, &showlist);
+ NULL,
+ show_remote_timeout,
+ &setlist, &showlist);
add_prefix_cmd ("debug", no_class, set_debug,
_("Generic command for setting gdb debugging flags"),
/* 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. */
+ value. SET_DOC and SHOW_DOC are the documentation strings. This
+ function is only used in Python API. Please don't use it elsewhere. */
void
add_setshow_integer_cmd (char *name, enum command_class class,
int *var,
NULL, NULL);
}
+void
+add_setshow_zuinteger_unlimited_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_unlimited, 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
}
}
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"));
}
break;
case var_integer:
case var_zinteger:
+ case var_zuinteger_unlimited:
{
char s[64];
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"));
}
/* Like var_uinteger but signed. *VAR is an int. The user can
type 0 to mean "unlimited", which is stored in *VAR as
- INT_MAX. */
+ INT_MAX. The only remaining use of it is the Python API.
+ Don't use it elsewhere. */
var_integer,
/* String which the user enters with escapes (e.g. the user types
/* ZeroableUnsignedInteger. *VAR is an unsigned int. Zero really
means zero. */
var_zuinteger,
+ /* ZeroableUnsignedInteger with unlimited value. *VAR is an unsigned
+ int, but its range is [0, INT_MAX]. -1 stands for unlimited. */
+ var_zuinteger_unlimited,
/* Enumerated type. Can only have one of the specified values.
*VAR is a char pointer to the name of the element that we
find. */
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
+extern void
+ add_setshow_zuinteger_unlimited_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);
+
/* Do a "show" command for each thing on a command list. */
extern void cmd_show_list (struct cmd_list_element *, int, char *);
+2012-09-17 Yao Qi <yao@codesourcery.com>
+
+ * gdb.texinfo (List): Describe the meaning of 0 and -1 in
+ 'set listsize'.
+
2012-09-13 Jan Kratochvil <jan.kratochvil@redhat.com>
Eli Zaretskii <eliz@gnu.org>
@item set listsize @var{count}
Make the @code{list} command display @var{count} source lines (unless
the @code{list} argument explicitly specifies some other number).
+Setting @var{count} to -1 means there's no limit and 0 means suppress
+display of source lines.
@kindex show listsize
@item show listsize
add_com_alias ("?", "reverse-search", class_files, 0);
}
- add_setshow_integer_cmd ("listsize", class_support, &lines_to_list, _("\
+ add_setshow_zuinteger_unlimited_cmd ("listsize", class_support,
+ &lines_to_list, _("\
Set number of source lines gdb will list by default."), _("\
Show number of source lines gdb will list by default."), NULL,
- NULL,
- show_lines_to_list,
- &setlist, &showlist);
+ NULL, show_lines_to_list,
+ &setlist, &showlist);
add_cmd ("substitute-path", class_files, set_substitute_path_command,
_("\
+2012-09-17 Yao Qi <yao@codesourcery.com>
+
+ * gdb.base/list.exp (set_listsize): Don't set arg to "unlimited"
+ when it is less than 0.
+
2012-09-17 Jan Kratochvil <jan.kratochvil@redhat.com>
PR 14119
if [gdb_test "set listsize $arg" ".*" "setting listsize to $arg #$set_listsize_count"] {
return 0;
}
- if { $arg <= 0 } {
+ if { $arg < 0 } {
set arg "unlimited";
}