/* Character set conversion support for GDB.
- Copyright 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc.
This file is part of GDB.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
#include "defs.h"
#include "charset.h"
#endif
static const char *host_charset_name = GDB_DEFAULT_HOST_CHARSET;
+static void
+show_host_charset_name (struct ui_file *file, int from_tty,
+ struct cmd_list_element *c,
+ const char *value)
+{
+ fprintf_filtered (file, _("The host character set is \"%s\".\n"), value);
+}
+
static const char *target_charset_name = GDB_DEFAULT_TARGET_CHARSET;
+static void
+show_target_charset_name (struct ui_file *file, int from_tty,
+ struct cmd_list_element *c, const char *value)
+{
+ fprintf_filtered (file, _("The target character set is \"%s\".\n"),
+ value);
+}
+
static const char *host_charset_enum[] =
{
ci->i = (iconv_t) 0;
if (iconv_close (i) == -1)
- error ("Error closing `iconv' descriptor for "
- "`%s'-to-`%s' character conversion: %s",
+ error (_("Error closing `iconv' descriptor for "
+ "`%s'-to-`%s' character conversion: %s"),
ci->from->name, ci->to->name, safe_strerror (errno));
}
/* Anything else is mysterious. */
internal_error (__FILE__, __LINE__,
- "Error converting character `%d' from `%s' to `%s' "
- "character set: %s",
+ _("Error converting character `%d' from `%s' to `%s' "
+ "character set: %s"),
from_char, ci->from->name, ci->to->name,
safe_strerror (errno));
}
/* Default non-trivial conversion functions. */
-static char backslashable[] = "abefnrtv";
-static char *backslashed[] = {"a", "b", "e", "f", "n", "r", "t", "v", "0"};
-static char represented[] = "\a\b\e\f\n\r\t\v";
+static char backslashable[] = "abfnrtv";
+static char *backslashed[] = {"a", "b", "f", "n", "r", "t", "v", "0"};
+static char represented[] = "\a\b\f\n\r\t\v";
/* Translate TARGET_CHAR into the host character set, and see if it
struct charset *cs = lookup_charset (name);
if (! cs)
- error ("GDB doesn't know of any character set named `%s'.", name);
+ error (_("GDB doesn't know of any character set named `%s'."), name);
return cs;
}
check_valid_host_charset (struct charset *cs)
{
if (! cs->valid_host_charset)
- error ("GDB can't use `%s' as its host character set.", cs->name);
+ error (_("GDB can't use `%s' as its host character set."), cs->name);
}
/* Set the host and target character sets to HOST and TARGET. */
{
if (check_iconv_cache (&cached_iconv_host_to_target, host, target)
< 0)
- error ("GDB can't convert from the `%s' character set to `%s'.",
+ error (_("GDB can't convert from the `%s' character set to `%s'."),
host->name, target->name);
}
if (! t2h || ! t2h->convert_char)
{
if (check_iconv_cache (&cached_iconv_target_to_host, target, host)
< 0)
- error ("GDB can't convert from the `%s' character set to `%s'.",
+ error (_("GDB can't convert from the `%s' character set to `%s'."),
target->name, host->name);
}
}
/* sfunc for the 'show charset' command. */
static void
-show_charset (char *arg, int from_tty)
+show_charset (struct ui_file *file, int from_tty, struct cmd_list_element *c,
+ const char *name)
{
if (current_host_charset == current_target_charset)
- {
- printf_filtered ("The current host and target character set is `%s'.\n",
- host_charset ());
- }
+ fprintf_filtered (file,
+ _("The current host and target character set is `%s'.\n"),
+ host_charset ());
else
{
- printf_filtered ("The current host character set is `%s'.\n",
- host_charset ());
- printf_filtered ("The current target character set is `%s'.\n",
- target_charset ());
+ fprintf_filtered (file, _("The current host character set is `%s'.\n"),
+ host_charset ());
+ fprintf_filtered (file, _("The current target character set is `%s'.\n"),
+ target_charset ());
}
}
set_host_charset (host_charset_name);
set_target_charset (target_charset_name);
- new_cmd = add_set_enum_cmd ("charset",
- class_support,
- host_charset_enum,
- &host_charset_name,
- "Set the host and target character sets.\n"
- "The `host character set' is the one used by the system GDB is running on.\n"
- "The `target character set' is the one used by the program being debugged.\n"
- "You may only use supersets of ASCII for your host character set; GDB does\n"
- "not support any others.\n"
- "To see a list of the character sets GDB supports, type `set charset <TAB>'.",
- &setlist);
-
- /* Note that the sfunc below needs to set target_charset_name, because
- the 'set charset' command sets two variables. */
- set_cmd_sfunc (new_cmd, set_charset_sfunc);
- /* Don't use set_from_show - need to print some extra info. */
- add_cmd ("charset", class_support, show_charset,
- "Show the host and target character sets.\n"
- "The `host character set' is the one used by the system GDB is running on.\n"
- "The `target character set' is the one used by the program being debugged.\n"
- "You may only use supersets of ASCII for your host character set; GDB does\n"
- "not support any others.\n"
- "To see a list of the character sets GDB supports, type `set charset <TAB>'.",
- &showlist);
-
-
- new_cmd = add_set_enum_cmd ("host-charset",
- class_support,
- host_charset_enum,
- &host_charset_name,
- "Set the host character set.\n"
- "The `host character set' is the one used by the system GDB is running on.\n"
- "You may only use supersets of ASCII for your host character set; GDB does\n"
- "not support any others.\n"
- "To see a list of the character sets GDB supports, type `set host-charset <TAB>'.",
- &setlist);
-
- set_cmd_sfunc (new_cmd, set_host_charset_sfunc);
-
- add_show_from_set (new_cmd, &showlist);
-
-
-
- new_cmd = add_set_enum_cmd ("target-charset",
- class_support,
- target_charset_enum,
- &target_charset_name,
- "Set the target character set.\n"
- "The `target character set' is the one used by the program being debugged.\n"
- "GDB translates characters and strings between the host and target\n"
- "character sets as needed.\n"
- "To see a list of the character sets GDB supports, type `set target-charset'<TAB>",
- &setlist);
-
- set_cmd_sfunc (new_cmd, set_target_charset_sfunc);
- add_show_from_set (new_cmd, &showlist);
+ add_setshow_enum_cmd ("charset", class_support,
+ host_charset_enum, &host_charset_name, _("\
+Set the host and target character sets."), _("\
+Show the host and target character sets."), _("\
+The `host character set' is the one used by the system GDB is running on.\n\
+The `target character set' is the one used by the program being debugged.\n\
+You may only use supersets of ASCII for your host character set; GDB does\n\
+not support any others.\n\
+To see a list of the character sets GDB supports, type `set charset <TAB>'."),
+ /* Note that the sfunc below needs to set
+ target_charset_name, because the 'set
+ charset' command sets two variables. */
+ set_charset_sfunc,
+ show_charset,
+ &setlist, &showlist);
+
+ add_setshow_enum_cmd ("host-charset", class_support,
+ host_charset_enum, &host_charset_name, _("\
+Set the host character set."), _("\
+Show the host character set."), _("\
+The `host character set' is the one used by the system GDB is running on.\n\
+You may only use supersets of ASCII for your host character set; GDB does\n\
+not support any others.\n\
+To see a list of the character sets GDB supports, type `set host-charset <TAB>'."),
+ set_host_charset_sfunc,
+ show_host_charset_name,
+ &setlist, &showlist);
+
+ add_setshow_enum_cmd ("target-charset", class_support,
+ target_charset_enum, &target_charset_name, _("\
+Set the target character set."), _("\
+Show the target character set."), _("\
+The `target character set' is the one used by the program being debugged.\n\
+GDB translates characters and strings between the host and target\n\
+character sets as needed.\n\
+To see a list of the character sets GDB supports, type `set target-charset'<TAB>"),
+ set_target_charset_sfunc,
+ show_target_charset_name,
+ &setlist, &showlist);
}