From: Corinna Vinschen <vinschen@redhat.com>
To: gdb-patches@sourceware.org
Subject: Re: [RFA] defs.h: Define GDB_DEFAULT_TARGET_[WIDE_]CHARSET for Cygwin and MingW builds
Date: Wed, 03 Mar 2010 10:16:00 -0000 [thread overview]
Message-ID: <20100303101601.GH17293@calimero.vinschen.de> (raw)
In-Reply-To: <m3r5o2bagj.fsf@fleche.redhat.com>
On Mar 2 15:55, Tom Tromey wrote:
> >>>>> "Tom" == Tom Tromey <tromey@redhat.com> writes:
>
> Tom> I agree, we need a gdbarch method.
>
> Tom> I'll look into this today.
>
> Here's a patch, please let me know what you think.
>
> This patch nearly works -- it regresses on a Python test that looks at
> gdb.parameter('target-charset') directly and then gets confused by
> "auto". I think the only solution for this is to add a new Python API.
> (It would be easy enough to just hack the test case somehow -- but the
> libstdc++ printers use this same idiom, so a real solution is needed.)
>
> I wasn't sure where to put the Cygwin override; I took Daniel's
> suggestion of i386_cygwin_init_abi; but Corinna's earlier patches
> changed all Windows targets, not just Cygwin, and I didn't see a good
> place to do that.
Me neither. There seems to be no i386_windows_init_abi which would
allow to define this for all Windows targets.
Btw., in contrast to Cygwin, native Windows hosts don't have the
nl_langinfo function. Of course, this affects the default host charset.
ISO-8859-1 is no sensible default, even if it mostly works on western
language Windows systems since it's quite similar to CP1252. The most
sensible default host charset for a native Windows GDB is the codepage
returned by GetACP(), as Eli already pointed out for the target charset.
Maybe something along these lines would help (untested!):
--- charset.c 2010-03-03 11:09:43.000000000 +0100
+++ charset.c.new 2010-03-03 11:09:36.000000000 +0100
@@ -904,6 +904,10 @@ default_auto_wide_charset (void)
return GDB_DEFAULT_TARGET_WIDE_CHARSET;
}
+#ifdef _WIN32
+static w32_host_default_charset[16]; /* "CP + x<=5 digits + paranoia. */
+#endif
+
void
_initialize_charset (void)
{
@@ -927,6 +931,11 @@ _initialize_charset (void)
if (!strcmp (auto_host_charset_name, "646") || !*auto_host_charset_name)
auto_host_charset_name = "ASCII";
auto_target_charset_name = auto_host_charset_name;
+#elif defined (_WIN32)
+ snprintf (w32_host_default_charset, sizeof w32_host_default_charset,
+ "CP%d", GetACP());
+ auto_host_charset_name = w32_host_default_charset;
+ auto_target_charset_name = auto_host_charset_name;
#endif
#endif
Corinna
--
Corinna Vinschen
Cygwin Project Co-Leader
Red Hat
next prev parent reply other threads:[~2010-03-03 10:16 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-28 13:05 Corinna Vinschen
2010-02-28 14:29 ` Daniel Jacobowitz
2010-02-28 15:03 ` Corinna Vinschen
2010-02-28 18:48 ` Daniel Jacobowitz
2010-02-28 19:22 ` Corinna Vinschen
2010-02-28 22:27 ` Daniel Jacobowitz
2010-03-01 10:31 ` Corinna Vinschen
2010-03-01 17:11 ` Eli Zaretskii
2010-03-01 17:28 ` Corinna Vinschen
2010-03-01 17:21 ` Tom Tromey
2010-03-01 17:23 ` Daniel Jacobowitz
2010-03-01 17:27 ` Corinna Vinschen
2010-03-01 17:31 ` Corinna Vinschen
2010-03-01 19:25 ` Tom Tromey
2010-03-01 19:31 ` Daniel Jacobowitz
2010-03-01 20:06 ` Corinna Vinschen
2010-03-01 20:44 ` Eli Zaretskii
2010-03-01 21:50 ` Daniel Jacobowitz
2010-03-02 10:44 ` Corinna Vinschen
2010-03-02 13:54 ` Daniel Jacobowitz
2010-03-02 14:13 ` Corinna Vinschen
2010-03-02 15:03 ` Daniel Jacobowitz
2010-03-02 17:43 ` Corinna Vinschen
2010-03-02 17:59 ` Tom Tromey
2010-03-02 18:22 ` Corinna Vinschen
2010-03-02 18:28 ` Corinna Vinschen
2010-03-02 22:55 ` Tom Tromey
2010-03-02 22:57 ` Tom Tromey
2010-03-03 10:16 ` Corinna Vinschen
2010-03-03 10:41 ` Corinna Vinschen
2010-03-03 10:59 ` Corinna Vinschen
2010-03-03 16:26 ` Tom Tromey
2010-03-03 10:16 ` Corinna Vinschen [this message]
2010-03-03 16:25 ` Tom Tromey
2010-03-03 16:46 ` Corinna Vinschen
2010-03-05 8:55 ` Charles Wilson
2010-03-03 21:15 ` Tom Tromey
2010-03-04 9:34 ` Corinna Vinschen
2010-03-04 15:24 ` Christopher Faylor
2010-03-04 15:38 ` Corinna Vinschen
2010-03-03 17:08 ` Daniel Jacobowitz
2010-03-03 17:22 ` Corinna Vinschen
2010-03-03 17:27 ` Corinna Vinschen
2010-03-03 17:33 ` Daniel Jacobowitz
2010-03-03 17:42 ` Eli Zaretskii
2010-03-03 18:00 ` Corinna Vinschen
2010-03-03 18:05 ` Daniel Jacobowitz
2010-03-03 18:22 ` Corinna Vinschen
2010-03-03 19:39 ` Daniel Jacobowitz
2010-03-03 20:16 ` Eli Zaretskii
2010-03-03 20:26 ` Daniel Jacobowitz
2010-03-03 21:08 ` Tom Tromey
2010-03-01 17:12 ` Tom Tromey
2010-03-01 17:21 ` Daniel Jacobowitz
2010-03-01 17:28 ` Tom Tromey
2010-03-01 17:50 ` Corinna Vinschen
2010-02-28 16:56 ` Eli Zaretskii
2010-02-28 17:05 ` Corinna Vinschen
2010-02-28 17:45 ` Eli Zaretskii
2010-02-28 17:52 ` Corinna Vinschen
2010-02-28 18:11 ` Corinna Vinschen
2010-02-28 18:59 ` Eli Zaretskii
2010-02-28 19:23 ` Corinna Vinschen
2010-02-28 18:59 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100303101601.GH17293@calimero.vinschen.de \
--to=vinschen@redhat.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox