aboutsummaryrefslogtreecommitdiff
path: root/gdb/cli
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2007-11-17 00:57:01 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2007-11-17 00:57:01 +0000
commitf0704234779ecc2cae657adc91d615d08dd8fe24 (patch)
tree3d715678021493729b4ec96da1d68118d6cd0e4c /gdb/cli
parentc4ec0cc236efaa90607e43f0a9ead9cf42de8874 (diff)
downloadgdb-f0704234779ecc2cae657adc91d615d08dd8fe24.zip
gdb-f0704234779ecc2cae657adc91d615d08dd8fe24.tar.gz
gdb-f0704234779ecc2cae657adc91d615d08dd8fe24.tar.bz2
* cli/cli-setshow.c (do_setshow_command): Use dynamically sized buffer
to construct error message if no argument was supplied.
Diffstat (limited to 'gdb/cli')
-rw-r--r--gdb/cli/cli-setshow.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c
index 54f2bd4..6d62a23 100644
--- a/gdb/cli/cli-setshow.c
+++ b/gdb/cli/cli-setshow.c
@@ -242,16 +242,22 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
/* if no argument was supplied, print an informative error message */
if (arg == NULL)
{
- char msg[1024];
- strcpy (msg, "Requires an argument. Valid arguments are ");
+ char *msg;
+ int msg_len = 0;
+ for (i = 0; c->enums[i]; i++)
+ msg_len += strlen (c->enums[i]) + 2;
+
+ msg = xmalloc (msg_len);
+ *msg = '\0';
+ make_cleanup (xfree, msg);
+
for (i = 0; c->enums[i]; i++)
{
if (i != 0)
strcat (msg, ", ");
strcat (msg, c->enums[i]);
}
- strcat (msg, ".");
- error (("%s"), msg);
+ error (_("Requires an argument. Valid arguments are %s."), msg);
}
p = strchr (arg, ' ');