2009-08-13 Pedro Alves <pedro@codesourcery.com>
PR gdb/8869: * language.c (language, type, range, case_sensitive): Make const. (show_language_command): Don't call deprecated_show_value_hack. Special case "auto". (set_language_command): An unrecognized language is now an internal error instead of a user error. Don't call set_lang_str. (show_type_command): Don't call deprecated_show_value_hack. Special case "auto". Use warning. (set_type_command): An unrecognized type is now an internal error instead of a user error. Output type check mismatch with language here. Don't call set_type_str. (show_range_command): Don't call deprecated_show_value_hack. Special case "auto". Use warning. (set_range_command): An unrecognized range check is now an internal error instead of a warning. Output range check mismatch with language here. Don't call set_range_str. (show_case_command): Don't call deprecated_show_value_hack. Special case "auto". Use warning. (set_case_command): Don't call set_case_str. An unrecognized case check is now an internal error instead of a warning. Output range check mismatch with language here. Don't call set_case_str. (set_type_range_case): Don't call set_type_str, set_range_str or set_case_str here. (set_lang_str, set_type_str, set_range_str, set_case_str): Delete. (add_language): Install or reinstall the "set language" command here, and make it an enum command. Build the enumeration and the help string from the current list of known languages. (_initialize_language): Don't install "set language" here. Make "set check type", "set check range" and "set case-sensitive" enum commands. Register the "auto" "local" and "unknown" languages in that order. 2009-08-13 Pedro Alves <pedro@codesourcery.com> * gdb.base/default.exp: Adjust "set language test": it's now an enum command. Larger help string moved to "help set language". * gdb.base/help.exp: Adjust "help set language" expected output, now lists all known languages.
This commit is contained in:
parent
5efd5804f7
commit
b84aa90aa5
@ -1,3 +1,38 @@
|
||||
2009-08-13 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
PR gdb/8869:
|
||||
|
||||
* language.c (language, type, range, case_sensitive): Make const.
|
||||
(show_language_command): Don't call deprecated_show_value_hack.
|
||||
Special case "auto".
|
||||
(set_language_command): An unrecognized language is now an
|
||||
internal error instead of a user error. Don't call set_lang_str.
|
||||
(show_type_command): Don't call deprecated_show_value_hack.
|
||||
Special case "auto". Use warning.
|
||||
(set_type_command): An unrecognized type is now an internal error
|
||||
instead of a user error. Output type check mismatch with language
|
||||
here. Don't call set_type_str.
|
||||
(show_range_command): Don't call deprecated_show_value_hack.
|
||||
Special case "auto". Use warning.
|
||||
(set_range_command): An unrecognized range check is now an
|
||||
internal error instead of a warning. Output range check mismatch
|
||||
with language here. Don't call set_range_str.
|
||||
(show_case_command): Don't call deprecated_show_value_hack.
|
||||
Special case "auto". Use warning.
|
||||
(set_case_command): Don't call set_case_str. An unrecognized case
|
||||
check is now an internal error instead of a warning. Output range
|
||||
check mismatch with language here. Don't call set_case_str.
|
||||
(set_type_range_case): Don't call set_type_str, set_range_str or
|
||||
set_case_str here.
|
||||
(set_lang_str, set_type_str, set_range_str, set_case_str): Delete.
|
||||
(add_language): Install or reinstall the "set language" command
|
||||
here, and make it an enum command. Build the enumeration and the
|
||||
help string from the current list of known languages.
|
||||
(_initialize_language): Don't install "set language" here. Make
|
||||
"set check type", "set check range" and "set case-sensitive" enum
|
||||
commands. Register the "auto" "local" and "unknown" languages in
|
||||
that order.
|
||||
|
||||
2009-08-13 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
Revert 2009-08-07 changes for PR gdb/8869:
|
||||
|
414
gdb/language.c
414
gdb/language.c
@ -47,14 +47,6 @@
|
||||
|
||||
extern void _initialize_language (void);
|
||||
|
||||
static void set_case_str (void);
|
||||
|
||||
static void set_range_str (void);
|
||||
|
||||
static void set_type_str (void);
|
||||
|
||||
static void set_lang_str (void);
|
||||
|
||||
static void unk_lang_error (char *);
|
||||
|
||||
static int unk_lang_parser (void);
|
||||
@ -111,16 +103,12 @@ static unsigned languages_size;
|
||||
static unsigned languages_allocsize;
|
||||
#define DEFAULT_ALLOCSIZE 4
|
||||
|
||||
/* The "set language/type/range" commands all put stuff in these
|
||||
buffers. This is to make them work as set/show commands. The
|
||||
user's string is copied here, then the set_* commands look at
|
||||
them and update them to something that looks nice when it is
|
||||
printed out. */
|
||||
|
||||
static char *language;
|
||||
static char *type;
|
||||
static char *range;
|
||||
static char *case_sensitive;
|
||||
/* The current values of the "set language/type/range" enum
|
||||
commands. */
|
||||
static const char *language;
|
||||
static const char *type;
|
||||
static const char *range;
|
||||
static const char *case_sensitive;
|
||||
|
||||
/* Warning issued when current_language and the language of the current
|
||||
frame do not match. */
|
||||
@ -138,7 +126,15 @@ show_language_command (struct ui_file *file, int from_tty,
|
||||
{
|
||||
enum language flang; /* The language of the current frame */
|
||||
|
||||
deprecated_show_value_hack (file, from_tty, c, value);
|
||||
if (language_mode == language_mode_auto)
|
||||
fprintf_filtered (gdb_stdout,
|
||||
_("The current source language is "
|
||||
"\"auto; currently %s\".\n"),
|
||||
current_language->la_name);
|
||||
else
|
||||
fprintf_filtered (gdb_stdout, _("The current source language is \"%s\".\n"),
|
||||
current_language->la_name);
|
||||
|
||||
flang = get_frame_language ();
|
||||
if (flang != language_unknown &&
|
||||
language_mode == language_mode_manual &&
|
||||
@ -152,34 +148,6 @@ set_language_command (char *ignore, int from_tty, struct cmd_list_element *c)
|
||||
{
|
||||
int i;
|
||||
enum language flang;
|
||||
char *err_lang;
|
||||
|
||||
if (!language || !language[0])
|
||||
{
|
||||
printf_unfiltered (_("\
|
||||
The currently understood settings are:\n\n\
|
||||
local or auto Automatic setting based on source file\n"));
|
||||
|
||||
for (i = 0; i < languages_size; ++i)
|
||||
{
|
||||
/* Already dealt with these above. */
|
||||
if (languages[i]->la_language == language_unknown
|
||||
|| languages[i]->la_language == language_auto)
|
||||
continue;
|
||||
|
||||
/* FIXME: i18n: for now assume that the human-readable name
|
||||
is just a capitalization of the internal name. */
|
||||
printf_unfiltered ("%-16s Use the %c%s language\n",
|
||||
languages[i]->la_name,
|
||||
/* Capitalize first letter of language
|
||||
name. */
|
||||
toupper (languages[i]->la_name[0]),
|
||||
languages[i]->la_name + 1);
|
||||
}
|
||||
/* Restore the silly string. */
|
||||
set_language (current_language->la_language);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Search the list of languages for a match. */
|
||||
for (i = 0; i < languages_size; i++)
|
||||
@ -206,19 +174,15 @@ local or auto Automatic setting based on source file\n"));
|
||||
language_mode = language_mode_manual;
|
||||
current_language = languages[i];
|
||||
set_type_range_case ();
|
||||
set_lang_str ();
|
||||
expected_language = current_language;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Reset the language (esp. the global string "language") to the
|
||||
correct values. */
|
||||
err_lang = xstrdup (language);
|
||||
make_cleanup (xfree, err_lang); /* Free it after error */
|
||||
set_language (current_language->la_language);
|
||||
error (_("Unknown language `%s'."), err_lang);
|
||||
internal_error (__FILE__, __LINE__,
|
||||
"Couldn't find language `%s' in known languages list.",
|
||||
language);
|
||||
}
|
||||
|
||||
/* Show command. Display a warning if the type setting does
|
||||
@ -227,10 +191,37 @@ static void
|
||||
show_type_command (struct ui_file *file, int from_tty,
|
||||
struct cmd_list_element *c, const char *value)
|
||||
{
|
||||
deprecated_show_value_hack (file, from_tty, c, value);
|
||||
if (type_check != current_language->la_type_check)
|
||||
printf_unfiltered (
|
||||
"Warning: the current type check setting does not match the language.\n");
|
||||
if (type_mode == type_mode_auto)
|
||||
{
|
||||
char *tmp = NULL;
|
||||
|
||||
switch (type_check)
|
||||
{
|
||||
case type_check_on:
|
||||
tmp = "on";
|
||||
break;
|
||||
case type_check_off:
|
||||
tmp = "off";
|
||||
break;
|
||||
case type_check_warn:
|
||||
tmp = "warn";
|
||||
break;
|
||||
default:
|
||||
internal_error (__FILE__, __LINE__,
|
||||
"Unrecognized type check setting.");
|
||||
}
|
||||
|
||||
fprintf_filtered (gdb_stdout,
|
||||
_("Type checking is \"auto; currently %s\".\n"),
|
||||
tmp);
|
||||
}
|
||||
else
|
||||
fprintf_filtered (gdb_stdout, _("Type checking is \"%s\".\n"),
|
||||
value);
|
||||
|
||||
if (type_check != current_language->la_type_check)
|
||||
warning (_("the current type check setting"
|
||||
" does not match the language.\n"));
|
||||
}
|
||||
|
||||
/* Set command. Change the setting for type checking. */
|
||||
@ -256,16 +247,15 @@ set_type_command (char *ignore, int from_tty, struct cmd_list_element *c)
|
||||
{
|
||||
type_mode = type_mode_auto;
|
||||
set_type_range_case ();
|
||||
/* Avoid hitting the set_type_str call below. We
|
||||
did it in set_type_range_case. */
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
warning (_("Unrecognized type check setting: \"%s\""), type);
|
||||
}
|
||||
set_type_str ();
|
||||
show_type_command (NULL, from_tty, NULL, NULL);
|
||||
internal_error (__FILE__, __LINE__,
|
||||
_("Unrecognized type check setting: \"%s\""), type);
|
||||
|
||||
if (type_check != current_language->la_type_check)
|
||||
warning (_("the current type check setting"
|
||||
" does not match the language.\n"));
|
||||
}
|
||||
|
||||
/* Show command. Display a warning if the range setting does
|
||||
@ -274,10 +264,37 @@ static void
|
||||
show_range_command (struct ui_file *file, int from_tty,
|
||||
struct cmd_list_element *c, const char *value)
|
||||
{
|
||||
deprecated_show_value_hack (file, from_tty, c, value);
|
||||
if (range_mode == range_mode_auto)
|
||||
{
|
||||
char *tmp;
|
||||
|
||||
switch (range_check)
|
||||
{
|
||||
case range_check_on:
|
||||
tmp = "on";
|
||||
break;
|
||||
case range_check_off:
|
||||
tmp = "off";
|
||||
break;
|
||||
case range_check_warn:
|
||||
tmp = "warn";
|
||||
break;
|
||||
default:
|
||||
internal_error (__FILE__, __LINE__,
|
||||
"Unrecognized range check setting.");
|
||||
}
|
||||
|
||||
fprintf_filtered (gdb_stdout,
|
||||
_("Range checking is \"auto; currently %s\".\n"),
|
||||
tmp);
|
||||
}
|
||||
else
|
||||
fprintf_filtered (gdb_stdout, _("Range checking is \"%s\".\n"),
|
||||
value);
|
||||
|
||||
if (range_check != current_language->la_range_check)
|
||||
printf_unfiltered (
|
||||
"Warning: the current range check setting does not match the language.\n");
|
||||
warning (_("the current range check setting "
|
||||
"does not match the language.\n"));
|
||||
}
|
||||
|
||||
/* Set command. Change the setting for range checking. */
|
||||
@ -303,16 +320,16 @@ set_range_command (char *ignore, int from_tty, struct cmd_list_element *c)
|
||||
{
|
||||
range_mode = range_mode_auto;
|
||||
set_type_range_case ();
|
||||
/* Avoid hitting the set_range_str call below. We
|
||||
did it in set_type_range_case. */
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
warning (_("Unrecognized range check setting: \"%s\""), range);
|
||||
internal_error (__FILE__, __LINE__,
|
||||
_("Unrecognized range check setting: \"%s\""), range);
|
||||
}
|
||||
set_range_str ();
|
||||
show_range_command (NULL, from_tty, NULL, NULL);
|
||||
if (range_check != current_language->la_range_check)
|
||||
warning (_("the current range check setting "
|
||||
"does not match the language.\n"));
|
||||
}
|
||||
|
||||
/* Show command. Display a warning if the case sensitivity setting does
|
||||
@ -321,10 +338,35 @@ static void
|
||||
show_case_command (struct ui_file *file, int from_tty,
|
||||
struct cmd_list_element *c, const char *value)
|
||||
{
|
||||
deprecated_show_value_hack (file, from_tty, c, value);
|
||||
if (case_mode == case_mode_auto)
|
||||
{
|
||||
char *tmp = NULL;
|
||||
|
||||
switch (case_sensitivity)
|
||||
{
|
||||
case case_sensitive_on:
|
||||
tmp = "on";
|
||||
break;
|
||||
case case_sensitive_off:
|
||||
tmp = "off";
|
||||
break;
|
||||
default:
|
||||
internal_error (__FILE__, __LINE__,
|
||||
"Unrecognized case-sensitive setting.");
|
||||
}
|
||||
|
||||
fprintf_filtered (gdb_stdout,
|
||||
_("Case sensitivity in "
|
||||
"name search is \"auto; currently %s\".\n"),
|
||||
tmp);
|
||||
}
|
||||
else
|
||||
fprintf_filtered (gdb_stdout, _("Case sensitivity in name search is \"%s\".\n"),
|
||||
value);
|
||||
|
||||
if (case_sensitivity != current_language->la_case_sensitivity)
|
||||
printf_unfiltered(
|
||||
"Warning: the current case sensitivity setting does not match the language.\n");
|
||||
warning (_("the current case sensitivity setting does not match "
|
||||
"the language.\n"));
|
||||
}
|
||||
|
||||
/* Set command. Change the setting for case sensitivity. */
|
||||
@ -346,17 +388,18 @@ set_case_command (char *ignore, int from_tty, struct cmd_list_element *c)
|
||||
{
|
||||
case_mode = case_mode_auto;
|
||||
set_type_range_case ();
|
||||
/* Avoid hitting the set_case_str call below. We did it in
|
||||
set_type_range_case. */
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
warning (_("Unrecognized case-sensitive setting: \"%s\""),
|
||||
case_sensitive);
|
||||
internal_error (__FILE__, __LINE__,
|
||||
"Unrecognized case-sensitive setting: \"%s\"",
|
||||
case_sensitive);
|
||||
}
|
||||
set_case_str();
|
||||
show_case_command (NULL, from_tty, NULL, NULL);
|
||||
|
||||
if (case_sensitivity != current_language->la_case_sensitivity)
|
||||
warning (_("the current case sensitivity setting does not match "
|
||||
"the language.\n"));
|
||||
}
|
||||
|
||||
/* Set the status of range and type checking and case sensitivity based on
|
||||
@ -366,7 +409,6 @@ set_case_command (char *ignore, int from_tty, struct cmd_list_element *c)
|
||||
static void
|
||||
set_type_range_case (void)
|
||||
{
|
||||
|
||||
if (range_mode == range_mode_auto)
|
||||
range_check = current_language->la_range_check;
|
||||
|
||||
@ -375,10 +417,6 @@ set_type_range_case (void)
|
||||
|
||||
if (case_mode == case_mode_auto)
|
||||
case_sensitivity = current_language->la_case_sensitivity;
|
||||
|
||||
set_type_str ();
|
||||
set_range_str ();
|
||||
set_case_str ();
|
||||
}
|
||||
|
||||
/* Set current language to (enum language) LANG. Returns previous language. */
|
||||
@ -397,7 +435,6 @@ set_language (enum language lang)
|
||||
{
|
||||
current_language = languages[i];
|
||||
set_type_range_case ();
|
||||
set_lang_str ();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -405,100 +442,6 @@ set_language (enum language lang)
|
||||
return prev_language;
|
||||
}
|
||||
|
||||
/* This page contains functions that update the global vars
|
||||
language, type and range. */
|
||||
static void
|
||||
set_lang_str (void)
|
||||
{
|
||||
char *prefix = "";
|
||||
|
||||
if (language)
|
||||
xfree (language);
|
||||
if (language_mode == language_mode_auto)
|
||||
prefix = "auto; currently ";
|
||||
|
||||
language = concat (prefix, current_language->la_name, (char *)NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
set_type_str (void)
|
||||
{
|
||||
char *tmp = NULL, *prefix = "";
|
||||
|
||||
if (type)
|
||||
xfree (type);
|
||||
if (type_mode == type_mode_auto)
|
||||
prefix = "auto; currently ";
|
||||
|
||||
switch (type_check)
|
||||
{
|
||||
case type_check_on:
|
||||
tmp = "on";
|
||||
break;
|
||||
case type_check_off:
|
||||
tmp = "off";
|
||||
break;
|
||||
case type_check_warn:
|
||||
tmp = "warn";
|
||||
break;
|
||||
default:
|
||||
error (_("Unrecognized type check setting."));
|
||||
}
|
||||
|
||||
type = concat (prefix, tmp, (char *)NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
set_range_str (void)
|
||||
{
|
||||
char *tmp, *pref = "";
|
||||
|
||||
if (range_mode == range_mode_auto)
|
||||
pref = "auto; currently ";
|
||||
|
||||
switch (range_check)
|
||||
{
|
||||
case range_check_on:
|
||||
tmp = "on";
|
||||
break;
|
||||
case range_check_off:
|
||||
tmp = "off";
|
||||
break;
|
||||
case range_check_warn:
|
||||
tmp = "warn";
|
||||
break;
|
||||
default:
|
||||
error (_("Unrecognized range check setting."));
|
||||
}
|
||||
|
||||
if (range)
|
||||
xfree (range);
|
||||
range = concat (pref, tmp, (char *)NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
set_case_str (void)
|
||||
{
|
||||
char *tmp = NULL, *prefix = "";
|
||||
|
||||
if (case_mode==case_mode_auto)
|
||||
prefix = "auto; currently ";
|
||||
|
||||
switch (case_sensitivity)
|
||||
{
|
||||
case case_sensitive_on:
|
||||
tmp = "on";
|
||||
break;
|
||||
case case_sensitive_off:
|
||||
tmp = "off";
|
||||
break;
|
||||
default:
|
||||
error (_("Unrecognized case-sensitive setting."));
|
||||
}
|
||||
|
||||
xfree (case_sensitive);
|
||||
case_sensitive = concat (prefix, tmp, (char *)NULL);
|
||||
}
|
||||
|
||||
/* Print out the current language settings: language, range and
|
||||
type checking. If QUIETLY, print only what has changed. */
|
||||
@ -938,6 +881,15 @@ show_check (char *ignore, int from_tty)
|
||||
void
|
||||
add_language (const struct language_defn *lang)
|
||||
{
|
||||
/* For the "set language" command. */
|
||||
static char **language_names = NULL;
|
||||
/* For the "help set language" command. */
|
||||
static char *language_set_doc = NULL;
|
||||
|
||||
int i;
|
||||
struct ui_file *tmp_stream;
|
||||
long len;
|
||||
|
||||
if (lang->la_magic != LANG_MAGIC)
|
||||
{
|
||||
fprintf_unfiltered (gdb_stderr, "Magic number of %s language struct wrong\n",
|
||||
@ -958,6 +910,52 @@ add_language (const struct language_defn *lang)
|
||||
languages_allocsize * sizeof (*languages));
|
||||
}
|
||||
languages[languages_size++] = lang;
|
||||
|
||||
/* Build the language names array, to be used as enumeration in the
|
||||
set language" enum command. */
|
||||
language_names = xrealloc (language_names,
|
||||
(languages_size + 1) * sizeof (const char *));
|
||||
for (i = 0; i < languages_size; ++i)
|
||||
language_names[i] = languages[i]->la_name;
|
||||
language_names[i] = NULL;
|
||||
|
||||
/* Build the "help set language" docs. */
|
||||
tmp_stream = mem_fileopen ();
|
||||
|
||||
fprintf_unfiltered (tmp_stream, _("\
|
||||
Set the current source language.\n\
|
||||
The currently understood settings are:\n\n\
|
||||
local or auto Automatic setting based on source file\n"));
|
||||
|
||||
for (i = 0; i < languages_size; ++i)
|
||||
{
|
||||
/* Already dealt with these above. */
|
||||
if (languages[i]->la_language == language_unknown
|
||||
|| languages[i]->la_language == language_auto)
|
||||
continue;
|
||||
|
||||
/* FIXME: i18n: for now assume that the human-readable name
|
||||
is just a capitalization of the internal name. */
|
||||
fprintf_unfiltered (tmp_stream, "%-16s Use the %c%s language\n",
|
||||
languages[i]->la_name,
|
||||
/* Capitalize first letter of language
|
||||
name. */
|
||||
toupper (languages[i]->la_name[0]),
|
||||
languages[i]->la_name + 1);
|
||||
}
|
||||
|
||||
xfree (language_set_doc);
|
||||
language_set_doc = ui_file_xstrdup (tmp_stream, &len);
|
||||
ui_file_delete (tmp_stream);
|
||||
|
||||
add_setshow_enum_cmd ("language", class_support,
|
||||
(const char **) language_names,
|
||||
&language,
|
||||
language_set_doc, _("\
|
||||
Show the current source language."), NULL,
|
||||
set_language_command,
|
||||
show_language_command,
|
||||
&setlist, &showlist);
|
||||
}
|
||||
|
||||
/* Iterate through all registered languages looking for and calling
|
||||
@ -1340,22 +1338,17 @@ language_lookup_primitive_type_by_name (const struct language_defn *la,
|
||||
void
|
||||
_initialize_language (void)
|
||||
{
|
||||
struct cmd_list_element *set, *show;
|
||||
static const char *type_or_range_names[]
|
||||
= { "on", "off", "warn", "auto", NULL };
|
||||
|
||||
static const char *case_sensitive_names[]
|
||||
= { "on", "off", "auto", NULL };
|
||||
|
||||
language_gdbarch_data
|
||||
= gdbarch_data_register_post_init (language_gdbarch_post_init);
|
||||
|
||||
/* GDB commands for language specific stuff */
|
||||
|
||||
/* FIXME: cagney/2005-02-20: This should be implemented using an
|
||||
enum. */
|
||||
add_setshow_string_noescape_cmd ("language", class_support, &language, _("\
|
||||
Set the current source language."), _("\
|
||||
Show the current source language."), NULL,
|
||||
set_language_command,
|
||||
show_language_command,
|
||||
&setlist, &showlist);
|
||||
|
||||
add_prefix_cmd ("check", no_class, set_check,
|
||||
_("Set the status of the type/range checker."),
|
||||
&setchecklist, "set check ", 0, &setlist);
|
||||
@ -1368,38 +1361,33 @@ Show the current source language."), NULL,
|
||||
add_alias_cmd ("c", "check", no_class, 1, &showlist);
|
||||
add_alias_cmd ("ch", "check", no_class, 1, &showlist);
|
||||
|
||||
/* FIXME: cagney/2005-02-20: This should be implemented using an
|
||||
enum. */
|
||||
add_setshow_string_noescape_cmd ("type", class_support, &type, _("\
|
||||
add_setshow_enum_cmd ("type", class_support, type_or_range_names, &type, _("\
|
||||
Set type checking. (on/warn/off/auto)"), _("\
|
||||
Show type checking. (on/warn/off/auto)"), NULL,
|
||||
set_type_command,
|
||||
show_type_command,
|
||||
&setchecklist, &showchecklist);
|
||||
set_type_command,
|
||||
show_type_command,
|
||||
&setchecklist, &showchecklist);
|
||||
|
||||
/* FIXME: cagney/2005-02-20: This should be implemented using an
|
||||
enum. */
|
||||
add_setshow_string_noescape_cmd ("range", class_support, &range, _("\
|
||||
add_setshow_enum_cmd ("range", class_support, type_or_range_names,
|
||||
&range, _("\
|
||||
Set range checking. (on/warn/off/auto)"), _("\
|
||||
Show range checking. (on/warn/off/auto)"), NULL,
|
||||
set_range_command,
|
||||
show_range_command,
|
||||
&setchecklist, &showchecklist);
|
||||
set_range_command,
|
||||
show_range_command,
|
||||
&setchecklist, &showchecklist);
|
||||
|
||||
/* FIXME: cagney/2005-02-20: This should be implemented using an
|
||||
enum. */
|
||||
add_setshow_string_noescape_cmd ("case-sensitive", class_support,
|
||||
&case_sensitive, _("\
|
||||
add_setshow_enum_cmd ("case-sensitive", class_support, case_sensitive_names,
|
||||
&case_sensitive, _("\
|
||||
Set case sensitivity in name search. (on/off/auto)"), _("\
|
||||
Show case sensitivity in name search. (on/off/auto)"), _("\
|
||||
For Fortran the default is off; for other languages the default is on."),
|
||||
set_case_command,
|
||||
show_case_command,
|
||||
&setlist, &showlist);
|
||||
set_case_command,
|
||||
show_case_command,
|
||||
&setlist, &showlist);
|
||||
|
||||
add_language (&unknown_language_defn);
|
||||
add_language (&local_language_defn);
|
||||
add_language (&auto_language_defn);
|
||||
add_language (&local_language_defn);
|
||||
add_language (&unknown_language_defn);
|
||||
|
||||
language = xstrdup ("auto");
|
||||
type = xstrdup ("auto");
|
||||
|
@ -1,3 +1,10 @@
|
||||
2009-08-13 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* gdb.base/default.exp: Adjust "set language test": it's now an
|
||||
enum command. Larger help string moved to "help set language".
|
||||
* gdb.base/help.exp: Adjust "help set language" expected output,
|
||||
now lists all known languages.
|
||||
|
||||
2009-08-11 Nathan Froyd <froydnj@codesourcery.com>
|
||||
|
||||
* gdb.arch/altivec-abi.exp (altivec_abi_tests): Turn on printing of
|
||||
|
@ -530,7 +530,7 @@ gdb_test "set history size" "Argument required .integer to set it to.*" "set his
|
||||
#test set history
|
||||
gdb_test "set history" "\"set history\" must be followed by the name of a history subcommand.(\[^\r\n\]*\[\r\n\])+List of set history subcommands:(\[^\r\n\]*\[\r\n\])+set history expansion -- Set history expansion on command input(\[^\r\n\]*\[\r\n\])+set history filename -- Set the filename in which to record the command history(\[^\r\n\]*\[\r\n\])+set history save -- Set saving of the history record on exit(\[^\r\n\]*\[\r\n\])+set history size -- Set the size of the command history(\[^\r\n\]*\[\r\n\])+Type \"help set history\" followed by set history subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous." "set history"
|
||||
#test set language
|
||||
gdb_test "set language" "The currently understood settings are:(\[^\r\n\]*\[\r\n\])+local or auto *Automatic setting based on source file(\[^\r\n\]*\[\r\n\])+c *Use the C language(\[^\r\n\]*\[\r\n\])+c\[+\]+ *Use the C\[+\]+ language(\[^\r\n\]*\[\r\n\])+modula-2 *Use the Modula-2 language.*" "set language"
|
||||
gdb_test "set language" "Requires an argument. Valid arguments are auto, local, unknown, ada, c, c.., asm, minimal, fortran, objective-c, java, modula-2, pascal, scheme." "set language"
|
||||
#test set listsize
|
||||
gdb_test "set listsize" "Argument required .integer to set it to.*" "set listsize"
|
||||
#test set print "p" abbreviation
|
||||
|
@ -418,7 +418,8 @@ test_prefix_command_help {"set history"} {
|
||||
"Generic command for setting command history parameters\.\[\r\n\]+"
|
||||
}
|
||||
# test help set language
|
||||
gdb_test "help set language" "Set the current source language\." "help set language"
|
||||
gdb_test "help set language" "Set the current source language\.\[\r\n\]+The currently understood settings are:(\[^\r\n\]*\[\r\n\])+local or auto *Automatic setting based on source file(\[^\r\n\]*\[\r\n\])+c *Use the C language(\[^\r\n\]*\[\r\n\])+c\[+\]+ *Use the C\[+\]+ language(\[^\r\n\]*\[\r\n\])+modula-2 *Use the Modula-2 language.*" "help set language"
|
||||
|
||||
# test help set listsize
|
||||
gdb_test "help set listsize" "Set number of source lines gdb will list by default\." "help set listsize"
|
||||
# test help set print "p" abbreviation
|
||||
|
Loading…
Reference in New Issue
Block a user